谈谈编程语言的选择
常常有新人问我,我该学哪一门编程语言呢?编程语言太多了,我都不知道该选择哪一门编程语言来深入学习了!是的,我也曾被这个问题所困恼,当初学习软件编程时也经历了C/Java/C#这样的路线,后来我也接触并使用过C++/Visual Basic/JavaScript/PHP/Python等语言,并了解过一些冷门语言。多年下来,我对编程语言的理解是每个编程语言的出现都有它出现的理由,每个编程语言也都有各自最适合的应用场景,没有一门语言能够包办所有。
我们先来看一下2016年3月份的世界编程语言排行榜:
这里列出了最流行的TOP20编程语言,我们先来分析一下上面一些常用的编程语言。
Java:应用开发领域的王者,JavaEE和Android的如日中天让Java稳居排行榜第一。
C:在操作系统内核、嵌入式开发等方面具有无可比拟的优势。
C++:适合服务端开发、游戏开发等对性能有一定要求的领域。
C#:Java的直接竞争对手,在应用开发领域有相当的份额,Unity3D的流行,也让C#扩充到了游戏开发领域。
Python:动态脚本语言,随着大数据相关技术的发展,份额不断上升。
PHP:LAMP几乎是网站开发的标配,各种框架模板都比较成熟。
JavaScript:动态脚本语言,网页前端开发的唯一选择,随着HTML5、Node.js等技术的发展,让其在Web端有大一统的趋势,在游戏开发、物联网开发等领域也有其一席之地。
Swift/Objective-C:iOS开发语言,Swift正在进化中。
上面我简要介绍了一下目前几个主流语言各自的应用领域。可以说没有哪个语言能够完全替代掉谁,但是也不能保证随着技术的不断发展,这些语言还能保持领先。选择了一门语言,实际上就是选择了它背后的技术栈,所以我们应该围绕应用领域来选择语言。比如你要做操作系统内核、嵌入式开发,那你就去学C。你想开发游戏,那你可能要去学Cocos2d-x或者unity3d,分别对应了C++和C#,当然JavaScript也行。如果你想实现Web全栈开发,那么你可能需要精通JavaScript。没有一门编程语言能够包办所有。但尽管如此,初学编程时,第一门语言的选择还是很重要的,会影响你的思维。我想初学编程时还是选择C语言比较好,C++虽然是C的“扩充”,但是规则过于复杂,概念过多,初学者会失去信心。有了C的基础,就可以学一下C++/Java/C#中的一种,这是目前应用开发领域最主流的语言。近些年大数据的流行以及前端开发的兴起,使得Python和JavaScript两门动态脚本语言不断流行,与之相应的库和框架也不断进化。所以很多人又转向了这方面的开发。这就引出了我的一个观点:学习编程还有一种思想要不得,就是贪图大而全。一个人的精力和能力都是有限的,很难掌握所有。况且各个技术体系的技术还在不断升级。就是全栈工程师,那也是某个方面的全栈,比如web全栈或者app全栈。不是做不到web全栈+app全栈,而是很难每一块、每一个细节都能一样的达到较高水准。随着软件开发分工的越来越细,还是让更专业的人来做为好。你可以在有时间有精力的情况下,了解一下其它领域的技术,扩充知识面,但不要本末倒置。
最后我想说,不要把自己限死在一门编程语言上,根据市场的变化和自己的兴趣合理选择编程语言,让我们做一个真正的程序员。