技术编辑:宗恩丨发自 SiFou Office
SegmentFault 思否报道丨公众号:SegmentFault
过去 10 年 Stack Overflow 的年度开发人员调查成为了对全球开发者最大规模的调查报告。今年Stack Overflow 更加聚焦于调查报告的多样性。需要强调的一点是报告调查在今年 2 月左右进行,当时疫情影响了世界上每个国家。在查看诸如工作和薪水数据之类的信息时,要考虑到这点。
调查报告最引人注意的重点:
- 在过去五年中持续增长之后,Python 在最受欢迎的技术列表中从去年的第二名下降到今年的第三名,被 TypeScript 击败。Rust 连续第五年蝉联最受欢迎技术的头把交椅。
- 站点可靠性工程师和 DevOps 专家仍然是薪酬最高的个人贡献者。 80% 的受访者认为 DevOps 至少有些重要,而 44% 的受访者在拥有至少一名 DevOps 专用员工的组织中工作。
- 52% 的受访者在网上搜索编码解决方案时发现“您好,老朋友”,并发现第一个结果链接为紫色,因为他们已经访问了该链接。
- 超过 75% 的开发人员至少偶尔加班-每季度一到两天。25% 的员工每周 1-2 天或更长时间加班。
- 澳大利亚受访者报告的平均编码经验最高,为 16.9 年,其次是英国和美国的开发人员。与此相关,美国和英国的受访者平均年龄最高,分别为33.7 岁和 33.1 岁。
- 我们仍然看到有证据表明有色人种在专业开发人员中所占的比例不足,但是当我们包括所有开发人员,而不仅仅是专业编码人员时,我们确实看到了一些改进。
一下为报告原文:
开发者
地理位置
这次接受调查的绝大多数受访者表示,他们是专业开发人员,或者有时将代码编写为工作的一部分,或者是为此类职业做准备的学生。
以下为调查报告来源分布图
开发人员角色
约55%的受访者认为自己是全栈开发人员,约20%的人认为自己是移动开发人员。今年每个受访者中,开发人员类型识别的中位数为3,最常见的组合包括后端,前端和全栈开发人员。高度相关的一对组合包括数据库管理员和系统管理员,DevOps专家和站点可靠性工程师,学术研究人员和科学家以及设计师和前端开发人员。
是否爱好编码
许多开发人员在工作之外编写代码。大约78%的受访者表示,他们将编码作为自己的爱好。开发软件之外的其他职责会减少开发人员参与编码的兴趣。称自己有孩子或其他照料职责的开发人员不太可能将其编码为业余爱好。女性受访者也很少说自己是业余爱好。
经验
学习编码已有多少年了
访问Stack Overflow的开发人员有很广泛的经验。
多年专业编码
65%的受访者从事专业编码的时间不到10年。
按开发人员类型划分的多年专业编码经验
技术主管和工程经理往往具有最专业的编码经验。在各个贡献者角色中,经验最丰富的开发人员通常是系统管理员,数据库管理员以及创建桌面和嵌入式应用程序的开发人员。另一方面,网络开发人员,学术研究人员和数据科学家的经验往往较少。部分原因可以通过教授网络开发的编码训练营的兴起以及从学术界进入该领域的数据科学家的数量来解释。
编写第一行代码
在所有受访者中,到16岁时,有超过54%的人编写了第一行代码,在20多岁时编写过第一行代码的人占了13%。受访者在按国家/地区查看平均年龄时,来自巴西和印度等国家/地区的受访者倾向于在整整两年后开始编写代码,而相比之下,来自波兰和德国等国家/地区的开发人员的平均年龄则为15岁。
教育
受教育程度
全球约有75%的受访者完成了至少相当于学士学位或更高学位的课程。这与我们在前几年所看到的一致。
本科专业
成为专业软件开发人员有多种学术途径。在专业编写代码并在大学水平学习的受访者中,超过62%的人拥有计算机科学,计算机工程或软件工程学位,而只有不到10%的人拥有另一个工程领域的学位。有趣的是,几乎10%的受访者拥有与商务相关的学位或人文,社会科学或美术研究领域的学位。
正规教育的重要性
大约85%的专业开发人员认为正规教育至少在某种程度上很重要,这与流行的成语相反,即您不需要正规教育即可成为开发人员。但是,几乎有16%的人认为这根本不重要或没有必要。
年龄与性别
开发人员角色和性别
在我们的调查中,我们看到男性和女性在不同的开发人员角色中的代表有所不同。所有类别的开发人员将男性识别为女性的比例大大高于女性,但是男性与女性的比例各不相同。高于该线的开发人员类型的受访者比男性更有可能成为男性,而低于该线的开发商类型的受访者则比女性更有可能成为女性。数据科学家或学术研究人员的开发人员的男性可能性是女性的10倍,而系统管理员或DevOps专家的开发人员的男性可能性是女性的25-30倍。妇女担任前端开发人员,设计师,数据科学家,数据分析师,质量保证或测试开发人员,科学家和教育工作者的比例最高。
经验与性别
当我们分解自从学习按性别编码以来的几年中的差异时,我们会注意到一些保留问题。与男性相比,我们预计10-14岁年龄段会出现大幅下降,尽管与去年的调查相比有所改善。这与其他研究表明女性离开高科技职位的比例高于男性的研究一致。如果我们真的想有所作为,并在反映社会的行业中看到性别均等,那么保留是关键。重要的是,不仅要雇用来自不同背景的人,而且还要创造一个让他们感到包容且能够成长的环境。
年龄
在专业开发人员中,有70%的人年龄在35岁以下,而大约5%的人年龄在50岁以上。
国家的年龄和经验
当我们按国家细分调查对象的年龄时,我们发现与其他地区相比,北美和西欧的开发人员倾向于年龄偏大,并且具有更多的编码经验。
最受欢迎的技术
编程,脚本和标记语言
毫不奇怪,JavaScript已连续第八年保持其作为最常用编程语言的据点。在列表的更下方,我们还看到TypeScript的收益适中,在受欢迎程度方面领先于C。此外,Ruby在2017年曾一度跻身该榜单的前十名,但如今却有所下降,被Go和Kotlin等更新,潮流的技术所超越。
Web框架
当纯粹专注于Web框架时,我们看到jQuery仍然是最主要的,但它却逐年缓慢地输给了React.js和Angular。我们确实看到了一些合并,因为超过35%的受访者使用jQuery,React,一个Angular版本(将Angular(代表Angular 2+)和Angular.js组合在一起)或一种ASP.NET(ASP.NET或ASP) .NET Core)。
其他框架,库和工具
与去年相似,我们询问了开发人员正在使用的许多其他杂项技术。Node.js连续第二年位居榜首,一半的受访者使用它。我们还看到,数据分析和机器学习技术(例如Pandas,TensorFlow和Torch / PyTorch)的普及全面增长。
资料库
在查看数据库技术时,结果大部分与我们去年观察到的一致。MySQL一直位居榜首,其次是PostgreSQL和Microsoft SQL Server。但是,我们看到Firebase的受欢迎程度略有增长,今年它在Elasticsearch方面有所优势。
平台类
Linux和Windows在最受欢迎的平台上保持着头把交椅,超过一半的受访者表示,他们今年已经完成了开发工作。我们还看到诸如Docker和Kubernetes之类的容器技术的普及逐年增长。
最喜欢、最讨厌和最想使用的语言
连续五年来,Rust一直是最受喜爱的编程语言,位居榜首。与去年相比,TypeScript超越Python位居第二。我们还发现Go取得了很大的进步,从去年的第10位上升到第5位。
VBA,Objective C和Perl在最令人恐惧的语言中占据头把交椅,这些语言的开发人员比例很高,他们当前正在使用它们,但对继续这样做并不感兴趣。
如果我们查看开发人员报告的不使用但想学习的技术,Python连续第四年位居榜首。在学习Rust方面,我们也看到了一些适度的收获。
最喜欢、最害怕和最想要使用的Web框架
ASP.NET Core是最受欢迎的Web框架,击败了React.js。参与调查的新人盖茨比(Gatsby)已排在第5位,受到60%的受访者的喜爱。
尽管它是最受欢迎的Web框架之一,但Angular.js也被认为是最可怕的。
最喜欢、最害怕和最想使用的其他框架,库和工具
.NET Core和Torch / PyTorch仍然是其他其余框架,库和工具中最受欢迎的工具。DevOps工具Chef和Puppet是最可怕的技术之一。
就业机会
就业状况
超过92%的专业开发人员至少是兼职。在所有受访者中,大约有12%表示他们是学生。
地理就业状况
与调查数据中代表性较好的其他国家相比,印度的学生比例明显更高。在所有这些地点,超过70%的开发人员被全职雇用。
随着时间的推移
今年是我们第一次询问受访者加班的频率或超出工作的正式时间预期。超过75%的开发人员至少偶尔加班,即每季度1-2天。
公司信息
入职
几乎一半的受访者表示,他们的公司拥有良好的入职流程。大约五分之一的人根本没有任何入职过程。
DevOps人员的存在
我们询问调查对象的组织是否有专门的DevOps人员。相同数量的受访者报告说,他们的公司至少有一名专职员工来处理DevOps,而那些报告者则没有。
DevOps的重要性
我们还询问受访者有关DevOps对扩展软件开发的重要性。几乎80%的受访者认为DevOps至少有些重要,而近一半的受访者则指出它非常重要。
职业价值观
找工作
职位搜索状态
几乎83%的受访者表示,他们要么不积极寻找新工作机会,要么对新工作机会不感兴趣。这与我们有关开发人员工作满意度的调查结果一致-大多数开发人员对其工作感到满意。
谁在积极寻找工作?
如果我们按职位职能划分数据,则超过20%的学术研究人员,数据科学家和数据/业务分析师都在积极寻找新工作,紧随其后的是设计师,游戏开发人员和移动开发人员,占19%。这与过去的调查结果一致,我们发现学术研究人员和设计师是工作满意度最低的角色。
求职因素
我们第一次问开发人员是什么驱使他们寻找新工作。到目前为止,更好的薪酬是受访者最普遍的因素,其中70%的受访者指出,更高的薪酬很重要。想要使用新技术是第二受欢迎的因素,这与受访者在两个工作之间进行选择时最重要的优先事项之一一致。
您在求职期间如何了解一家公司
我们询问了受访者在求职过程中如何了解一家公司,并收到了不同的答复。大多数受访者都会在Glassdoor和Blind等第三方网站上进行评论。但是,还可以从观看公司赞助的媒体(例如博客和公司文化视频)中学习很多。有趣的是,寻求公开可用的财务信息的受访者相对较少,例如来自Crunchbase的数据,这与受访者一致,他们认为公司的财务业绩和筹款活动并不是决定工作的重要因素。
薪水
按开发人员类型的薪水
总体而言,工程经理,SRE,DevOps专家和数据工程师往往会获得最高的薪水。在关注美国时,我们发现薪资范围的底部存在一些差异。在美国,与全球开发人员相比,相对于其他职业,移动开发人员和教育工作者的薪水往往更高。
开发人员类型的薪资和经验
当我们查看薪水与多年经验的比较时,我们会看到预期的结果-具有更多经验的开发人员往往会要求更高的薪水。但是,当我们查看特定的开发人员角色时,会看到一些差异。与具有不同职位类似经验的开发人员相比,SRE,DevOps专家和数据工程师的薪资高得多。这与我们在整体薪资趋势中看到的一致。设计师,移动开发人员和教育工作者的薪水往往低得多。
薪资和语言经验
在查看开发人员使用的编程语言时,年薪也有所不同。对于大多数语言,薪水和多年编码经验之间的关系是线性的。但是,我们发现Python和R用户要求更高的薪水存在一些异常情况。可以通过以下事实来解释这一事实:这些语言经常被收入最高的开发人员之一的数据科学家使用。
每周工作时间
在全球范围内,超过75%的开发人员每周工作时间少于45小时。高级主管,工程经理和产品经理往往会工作更长的时间。
有疑问加站长微信联系(非本文作者)