
没有必要全部学习命令行,因为命令行本质都是一些程序,你无需掌握所有程序的所有用法,那是不现实的。
建议方向是如下:
1,熟练掌握常用的命令,不同系统的都要,常用的就那么几十个,一天掌握一个也就一个月搞定。
2,掌握shell的一些基本理念:如管道,重定向,退出码等,能使用它们通过组合命令完成一定复杂度的任务
3,能够编写一定复杂度的脚本完成更复杂的任务
4,不熟悉甚至没用过的命令都不要紧,能过达到看帮助手册一分钟,就会基本使用的水平。
程序员可以分为很多种,像Unix程序员、Windows程序员,或是C++程序员、Delphi程序员,等等。今天我想谈的是Web程序员,一名真正的Web程序员应该懂得那些方面的知识,应该注意学习哪些东西。
也许有些朋友会说,我知道Asp、Jsp,会做网站、会做bbs,这应该叫Web程序员了吧。确实,我承认,这些技术是一名Web程序员应该具备的;但是,你如果仅懂得这些,却只能叫做Asp程序员、Jsp程序员,而不是真正意义上的Web程序员。现在的世界是属于Internet的,大部分的应用基于Internet,大家可以想想,像Yahoo、Microsoft、Amazon那样的网站,其访问量之大、应用之复杂,需要什么样的技术才可以支撑,难道仅仅是硬件的功劳么。
我想在Windows平台下来谈谈Web程序员应该掌握的技术
1 首先,就是上面提到的各种脚本,asp、jsp、php等等,这些东西大同小异,基本可以举一反三。
2 数据库,
相信做Web的人肯定用过,像Access、Sql Server、Oracle。很多人会用各种数据库,但是仅限于写一些sql,select、update、insert,用ADO来 *** 作,如果这样,就算会用100种数据库又有什么用呢?
你应该考虑用户量、访问速度、内存消耗,这些东西和你的sql密切相关,我经常见到很多分页程序根本不去考虑数据库中有多少条数据,统统select出来,很明显,当你从数据库中查出1万条数据和100条数据,占用的内存是不同的。
另外,数据库连接池和事务机制是非常重要的,应该知道数据库用什么来保证事务,连接池如何实现,这些都是商务应用的关键。譬如,目前很多的应用服务,像weblogic、MTS,都包含事务处理,可以说好的事务处理决定了他们的竞争力。
3 组件技术
我想是现在的Web应用推动了组件技术的发展。以前,从老式的静态库、动态库(dll),到现在的COM/DCOM,再到正在兴起中的Web Service;从单机调用,到基于内部网的分布式调用,到现在基于Internet的分布式计算。现在的应用都是基于组件的n层结构,最明显的就是COM和JavaBean。
这些东西体现了软件架构的发展,以前是基于单机的应用,然后是C/S结构,到现在的B/S结构。我记得李维曾经说过,程序员一定要注意软件技术的发展趋势,只有这样,才不至于被淹没在技术的洪流中。我想,作为Web程序员,一定要明白COM的原理,如何实现这种调用、如何进行分布式调用。说实话,我觉得COM还是比较复杂的,否则微软为什么要提供ATL和VB呢,要搞明白,应该学学C++,因为VC中提供的ATL库可以很明显的说明COM的内部运行机制。
4 网络技术
这可以说是Web程序员最应该懂得东西。起码,应该知道Web服务器的机制,要明白>
程序员平常做开发用的系统有:Windows,MacOS,BSD,Solaris以及各大版本的GNU/Linux。
windows, macOS,linux是当今主流三大 *** 作系统,普通用户一般是选择windows或macOS, linux主要是占据服务器领域市场。
普通用户对于 *** 作系统的选择很简单,经济实用选windows,钱多讲究格调选macOS, 毕竟普通用户切换 *** 作系统的成本并不大。而程序员就不一样了,换一个 *** 作系统,就意味着所有开发环境都要一并更换。而且在程序员群体中, *** 作系统有以下的鄙视链:macOS-->linux-->windows。
其实 *** 作系统的比较并不是简单粗暴的单一维度比较,用windows并不意味着low,用linux也不等同于你就是一个极客。关键在于你是如何使用。就好比编程语言的选择,php是最招人黑的语言(没有之一), 但黑php的人中有不少人写的代码同样不堪入目。
不过作为一个程序员,你很有必要学会linux,如果你的程序最终是跑在线上的Linux服务器上,那么你就更应该从现在开始投入linux的怀抱中,早日从windows脱坑。至于macOS,在命令行上与linux绝大部分相同,都是类unix的 *** 作系统。
如何学linux?
工作中,看到不少工作好几年的程序员,在 *** 作linux时特别生疏,只会最基本的几个命令:cdls mkdir 等。vim编辑器的 *** 作更是让人看了很着急,被誉为编辑器之神的vim在他们手中,完全没有半点灵气,感觉就像是编辑器之屎。
之所以会出现这种现象,很大原因在于他们的学习方式错了,不少人都知道linux很重要,不掌握linux,基本上就只能停留在最基本的增删改查功能上。他们学linux的方式可能是看书,也可能是看视频,甚至有些还会去背命令,但由于他们的 *** 作环境是windows,linux的应用场景很少。根本没办法将所学的知识运用,更加感受不到linux的魅力。
学linux最好地方式,就是直接去用!直接将自己的开发环境都改成linux,一开始很蹩脚,很不适应,这很正常。如果你一直感到很舒服,只能说明你一直没有进步。想想我们学了那么多年英语,绝大多数人还是无法掌握英语,看到英语文档就直接自动屏蔽。其原因都是:一直在学,但从来没在用。只学而不用,没有半点用。
不知道验友有没有研究过windows自带的计算器,反正小编研究之后发现,windows自然的计算器确实很强大,之前都忽视了。现在,跟着懒蛇来看一下,windows自带计算器的一些高级用法。如何快速打开计算器1、win + R 组合键,打开运行对话框2、输入calc,敲回车执行3、打开windows自带的标准型计算器。注意,如果第一次打开,默认打开标准型计算机。如果上次打开程序员类型计算器,下次打开还是程序员类型。计算器的几种工作模式1、标准型2、科学型3、程序员型4、统计信息型如何在上述几种类型间切换1、点击计算器左上角的查看菜单,下拉菜单选择工作类型。2、Alt + 1/2/3/4,快速切换。计算器的高级用法1、进制转换打开程序员型计算器,可以看到进制转换菜单。其中包括,十进制、八进制、16进制、2进制。而且可以设置字节。2、单位换算查看菜单,选中单位转换,快捷键Ctrl+U。可以进行常见的单位换算,很方便。3、日期计算查看菜单,选中日期计算,快捷键Ctrl+E。可以快速计算两个日期的间隔天数。比如,我们知道了12306的抢票时间,可以通过这个程序,快速的知道还有多少天可以抢票。4、抵押、汽车租赁、油耗计算通过设置计算器,还可以进行上述运算。5、复制和粘贴计算器支持复制和粘贴功能,点击编辑菜单,即可进行复制粘贴 *** 作。对于文档中的算式,可以直接复制进计算器进行运算,比如说, 1+23+45
相信很多人都见证了Windows从xp到现在win10的变化,不过就是习惯来说,还是喜欢win7。
MAC,对于linux开发的程序员来说有先天优势。在其他方面也有很多优点。
为什么很多程序员都觉得用上MAC才会高大上,或者很多人推荐使用MAC呢?
第一:MAC很省心
用过MAC的小伙伴都知道,几乎不用装杀毒软件的,甚至有网友称:用了 MAC,都没见过病毒长啥样。其次,几乎不需要维护,磁盘碎片整理?装驱动?重装系统貌似也很少人折腾吧。另外,续航能力比一般笔记本时间更长,就是要持久。
第二: *** 作很简洁
习惯了windows的用户,肯定很熟悉这几个过程。当你需要切换无线功能,需要点很多鼠标,包括一切可有可无的确认对话框;卸载(移除)优盘,除了在右下角寻找,接着还有一些繁琐的 *** 作。
对于MAC来说, *** 作都简洁到了极致,尽量不会干扰到用户。比如切换无线,MAC只需要一次鼠标点击就可以了,卸载优盘,也只需要一次鼠标点击。最大程度提高程序员的生产力。
第三:Linux下开发更优秀
MAC OS是基于Unix的。对于Linux开发者来说,想用的工具唾手可得,不用再安装复杂的环境了。
对于常见的编程语言,c/c++/Java/python/Ruby等等,都是支持的,linux下开发效率会更高;同时,还有一款优秀的编辑器vi/vim,用过的应该都会说好吧。
虽说Windows下的VS很强大,但是如果真的要兼容,还需要下载很多插件,烦不胜烦。
第四:苹果本身
苹果本身给消费者带来的感觉就是流畅,这一点实践已经证明了。除了系统本身,MAC从包装外观到电脑内部,都是精心设计的,甚至于微小的机箱上的螺丝。对于很多大陆产品来说,包装并没有那么好。
同时,苹果的数据保密措施也不错的。如果你有不同的苹果设备,数据间是可以互通的。当然,现在很多企业都可以做到。
说道这里,必须要说明的是,我不是崇洋媚外,只是抱着欣赏的角度客观的分析一些MAC的好处。除了个人见解,在看看一些网友的说法,有些说法真的很精辟。
原文如下:我从csdn学习大本营得到您的信息。不好意思打搅您。我现在用c++在linux下开发大型应用程序。我想请教是否值得深入学习linux kernel。我没有特别多的时间。另外我有多年Windows下开发应用程序的经验。我的回答:呵呵,我感觉这还是一个学习方向的问题。Linux这几年,发展越来越好了,至少在很多应用服务器市场,Linux已经取代Windows成为第一选择,另外,在嵌入式环境,Linux也是逐渐成为主流。这导致很多原本是Windows的程序员,由于工作需要,逐渐走向Linux开发,这中间当然涉及到一个学习的问题。我本人也算其中一份子吧。我本来一直做Windows开发,在这之前,在DOS下用过gcc开发,还翻译了djgpp的库函数手册,也算有点基础。不过,在07年公司安排我在Linux下正式开发商用服务器的时候,我心里还是很打鼓的。因为也面临着一个学习的问题。看看市场上的书籍,很乱,我当时花了一整天在汉唐书城,仔细分析Linux开发相关的书籍,我发现分几种,首先是shell编程,这个我看了有半个小时,就觉得没用,这貌似给网管员用的,我做传输服务器用不到,连带着,正则表达式,我觉得对我用处也不大。真的要做复杂条件筛选,我的习惯是写个词法分析程序,自己来分析,也花不了多少时间,所以,我一直就没学正则表达式,呵呵。然后是C和C++编程相关,我仔细看了,发现一说到开发,就讲到Linux kernel,这部分显然是 *** 作系统的知识,我仔细想了想,发现自己的问题并没有得到解决。就算我知道了kernel怎么工作,里面有什么开发技巧,对我的工作并没有什么帮助。我当时做的是分布式数据库的传输服务器部分,这部分讲究多线程,高效能,但还是局限在应用层,并没有多少涉及到kernel的东东。我觉得用处不大。反而我觉得我有必要对socket编程重新补一补了。经过挑选,我给自己选了一本《UNIX网络编程》的第1卷网络通信篇,第2卷是进程间通讯,我觉得我的程序用多线程跑已经很好了,线程本身就是共享内存的,无需考虑太多异步通讯,而且,我的习惯,进程间通讯,一般直接使用socket,这个放之四海皆真理,而且,好处是我的进程可以跨机器随意部署,只要我提供IP地址,进程间就可以互相通信,协同工作。所以,我只买了第1卷,就是专门讲socket的,这是好书,我现在没事还要拿出来看一看。另外,我又给自己挑了一本《Unix编程艺术》,这本也是好书,我以前就发现,Dos程序员有Dos程序员的习惯,Windows的有Windows的习惯,这些方言,习惯,教科书是没有的,必须找有经验的程序员问,而这本书恰好就是专门讲这些问题的。比如DOS时代,硬盘通常很小,用户分盘又很乱,我们要是想向磁盘存个临时文件,最好找C盘,连D盘都是很多计算机没有的。而Windows下系统提供了服务,可以通过api查询系统临时文件目录,就好多了,而Linux下呢,是约定俗成,大家都用/var来做临时目录,这就是风俗。嗯,这本书我看了以后,遵守了一半,呵呵,也没全遵守,它强调程序都是过滤器,从信息流中过滤自己有用的信息,加以处理,但是,不准破坏信息流,并且强调信息流无缝流转到下家,这个我很同意,这也是我这几年逐渐领悟到的一个程序设计原则。不过,它强调搭积木我就不太同意了,Unix的程序员,有个坏习惯,对管道很滥用,这就造成了很多程序都是小程序,通过管道勾搭到一起,完成一个强大的功能,这个呢,见仁见智,在某些场合合用,但我的开发领域,我强调强大的系统分析能力,一体化的系统设计思考,强调从系统设计阶段就杜绝很多潜在的逻辑bug,简单说,我对系统各个模块之间的和谐性看得很重,因此,这条我就没有遵守。嗯,还有就是它强调简洁开发,我呢,也只同意一半,把程序写简洁,每个函数,每个类,都很简单,减少bug,这个我是同意的,不过,简介到变量名函数名都净是缩写,人都看不懂,就太离谱了。呵呵,我的习惯就这样,别人的东西好,对我有用,我就用,我觉得有异议,并且认为自己的理由更站得住脚,我就坚持自己的。并且,一切从实践中看,计算机是最公平的,乱写程序,就算是大师也照挂,小心翼翼地写程序,即使是刚入行的小弟,也能写出很漂亮的程序。就这样,我借着这两本书慢慢看,然后,大多数习惯还是Windows的,到现在我开发,都是VC下编辑程序,然后写个makefile,ftp到虚拟机去编译执行,也走到今天了。后来发现,我没有学习shell,我没有学习kernel,我没有学习很多教科书上规定必须学习的东东,我的程序居然也完成了,我们的工程在去年,9轮测试,只发现51个bug,属于C和C++这边的bug,只有7个,这就是我坚持我自己无错化程序设计方法的威力。
作为一个经常使用苹果电脑,并且在Mac OS X上做开发的人,一直想找个机会出来说一下,为什么偏爱苹果电脑和Mac OS X。
爱苹果,爱Steve jobs,但同时也爱微软,崇拜Bill Gates,他是儿时的偶像。
作为一个以写程序为生的人,Windows对来说一点障碍也没有,基本上知道如何重装,知道如何处理Windows上 的任何问题,一时半会不知道的也能通过搜索引擎知道,知道如何抵抗病毒,保护自己的系统,知道如何在Windows上开发程序,满足老板的需求,坦 白说,在Windows上的工作效率还要高。
总是和朋友说,其实是双痛苦:用Mac的时候,很痛苦,因为用不了招商银行的网上银行,也不能看凤凰宽频,有些应用程序的效率在Mac上实 在是不怎样;
用Windows的时候也很痛苦,习惯了使用Expose的功能,把鼠标甩到屏幕的右上角,但是Windows没有反应,所以是双痛 苦,既了解Windows也了解Mac OS X,很清楚各自有什么缺点和优点。
爱苹果的界面 但是这里有一点要注意――当只用Windows的时候,并不知道Windows的缺点,以为自己生活在一个完美的世界里。
这个逻辑是非常诡谲的:世界上一个完美的东西因为另外一个不完美的东西变得不完美了。
换句话说,原本拥有一个完美的东西,现在拥有的两个东西都是 不完美的。
但是,因此就损失了么。
在换一句话说,退步了么。
答案相反,比以前进步了。
很多人认为Mac OS X最大的不同就是华丽的Aqual界面。
但认为这只是Mac的表面,不足以说明Mac OS X系统的优秀。
实际上经过配置的Linux和Windows甚至能够做到更加华丽的效果。
第2页:爱苹果的简单直接 爱苹果的简单直接 Mac OS X真正闪光和留住用户的是他的设计哲学。
那是简单,尽量不要让一些不必要的概念来干扰用户。
比如Windows软盘是A:、B:,硬盘是C:盘,在Mac OS X上没有这样的概念软盘就是一个软盘的图标,硬盘就是一个硬盘的图标。
用Windows的时候有没有想过,为什么一定要存在A: B: C: D: E:盘这样的概念。
再比如,在没有任何网络设备的情况下,两台笔记本电脑可以通过各自的无线网卡就可以连接,在Mac OS X的 *** 作很简单,就是其中一台创建一个网络,另一台加入这个网络,马上就能看到对方电脑的图标。
很多朋友说,Windows上好像没有这个功能把,答案 是:有的,Windows是无所不能的,但是Windows下需要一堆的概念,首先要了解无线网卡有两种连接方式,然后是各种网络协议,设置IP,网段 等等……,面对这一堆问题的时候,首先会怀疑自己的愚蠢,但有没有想过,这么多的概念,难道都是必须的。
Mac OS X在整个系统处处体现出这种精神,更少的概念,更简化,更直接的 *** 作,所以Mac OS X没有注册表,Mac机不需要区分是不是交叉线就可以双机互联(为什么一定要让用户去识别交叉线。
)。
以程序员的身份发言 这样的感觉,在做Mac编程的时候更加强烈。
Objective-C是苹果官方的首选语言,它和C++一样是C语言的超集,非常简洁漂亮地在C的基 础上添加了面对对象的特性,没有多余的模板,运算符重载的概念(这些是一定需要的么。
需要的只是面对对象而已)。
在Mac OS X底层Cocoa API中,这种精神得到了更加强烈体现,甚至一条语句就可以实现多线程,MFC相形之下显得非常笨拙,。
Net可以比一下(但仍然概念比较多)。
但别忘 了。
Net和Cocoa不是同一个时代的产品,Cocoa的前身OpenStep早在Java出现之前就有了。
随着Leopard的推出,苹果推出了 Objective-C 20, 这是Objective-C多年来的第一次升级,只是小心谨慎的添加了为数不多的几个概念。
第3页:爱苹果的文化 爱苹果的文化 天才就是在别人习以为常的问题上多问了几个“为什么”,这叫独立思考。
欣赏苹果Think Different的文化。
这里理解有两层意思,第一层是Different, 但Different的东西是不是一定就好。
见到很多年轻人标榜自己很Different,“地盘做主”什么的,非常hip-hop,很有个性, 发型很另类,但关键时候人生的选择一来都跑去考公务员了,图个稳定,爹妈也放心云云……这只是Different,没有Think。
Think是什 么。
Think就是独立思考。
比如说,别人讲做公务员工作稳定,独立思考的人就应该想一下,公务员真的就稳定么。
为什么会稳定。
那么年轻,需要稳定 么。
很多人觉得苹果电脑应该是搞设计的人用的,觉得不是,PC的Photoshop今天也很棒,一样可以做出不俗的设计出来。
苹果电脑Mac OS X现在在中国,大多数人是不适用的,主要原因是还没有普遍获得中国软件/游戏开发商的认同,暂时还是少数人的玩具。
但还是有一些人合适,就是那些有独立思 考的能力,喜欢了解新事物,不害怕打破习惯,接受世界不太完美,但希望对世界有更多认知的人,当然还要愿意为了解新事物付一点钱和时间。
以上就是关于现在作为一个程序员需要学习Windows系统的命令行吗全部的内容,包括:现在作为一个程序员需要学习Windows系统的命令行吗、什么是程序员、程序员平常用什么系统做开发等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)