最近,Stack Overflow 发布了一篇 2017 开发者调查报告,此次在全球有超过 64,000 名开发者参与调查,分别对其技能、工具、学习趋势等数据进行了统计,比较遗憾的是中国参与调查的开发者很少,只有大概 300 人左右,所以有些调查结果可能跟中国环境不太相符,不过毫无疑问,这几乎代表了全球技术的趋势,这份数据有很多有意思的点值得我们关注。
做技术的,我个人一直认为一定要时刻关注趋势,因为这个时代变化太快了,技术的更新日新月异,做技术的尤其不能固步自封,我们要以一种开放的心态,来拥抱变化,为未来做准备,那么今天,我就以我个人的角度,来带大家解读下这份报告,值得一提的是,这份报告涉及的方面很多,我只挑一些大家比较关心的报告进行解读。
1. 哪种人才最紧缺?
这次受访的开发者中有将近四分之三竟然都是 web 开发,其次是桌面开发和移动开发占比最高,这个结果其实蛮有意思的,我们一直都说我们已经从 PC 时代过渡到移动时代了,但是移动开发者数量依然是比 web 开发和桌面开发少不少的。
这让我联想到了之前的一份互联网趋势调查报告,调查结果是人们对手机的使用时间一直在高速增加,然而 PC 的使用时间并没有下降,而是平缓维持,也就说,手机其实并没有吞噬 PC 的使用时间,而是吞噬了人们的闲暇时间而已。
不过从另一个角度来看,web 开发的岗位需求还是大,市场上 web 开发的人才供给量也是很大的,不过物以稀为贵,这意味着竞争也更加激烈。我们看下最近比较热门的人工智能、机器学习岗位只有 3.8% ,所以人才非常紧缺,而且这是未来的趋势,还在读书的同学,尤其是那些算法、数学基础比较好的同学,建议考虑下机器学习的方向。
对了,Stack Overflow 又做了进一步调查,web 开发中有 63.7% 的比例是前后端通吃的全栈,如果你是 web 开发,但是不是全栈,你都不好意思说你是 web 开发,而且要小心了,未来很可能竞争压力会非常大。
2. 哪种岗位与编程语言工资最高?
我想大家比较关心工资的问题,尤其对于很多还没工作的同学来说,肯定是想着未来哪个方向工资高就干哪个方向,那么下图就来告诉你到底哪个岗位工资高:
可以看到移动开发的工资几乎垫底,足以说明移动开发实际上已经没有那么抢手了,而 DevOps 与机器学习是工资最高的,DevOps 是近几年刚兴起的一个职位,是介于开发、运维和测试三个部门之间的一个部门,感兴趣的可以自行搜索了解下,机器学习的抢手我就不需要再强调了。
另外,如果按照编程语言划分的话,到底哪种编程语言工资最高呢?
可以看到,相对来说 Rust、Go、Scala、Ruby、Python 这几种近几年较流行的语言工资较高,这几种语言的开发人员也最年轻,另外,必须要提的是,这世界上最好的语言 PHP 工资排名垫底,所以如果想要面向工资编程的同学,PHP 可以从你的学习清单中剔除了。
3. 想自学编程,该通过哪种方式学习呢?
如果你想学习编程,但不知道从哪下手? 那么这份调查报告告诉你该如何学习编程。
调查结果显示,有 64.7% 是通过一些在线课程、视频学习的,49.9% 是买书学习的,31.9% 和 31.5% 的比例分别是通过业余时间的课程以及参与开源项目学习的,不得不说,在线教育的普及程度比我们想象的要大,现在这个时代,如果你想学习编程甚至其他知识,完全可以通过一些在线教育网站的课程来学习,一些线下培训机构死贵、没效率而且没法保证课程质量,只不过在线学习这种理念在中国很多人还没法接受,但这是未来的趋势,我个人建议,以后想学习编程,直接买本书,然后购买一些在线教育的课程,可以充分利用自己业余时间的同时还能培养自己的自学能力,我很看好在线教育,我认为线下的培训应该会被淘汰,大家以后可以在家就学习到全球各种各样的知识与技能。
4. 哪种编程语言最流行?
JavaScript 连续五年夺得流行的编程语言,不过不意外,毕竟 web 开发者这么多, SQL 再次占据第二位,Java 第三。 值得一提的是,Python 增长势头很猛,在五年内首次超过了 PHP。
另外,Python 的势头可能还会更猛,因为这次 Stack Overflow 有一项调查是「你最希望使用哪种语言」,调查结果显示 Python 在今年居守,而去年仅仅第四。
5. 大部分程序员都在什么行业?
超过 50% 的程序员在软件、互联网、以及金融三个行业上班,这个结果有点没想到,没想到金融行业对程序员吸引力也这么大,不知道这个结果适应于中国不。
6. 女性程序员在全球范围内都是稀缺物种。
调查显示,全球范围内只有 7.6% 的女性开发者,不得不说,不止中国,全球范围内程序员还都是以男性为主,如果你的公司有女性程序员,好好珍惜吧!
7. 程序员都是吃青春饭?
假设我们姑且认为写程序能写 10 年吧,那么这次对专业程序员工作经验的调查结果显示,10 年以内工作经验的程序员占比 74%,这份结果显示 20 年以上工作经验的程序员竟然占比 7.5%,不得不说国外环境跟国内不一样,如果把这部分也去除的话,超过 10 年以上的程序员只占比 18.5%,所以,不得不说,国外写代码的中坚力量依然是年轻程序员,国内的话程序员可能还会更年轻,竞争压力更大,如果你已经工作十年以上了,还在写代码,这本身没有错,有些人就是热衷于写代码,但是这部分人在企业工作的话不得不面对年轻人的冲击与竞争。
8. 你还没有在使用 Git?
在代码的版本控制工具调查这项,结果显示 69.2% 的人都在使用 Git,如果你还没有使用 Git,那么你所在的企业难免有点技术落伍。
最后,Stack Overflow 的开发者调查报告内容很丰富,涉及到开发者的方方面面,我也只是挑了一些我认为的大家比较关心的结果进行了解读,想查看全部报告的可以点击阅读原文。
另外,再给大家说个非常有意思的报告,这次报告挖出了一份数据:「使用空格缩进的开发者比使用 TAB 缩进的开发者工资更高」,是不是觉得有点扯?以下是调查截图:
其实看似很扯,但是我觉得有道理,我们知道我们在写代码的时候,为了使代码可读性更好,经常需要缩进,但是不同的人的缩进的习惯不一样,有的习惯用 tab 有的习惯用空格,但是你知道这俩的区别么?其实使用 tab 缩进最大的问题是可能不同的平台、不同的编辑器设置,都可以代表不同尺寸的空格,也许在你这边 tab 代表 4 个空格,而到了别人那里就成了 2 个空格,这就会导致代码格式不一致了,而使用空格缩进则没这个问题。
其实这个对于一些使用 IDE 的同学不是什么大问题,一般 IDE 回车键会自动换行缩进,但是如果你用一些轻量级的编辑器,如 vim、sublime、atom 之类的,就会遇到这个问题,我之前做 Ruby 的时候使用 sublime 我们团队内部就默认使用空格缩进,并不是说你现在把 tab 缩进习惯改成空格工资就高了,这个调查结果说明,那些注意这种细节的开发者,往往在其他地方依然会这么细致,这种工作态度是他们比别人高薪的本质原因。
最后,以上就是我针对 Stack Overflow 2017 开发者调查报告的一些个人解读,希望对广大开发者有所帮助,如有不认同之处,欢迎交流。
本文原创发布于微信公众号 AndroidDeveloper,认真扯淡,关注请慎重。