我是一个十几年的老程序员,工作了这么多年依然喜欢编程,并不认为往上爬,做上管理岗,脱离编程了就很厉害,这是世俗的眼光,每个人的兴趣点不一样,做自己喜欢的事情就好。本文讨论的编程语言的选择,提起这个话题,我的目的不是引起各方阵营的争论不休,我只是谈谈这些年作为程序员的经历,以便给那些初学编程的人一些参考,能帮上忙就更好了。
我是06年大学毕业,也是所谓的985大学,但由于那些年还比较落后,我是高三才接触电脑,大一才买台电脑用于学习(其实大部分时间在打游戏,全寝室同学都在打,环境使然)。那时候的电脑,显示器无比巨大,开机可以听见机械硬盘马达的嗡鸣声。我们大学不教具体的编程语言,只教基础的操作系统、编译原理、数据结构,数据库,算法等等。算法课程里面会用到C/C++语言作为教学语言。由于老师说得一口流利的湖南方言,我是基本听不懂他在说什么,只能看书自学。然后另外一门语言是汇编,这个老师感觉是比较牛的,布置的作业也要求我们用汇编完成,于是我去图书馆找了本5cm厚的汇编教程,看了一点皮毛完成作业。所以整个大学课堂上,没有指定具体要学习的编程语言,C、C++、汇编都有用到,但都学得不深,主要靠个人自学。我工作中用到的是C#.net,当时也是跟着一些师兄,他们用了.Net做网站,还有个当时觉得比较牛的师兄说跟着微软走不会有错的,结果就自学了C#.net,一直用到现在。现在工作这么久,中间也用到了Java、Php、python,其他脚本语言(如javascript、html、css、vbs等等)就不说了,而真正做项目的主打语言还是一直是C#.Net。
再说说我们的师兄弟,有的自学C++,有的自学Java,选择都不一样,一旦选好了,工作中就一直用这门语言,十几年如一日,基本没机会改变。即使工作之余自学其他语言,但只要没经过几年的项目应用,基本不会成为自己的主打语言。所以,语言的选择并不是无所谓,最初的选择还是很关键的。回想起来,每种语言都有适用场景,C#.net做界面(桌面程序、安卓游戏)相当快,而且编辑器是最好用的没有之一。java开源框架最丰富,基本上你需要的网上都有现成的源码,令人羡慕,适合做互联网应用、安卓App应用。php也是主要的网站编程语言之一,开源网站很多,而且界面非常漂亮。
以上纯感性分析,下面用数据说话:
各个语言的市场占有率将有助于我们的规划和打算。
可以看出,目前拉勾招聘市场的主要语言是Java、PHP、C++,而一直很被看好的Python语言其实在招聘市场并不是很火爆,相反其招聘数量几乎与C#同等。
看一下各种语言的平均薪资水平(数据:按照拉勾网上薪资区间最低的价格来进行统计展示)。
Python语言以11.9k的薪资领跑,最低的是C#的8.6k.
各城市的Java需求都很大
北上深三城市对C++的需求是相对较多的,这三个城市是C++开发者的最佳选择
北京对Python开发者需求也较大,其它城市需求量不是特大
C#在所有城市普遍需求不大
北上广深杭对PHP的需求极大仅次于Java的需求
TIOBE Index
TIOBE 编程社区索引由荷兰 Eindhoven 的 TIOBE 公司创立和维护。TIOBE 代表着“真诚的重要性”,该索引将每项语言作为关键字,按照搜索引擎的查询数量对语言进行排名。因为 TIOBE 只索引图灵完全的语言,因此 SQL 和 HTML 没有考虑在内。2019年12月的排名结果显示,Java 依然是最受大家欢迎的语言,C 和 C++ 排名紧随其后。出人意料的是,Visual Basic 和 Python 排名有大幅上升,并排在了 Javascript 之前,另外,汇编语言也挤入前十:
从上面数据分析,如果真正精通2门以上的语言,是非常理想的。 比如选择java+C#,或Java+Python。所谓精通,并不是说你看几本教程,照着书敲几个例子就行的,一本语言的精通至少需要3-5年的持续项目实践才可以,深入到架构和框架源码,理解各工具的适用场景和原理。