知既往才能见未来,为了让大家能在 2020 年获得更好的薪资和发展,我们特意整理了 Hired 发布的《2019 年软件工程师行业状况》调查报告,该报告详尽揭示了全球程序员对工作职位、编程语言、技术学习等关键技能方面的诉求与趋势,以及全球范围内的雇主对软件工程师技能的需求和薪酬待遇。
过去的十年证明了创新能够以令人难以置信的速度发展并改变我们的生活方式。展望未来,像机器学习、区块链这样的技术已经开启了创新的新篇章。由于开发人员处于发展的最前沿,也是这场变革的中坚力量,难怪高管们都表示开发人才比金钱更有价值。
Hired 报告深入研究了700多名开发者群体,其中包括按市场划分的顶级技能、主要编程语言和工作场所偏好,另外也深入了解了工程师们更喜欢哪种编程语言,是如何学习的,以及对自己的工作都有哪些好恶。
1. 区块链工程师成为了最热门的职位
招聘开发人员是企业的首要任务,但并非所有的角色都是平等的。随着初创企业引入新的技术应用方法,大型企业将会继续寻求数字化转型,因此,所有希望招聘顶级技术人才的公司的用人需求都会不断不发展。
来自 Hired 的招聘市场数据显示,全球对区块链工程师的需求正在飙升,同比增长 517%。对于对区块链角色感兴趣的开发者,不要被职位名称迷惑。对于精通区块链的工程师来说,他们也通常也符合后端工程师、系统工程师或解决方案架构师之类的职位,而区块链被列为这些职位所需的技能。在过去 12 个月里,对区块链开发者的需求呈爆炸式增长,我们预计,随着企业开始实施其无数的用例,从数字身份到智能合约,再到劳动力管理和分布式数据存储,这些需求还将继续增长。
拥有安全专业知识的工程师也很受追棒,这可能是由于数据泄露事件的数量不断增加,以及消费者对隐私的担忧与日俱增所致。在过去 12 个月里,企业对安全工程师的需求增长了 132%。随着企业加大投资力度,通过数据推动业务结果,并专注于创造个性化和预测性的客户体验,对专门从事数据分析和机器学习的人才的需求正在上升。对具备这些技能的工程师的需求,分别增长了 38% 和 27%。
工程师职位的需求增长情况
为了说明 Hired 的总体增长,所有增长数据都已进行归一化。
薪酬情况:区块链工程师薪酬最高
随着需求的增加,薪资也会随之水涨船高。在我们分析的大型科技中心中,区块链工程师的薪酬最高,位居前三名。在旧金山湾区,区块链工程师的平均收入为 15.5 万美元;而在伦敦,他们的平均收入为 8.9 万美元。值得注意的是,由于薪酬标准和竞争环境的不同,美国之外的科技公司的薪酬通常要低得多。但是,我们看到了积极的趋势:例如,在伦敦,我们的《2018 年薪酬状况报告》发现,技术人员的薪酬总体呈上升趋势;具体来说,伦敦的区块链工程师的数据显示,他们的收入仍然远高于不同专业的同行。在纽约之外,安全工程师和机器学习工程师的薪酬也是名列前茅。
下面我们会罗列不同城市的关键技术中心的软件工程师的薪酬数据,你将会发现,对人才需求是随着城市不同而变化的。例如,游戏开发工程师是纽约薪酬最高的群体,平均年薪 14.7 万美元,而他们在其他城市的薪酬水平较低。在多伦多,自然语言处理工程师的薪酬飞涨,平均年薪为 8.3 万美元。
顶级软件工程师的薪酬
为了准确地了解工程师职位的薪酬,我们对各个城市的数据进行了细分。
纽约工程师薪酬情况:
旧金山湾区工程师薪酬情况:
多伦多工程师薪酬情况:
伦敦工程师薪酬情况:
巴黎工程师薪酬情况:
2. Go 成为了最热门的编程语言
开发者对他们最喜欢的和最讨厌的编程语言都有自己的看法,这已经不是什么秘密。然而,对一些人来说,可能有一个秘密就是:公司也有自己的偏好。
我们的数据显示,有 Go 经验的求职者是最受欢迎的,这可能是因为 Go 是由 Google 设计的,这就增加了 Go 开发的求职者进入 Google 工作的机会。但是,当我们调查开发人员实际使用何种编程语言时,Go 却不在前列,只有 7% 的人声称他们主要使用 Go 编程语言。Scala、Ruby、TypeScript 和 Kotlin 也有类似的趋势,都排在前五名,但在开发者中的熟悉程度较低。这种稀缺性可能会推动需求,而这一趋势可能还会持续下去,直到这些编程语言成为开发者社区中的通用编程语言。
JavaScript 在开发者使用的顶级语言中名列前茅,占 62%,这就使得 TypeScript 变得特别有趣:它是 JavaScript 的超集(对 JavaScript 程序员来说学习起来也更简单),但却只有 12% 的人使用 TypeScript,尽管它是全球第四大最受欢迎的编程语言。这就给那些已经熟悉 JavaScript 的开发者提供了学习 TypeScript 的机会,并对希望招聘开发人员的公司更有吸引力。
下面的数据分析了求职者使用特定编程语言的经验和公司面试他们的应聘职位的兴趣之间的关联性。它特别关注软件工程师在 Hired 求职期间(平均 2~6 星期)收到面试请求的数量。
全球最受欢迎的编程语言
以下表格罗列了求职者在求职期间(平均 2~6 星期)收到面试的次数。
值得注意的是,在旧金山湾区、多伦多和伦敦,数据显示了另一番景象:TypeScript 要领先于 Go、Scala 和 Ruby,成为这些市场中最受欢迎的编程语言。纽约的雇主最喜欢 Ruby。然而,在所有市场中,R 是需求量始终最低的编程语言。
你主要使用哪种编程语言?
只有 7% 的开发者使用 Go,但有 Go 编程经验的求职者最后可能会获得面试机会。
热门编程语言与多年工作经验
为了进一步分析编程语言的需求,我们根据多年的职业经验研究了需求是如何受到影响的。我们发现,在那些具有几年工作经验的求职者中,Ruby 的需求尤其旺盛:在当前的招聘市场中,熟悉 Ruby 并有 6 年以上的工作经验的求职者收到的面试次数,几乎是市场上其他有 6 年以上工作经验的求职者的两倍。在拥有 4 年或更少的工作经验的求职者中,那些熟悉 TypeScript 和 Go(由 Google 设计)的人的需求量最高。
4-5年工作经验:
6-10年工作经验:
10年以上工作经验:
开发者最喜欢(最讨厌)的编程语言
很明显,雇主对某些技能的需求比对其他技能的需求更强烈,但这只是其中的一部分。不管有没有需求,总是有一些编程语言是开发者最喜欢的。为了了解开发者社区对使用这些语言的感受,我们请他们权衡一下哪些编程语言是他们真正喜欢的,哪些编程语言是不喜欢的,最重要的是:为什么喜欢,为什么不喜欢。
我们了解到,Python 和 JavaScript 遥遥领先,有 51% 的开发者声称 Python 是他们最喜欢的语言之一;而 JavaScript 紧随其后:49%。我们还发现,对于 Java,开发者要么喜欢它,要么讨厌它:它既是第三受欢迎的编程语言,但同时又是第二最讨厌的编程语言。而 PHP 以 20% 成为第一最讨厌的编程语言。
是什么因素让开发者使用特定的编程语言?开发者社区的性质:74% 的人认为开发资源是他们热爱编程语言的主要原因之一,而 58% 的人则认为社区氛围和欢迎新人的意愿是他们看重的。
最喜欢的编程语言
最讨厌的编程语言
编程语言的好恶情况
3. 解密面试过程
在得到工作机会之前,开发人员就必须成功通过一系列的编码考试、白板面试和行为面试。他们到底是怎么看待这些面试方法的?简而言之,只有大约一半(54%)的开发者强烈赞同并同意编码考试有效测试了他们的能力,超过一半(63%)的开发者则认为它们与实际工作无关。
在一系列可能的测试中,他们并没有因为行为面试而大汗淋漓,只有 21% 的人表示这是面试过程中压力最大的部分。但是,编码考试和白板面试则是另一回事了。我们发现,63% 的开发人员认为编码考试是面试过程中压力最大的部分,59% 的开发人员认为白板面试带来的压力最大。
那种面试方法压力最大?
你是如何看待编码考试?
红:它们与日常工作无关。
蓝:它们是检验求职者能力的有效方法。
此处的所有百分比都是根据受访者的回答“强烈同意”或“同意”来确定的。
你最感兴趣的技术或技能是什么?
你未来十年的目标是什么?
4. 揭示开发人员的工作风格
团队合作使梦想成真,至少开发人员是这么认为的。调查数据显示,软件工程师对结对编程很感兴趣,这是一种开发方法,两个程序员在一个工作站上一起工作。事实上,48% 的人表示,如果他们提供结对编程的话,会增加他们在公司工作的兴趣。
开发人员也看到了结对编程的明显好处。将近一半的开发人员认为结对编程更有效,因为它有助于在开发过程中捕捉 bug。这对初级团队成员特别有用:42% 的受访者认为结对编程对初级工程师有好处,但对经验丰富的人来说没有意义。尽管 40% 的受访者认为应该有更多的公司实施这一做法,但公司仍在解决这些问题。五分之一的受访者认为,结对编程恶意让一个人完成所有的工作,14% 的受访者则认为结对编程可以让不合格的开发人员因合作伙伴的帮助下而滥竽充数。
结对编程会影响你的工作热情吗?
你或队友曾经参与跨团队合作吗?
虽然工程师不介意彼此合作,但与跨职能团队合作并不是他们的最爱。四分之一(26%)的人表示销售是最具挑战性的,其次是市场营销(23%)、人力资源(20%)、财务(15%)、产品(11%)和设计(9%)。
5. 关于开源的看法
开源社区以忠诚而著称,但经常贡献者的人数比你想象的要少。调查数据显示,只有 9% 的受访者经常为开源做出贡献,53% 的受访者以前就从未对开源做出过任何贡献。
缺乏开源参与可能是因为促成开源的关键驱动因素:30% 的开发人员表示,他们之所以为开源做出贡献是因为它很有趣。考虑到他们繁重的工作日程,开发人员可能并没有足够的时间去做一些“为了好玩”的事情,因为这些事情并不一定对他们的日常工作有所帮助。
公司参与开源的程度也不会影响开发人员为这些公司工作的兴趣,50% 的受访者表示,这根本不会影响他们的决定。话虽如此,43% 的开发人员表示,他们确实更愿意为那些为开源项目做出贡献的公司工作,尽管这并不是什么大问题。随着公司在当今竞争激烈的招聘环境中寻求差异化,他们参与开源项目可能是吸引顶级人才的机会,这些顶级人才看重的是这样的一个组织,该组织为他们的团队优先安排时间,以一种为开发人员社区增值的方式参与其中。
你是否曾为开源软件做过贡献?
为开源软件做出贡献的主要动机是什么?
开发人员的好恶
63% 的受访者表示宁愿早期早点完成工作,也不愿意睡懒觉或加班熬夜。
38% 的受访者表示他们最大的不满是不切实际的最后期限。