Stack Overflow作为全球最大的程序设计领域的问答网站,每年都会出据一份开发者调查报告。近日,Stack Overflow公布了其第9次年度开发者调查报告(https://insights.stackoverflow.com/survey/2019),这份报告基于对9万 Stack Overflow用户的调查。涉及众多领域,今天,挑其中和广大开发者最息息相关的几个重点调查结果给大家介绍一下。
这份报告的受访者主要是国外的开发者,其中的数据并不能完全的反应中国开发者的实际情况,但是也可以从一些侧面看出整个行业的一些信息。
这份报告还可以揭示几个一直困扰开发者的问题的答案,如:
1、哪种编程语言的开发者最赚钱? 2、Eclipse和Intellij哪个更受欢迎? 3、程序员可以干到多少岁? 4、哪种编程语言最受开发者欢迎? 5、国外程序员真的没有996吗? 6、到底要不要做Code Review?
接下来我们主要从技术、工作、开发者、薪水等4个方面展开,分析下这份报告。
一、关于技术
在Stack Overflow每年的报告中,都会对开发者所使用的技术做比较详尽的调查,其中包含编程语言、常用框架、甚至使用的操作系统等。
先来一张Stack Overflow描绘的技术全景图,方便开发者们了解自己所使用的技术所在的位置,以及和其他技术的关联性。

最常用的开发语言
在所有技术中,编程语言是必不可少的一项调查要素,今年的调查结果显示,目前使用量比较大的编程语言前五分别是JavaScript、HTML/CSS、SQL、Python和Java。

连续第7年,JavaScript是最常用的编程语言。Python一路飙升,从去年的第七名一跃跻身前五,超过Java位居第四。
最喜欢的编程语言
和往年一样,Rust是全球开发者最喜欢的编程语言。Python在今年的调查中相比去年上升1名,位列亚军。

使用最广泛的开发框架、数据库
最常用的框架中,jQuery排名第一,Java系的Spring排名第六,相比去年下降一名。 
最常用的数据库中,MySQL位居榜首 
最喜欢数据库
在关于最喜欢的数据库的调查中,非关系型数据库相比于关系型数据库更受欢迎一些,其中Redis是最最受欢迎的。

最流行的开发工具
下面是开发者常用的开发工具排行榜。Java开发者日常使用的IntelliJ和Eclipse分别位列第4和第8名。和去年相比,IntelliJ上升了1名,而Eclipse下降了1名。

看来IntelliJ和Eclipse之争,广大开发者已经给了我们答案。
二、关于工作
每年的报告中都会披露一些和程序员工作相关的数据,今年也不例外,这里我们简单展示几个可能有些参考性的数据。
工作时长
今年的报告结果中多了一项关于工作时长的数据,我们通过下图可以看到,一周中,超过半数的人的工作时长在40-44小时之间,按照每周5个工作日计算,相当于每天工作8-9个小时。

按照996的工作进行计算,一周大概需要工作72小时,那么受访者中只有2%的人达到了这个工作强度。
如果是在国内展开这项调查,相信结果会有很大不同吧。
所在行业
软件开发涉及到各个行业,报告中前几名分别是其他行业、信息技术、金融银行类、SaaS服务和Web开发等。

不知道你所在行业在上图中的哪个位置呢?
最近一次换工作是多久之前
关于工作的更换,其中最多的人,超过3成是一年内刚刚换过工作的,不知道是不是有一些也是因为受到了互联网寒冬的影响?不知道这其中有多少人是拿到过N+1的?

看来国外开发者换工作也是比较频繁的,这点和国内没有太大差异。
工作选择最关心什么
此次调查,Stack Overflow让开发者选择了自己在选择工作的时候最关心的事情,结果显示,超过一半的人对公司的技术栈是最关心的,其次是工作环境和公司文化,然后是灵活的工作时间。

看来国外开发者都不缺钱,工作选的时候,薪水的多少并不是很在乎。
工作中是否做CodeReview
关于CodeReview,其中超过70%的开发者在工作中会做CodeReview,其中大部分是因为自己自己到CodeReview的价值,少部分是因为公司要求。

那么,你呢?你做Code Review吗?
二、关于开发者
年龄
软件行业一直是一个对年龄比较敏感的行业,很多人都担心程序员到底可以干到多少岁?
这份报告给出了答案,对于所有的受访者,年龄介于20-30岁之间的有近50%,30-40岁之间的有30%,超过40岁的还有15%左右。

所以,很多人担心是不是程序员只能干到30岁?这份报告显示其实超过30岁的程序员还是大有人在的。
但是话又说回来,中国的人口基数是要比国外多一些的,所以竞争就会大一些,作为技术工种,建议所有读者还是要建立起自己的技术壁垒,提高自己的不可替代性。
编程年限
程序员的工作年限跨度很大,报告从5年内到50年以上的数据都有,其中超过1/5的程序员的编程经验在5年内,工作经验在10年内的人数超过了一半。

编程是不是自己的爱好
爱好是人最好的老师,那么编程是你的爱好吗?

超过80%的开发者是喜欢编程的。
二、关于薪水
工作年薪与开发者类型对薪水的影响
下图描述了工作年限以及开发者类型对薪水的影响。很明显,工作年限越久,工资越高。但是,有些类型的开发者在同样的年限可以拿到更高的薪资。

从图中可以看出,与数据打交道的开发人员(数据科学家和工程师)以及在DevOps和站点可靠性方面工作的开发人员的经验水平较高,而学术研究人员和教育工作者的经验水平较低。
工作年薪与编程语言对薪水的影响
下图中,有一条蓝色的实线,在实线上面的语言,如Clojure、Scala、Go、Rust和R的开发人员,拥有越丰富的经验,就会获得更高的报酬。但是实线下方的语言,如PHP、VBA等,即使有多年的经验,工资也会更低。可以看到Java目前处于实线的阴影范围的边缘。

图中圆圈的大小表示与其他语言相比,有多少开发人员正在使用这种语言。
哪种编程语言的开发者最赚钱
下图中是各类编程语言的开发者的年薪。可见,越是常用的开发语言,工资越低。
Java语言开发者年薪大概是5.2万美元(去年是9万美元),是所有开发者中赚的最少的。相对比较赚钱的开发语言是Clojure、F#、Go以及Scala。

国内的Java开发者们,你们的粘性有达到5万美元吗,对于Java开发者赚钱最少这件事情,你有什么看法呢?
好了,以上就是这份报告的解读,如果你有什么想说的,欢迎留言。
往年报告分析: Stack Overflow 2018 开发者调查报告出炉 高效学习新技术的10种方法——总结自StackOverflow 2017开发者调查