刚刚,Stack Overflow年度开发者报告发布。

这次,全球共有十万名程序员参与了这个一年一度的大调查,最终形成2018年度报告。在这个报告中,详实反应了开发者们的学习、工作和生活。

这份报告共分为六大部分,包括几十个不同类型的问题。

量子位从中挑了一些有意思的结论。

  • Python地位连年上升,增速最快,也是程序员们最爱和最想学的编程语言

  • TensorFlow荣登程序员最爱框架

  • 开发者不怕编程自动化

  • AI让程序员既兴奋又害怕

  • 工程经理、DevOps专家和数据科学家的薪酬最高

  • 90%开发者都在自学新技能

  • 训练营对找工作确有帮助

  • 参与调查者中92%为男性,93%是“直的”

以下是报告的主要内容。

语言

在各种编程语言之中,拥有最广阔用户群的依然是JavaScript,不过,Python正在以一年一名的速度向上爬。

作为增长最快的编程语言,Python去年超过了PHP,今年又超过了C#,排名第7。

在各种语言中,最受程序员们喜爱的,也就是用了还想继续用的,是Rust,最想逃离的依然是Visual Basic 6,和前两年一样。

在热门榜上蹿升最快的Python,也深受开发者的喜爱和信任。

它在程序员最想学的榜单上,和去年一样排在榜首,25.1%还没用上Python的程序员想投入这个阵营。程序员最爱榜上,Python也排在第3,68%的用户还想继续用,而最想逃离榜上完全见不到Python的名字。

但是,别看Python受欢迎,在平均薪酬上排到了第21位,甚至比不过R。

框架

将所有框架放在一起,当然还是web开发相关的最受欢迎,它们历史悠久应用广泛,是开发者的老朋友。

几个机器学习和大数据框架今年也爬上了排行榜:

前10大框架中,就有排名第8的深度学习框架TensorFlow和排在第10位的大数据计算引擎Spark。Hadoop和Torch/PyTorch紧随其后,分别排在第11、12名。

机器学习框架在开发者们心目中形象不错,TensorFlow荣登程序员最爱榜榜首,有73.5%正在用它的程序员表示还想继续用,Torch/PyTorch排在第3名,68%用户打算继续用下去。

在程序员最想学的框架中,TensorFlow排在第3,而Torch/PyTorch排在第10名。还没用上TensorFlow的程序员有15.5%打算学一学,而没用上Torch/PyTorch的人里,有4.5%的人打算投入它的怀抱。

同时,也有不少人对这两个机器学习框架不太满意,32%的Torch/PyTorch用户不想继续用下去了,26.5%的TensorFlow用户想脱离它。

程序员对AI是什么态度?

随着机器学习越来越热,投身其中的程序员越来越多,今年的调查增加了一些新题目,比如说对人工智能的看法、编程中的道德问题等等。

对于工作越来越自动化这件事,程序员们是不太怕的,只有19.8%的人认为这很危险,而认为工作自动化exciting的多达40.8%。

程序员们最担心的,是让算法做重要的决定,28.6%的人都认为这有点危险,但同时也有23.5%的人认为非常exciting。另外,23.7%的人担心AI和人类决策对公平性的影响。

担心公平问题的,和担心AI超越人类的完全是两拨不同的程序员里。从调查结果来看,数据科学家、机器学习从业者、工程主管、学术圈的人、产品负责人等更担心公平性,而移动开发者、设计师更担心AI超越人类。

那么,如果AI真出了什么问题,应该谁负责呢?

47.8%的程序员认为,自己的孩子自己管,开发者或者创造了这个AI的人应该负责,也有27.9%的人认为责任在于政府或者监管机构。

对于人工智能的未来,开发者们基本是乐观的。

72.8%的程序员对AI带来种种可能性的激动,要大于对危险的担心。

当然,还有8.2%洒脱的程序员表示根本不在乎完全没想过。

薪酬

从全球来看,工程经理、DevOps专家和数据科学家的薪酬最高。

当然不同地区也有明显差别,例如在印度,数据科学家收入最高;在欧洲,后端开发者和嵌入式设备开发者的薪酬最高。

这里具体来看下美国市场的情况。

美国市场,工程经理的平均年薪是13.7万美元,DevOps专家11万美元,后端开发者10.2万美元,数据科学家或机器学习专家10.2万美元,移动开发者10.1万美元。

使用哪种语言的开发者薪酬更高?

来看看下面这张图。

简单点来说,以图中的虚线为分割。分布在上方的薪酬更高,例如Go、Clojure、F#;分布在下方的,即便工作多年薪酬也较低,例如PHP、Visual Basic 6。

这张图中圆圈的大小,表示有多少开发者使用这种语言。

学习、培训

开发者,意味着终身学习。

几乎90%的开发者表示他们在正规教育之外,自学了一门新的语言、框架或者工具。在专业开发者中,几乎一半的人表示他们已经参加了MOOC等在线课程。

接受培训、参加训练营,这种事通常被认为是新人入行的一种方式。

但是Stack Overflow的调查显示,许多参加编程训练营的人,其实已经是职业的开发者了。他们参加培训的目的是提升技能,或者向其他领域转型。

而且参与培训的结果看起来还不错。

如下图所示,培训结束后立即或者很快找到工作是常见的结果。

谁参与了调查

十万参与调查的开发者都来自哪里?其中,20.6%来自美国,13.9%来自印度,6.5%来自德国,6.3%来自英国,2.9%来自俄罗斯,2.5%来自巴西。

整个东亚地区的Stack Overflow活跃用户不算多,所以在这份调查中的贡献度也比较一般。其中来自中国大陆的开发者占1.05%,日本0.36%,台湾地区0.21%,韩国0.06%,朝鲜0.002%(也就是两个人)。

然后来看看参与调查的开发者类型,这个部分是复选。前十位的结果如上图所示,后端开发者占57%,全栈开发者占48%,前端37%。

另外,3-5年开发经验的程序员最多,占比24.8%。其次是6-8年经验的开发者,占比20.6%。9-11年经验的占13%

46%拥有学士学位。

性别和性向

这份报告显示,开发者群体仍然以男性为主。

参与调查的十万开发者中,92.7%为男性,6.8%为女性。另外还有0.9%的参与调查者不认为自己适用于这种二分的性别标准,还有0.7%的参与调查者是跨性别者。

这个性别比例并不出人意料。根据之前的数据,Stack Overflow的美国用户中有10%来自女性,而这次美国受访者中9%为女性,差距不大。

另外,在参与调查的学生群体中,女性比例更高一些。

不知道为什么,这个报告还提到了性向。

这也是Stack Overflow的调查第一次询问性取向的问题。

结果如上所示,93.2%的受访者是“直的”,有4.3%为双性恋,有2.4%为同性恋,还有1.9%为无性恋。