(文中只挑选部分语言为例,但并不代表内容只限于这些语言)
有经验的程序员时常告诉新人”语言不重要,重要的是逻辑和思路“
后半句没错,但前半句错了。
语言很重要。
语言对于一个程序员就像钱和文凭,拥有的时候就显得不重要,但是对于新手们,还在选择主力开发语言时就显得相当重要了。
个人不太建议学太杂(虽然我自己就学挺杂),但也不建议只专研一门语言。
无论是学习还是工作,同时掌握两门以上的语言是很重要的,如果有闲暇时间,可以增加到3门。
在这两三门语言中,挑选一门作为主力开发语言,其余语言作为辅助或学习。
这样做的好处:
1.工作上,可以很容易与同事协作开发,可以明确自己的开发任务,也能搞明白其他人开发的部分是如何工作的。可以独立完成需要两三门语言完成的工作,各取其特点
2.学习上,可以了解更多的语言设计模式,扩展思路,接纳不同的编程理念
3.职业规划上,可以较快的转换主力开发语言,而不会应为语言阻碍职业发展,有多门语言的经验,了解一个项目中各个部分如何协作,也可以很快的胜任团队负责人的角色。
当然,更重要的是根据自己的职业规划合理的搭配需要掌握的2-3门语言
1.每个类型的语言掌握一种,不要全是同质的语言。
2.各门语言间有协作关系,能够互补配合
3.必须掌握一门流行的语言,可以掌握一门有前景的语言
例如做Web开发(HTML、JavaScript、CSS就不用说了)
可以是 PHP(主力)、Python(辅助)、Ruby(学习)
也可以是C#或Java(主力)、Python(辅助)、Go(学习)
做服务端开发
可以是C++(主力)、Java(辅助)、Go(学习)
也可以是Java(主力)、Python(辅助)、C(学习/辅助)
总之搭配可以很多,但是注意,主力开发语言最好是一门流行语言,辅助语言最好是一门易用(所以我给出的选择里Python比较多),学习型的语言最好是比较有前途的新语言
可能很多人看到这,会觉得,有这个必要吗?”可以用C搞定一切“、”可以用Java搞定一切“、”可以用C#搞定一切“ 、......
每个人都想只要一个完美东西能够解决所有问题
是的,现在大多数语言都发展出很多很强大的库,几乎可以搞定所有你需要的东西,正如人一样,经过高度培训每个人都可以胜任任何工作。
但是,每一门语言的诞生都是有原因的,都有最擅长的能力和一些目前没有解决的缺陷。
例如:
Java,很全面,库很多,但是某些方面也不是最简洁的,Web开发不如PHP高效(这里指的是开发效率),桌面开发不如C++的效果好。另外需要安装虚拟机(Java最成功的也是虚拟机,但在桌面程序开发上,虚拟机也造成用户部署麻烦的问题)
C#,也很全面,.net库也很多,什么东西都能再MSDN上找到对应的解决办法,而且很统一。但是最好的运行环境是在Microsoft体系下,虽然有Mono可以让它在Linux下工作,但是效果不怎么好。
Python,简单易用易学,库也多,但是2.x和3.x不兼容,让很多人疑惑,另外就是缩进式的代码块有人喜欢有人狠。效率不需要说,它毕竟是脚本语言,不需要和静态语言比较。
PHP,目前已经很好了,大量的开源程序和资料是新手最容易上手的语言,但是除了Web开发,其他方面用不上,也有人用PHP开发过桌面应用(Google搜索到过),但不可能成为桌面主流。
Go,很多特征很吸引人,身世好,开发效率高,但是库还很少,另外毕竟是新语言,可能会有还没发现的BUG。
其他如Lua、Ruby、Erlang等语言也是同样,有很好的特征,也有不足。(这里我没有说Node.js,因为我觉得他并不算是一门语言,它只是一个服务端环境或者技术,它的语言依然是JavaScript,就像.net不是语言,而是一个框架,能够在这个框架下开发的语言是C#、VB、J#、F#之类)
我认为不会有任何语言是完美的,重量级的就会全面但臃肿复杂,轻量级的开发高效但有所缺失。因此掌握两门能够互补的语言很重要。
第一门开发语言就像第一个女朋友,往往会影响程序员职业生涯的世界观。所以选择第一门语言很重要。
第一门语言可能会决定你的职业圈子,例如:
学习Object-C会认识很多IOS移动开发的人,他们讲究创新
学习Java,C#,会认识很多企业级开发的人,他们讲究需求的明确性,流程的严谨,标准
学习Python和PHP会认识很多讲究高效开发的人
另外,作为一个程序员,开发者,我们还必须考虑到需要我们的人的想法。
绝大多数程序员特别是新手们都会就职在一个企业
企业考虑的问题是(Object-C和Swift不适用这个规律,因为做IOS开发必须使用它):
高效出产品:Python、Java、C#、PHP、Go
可长期维护:Java、C#、PHP、Python
人力资源好管理:Java、C#、PHP
成本低:Java、PHP
这也就是为什么大部分公司招聘的都是Java 和PHP程序员的原因。
新手们,谨慎挑选你的第一门语言和搭建自己的语言体系,不要相信老鸟们说的”语言不重要“就像不要相信富二代说的”钱不重要“一样,等你拥有了自己的主力语言和语言体系后再说吧。
原文地址:http://blog.csdn.net/banmuhuangci/article/details/39024935