诸如 TIOBE 此类的编程语言流行排行榜一直吸引了大量 IT 产业从业者的目光。随着市场需求的变化,最受欢迎编程语言的头把交椅从早年的 C++,到 Java 再到如今的 JavaScript、Python,可谓你方唱罢我登场。而在业界的招聘经理们看来,优秀的开发者需要具备哪些素养呢?开发者们更喜欢学哪些技能呢?本文对这些问题进行了一一详解。
为了了解 2020 年市场对开发人员技能需求的状况,世界知名招聘平台 HackerRank 对来自 162 个国家/地区的 116,000 多名开发人员和招聘经理进行了每人 15 分钟的在线调查,发布了第三份年度开发人员技能报告。这是该公司有史以来规模最大的调查,要求受访者提供有关编码训练营、薪酬公平等方面的投入,相关结论如下。
招聘经理在招聘开发人员的时候看重的是什么?
事实证明,这在很大程度上取决于公司的规模。
小公司更喜欢全才,从而招募到很多可以身兼数职的全栈开发人员。这通常是以牺牲掉招募专用前端开发者和后端开发者的成本为代价的。
较小公司认为全栈开发人员更重要,大公司则更可能需要领域专家
HackerRank 的《2020 年开发者技能报告》(2020 Developer Skills report) 中的图表显示,对于较小的公司(少于 50 名员工)来说,43% 的公司认为全栈开发者是他们最想雇佣的人。
细想一下,这种现象是有道理的。大公司才能允许人做更多专业性的事情。
也就是说,所有大型公司的大多数招聘经理都将前端、后端或全栈开发人员列为优先招聘的人员。只有约 30% 的 招聘经理认为以下职位是他们的优先选择:
- DevOps 工程师
- 数据科学家
- 质量保证工程师
至于雇主招聘时又会看重哪些技能呢?
JavaScript 仍然是最受雇主欢迎的编程语言技能
上图按地区列举了招聘经理对语言的看重程度,JavaScript 是最受欢迎的语言,紧随其后的是 Python 和 Java。
- JavaScript 是目前全球最流行的语言,其次是 Python;
- 在亚太地区,对 Java 的需求量仍然很大。相较于其他地区,C# 和 C++ 在非洲、欧洲和中东地区更受欢迎
但这里有一个很有趣的现象——越来越多的经理(尤其是在美洲)是「语言无关的」,他们并不关心你了解哪种特定的编程语言。
这可以追溯到我过去几年一直在反复宣扬的一个观点:如果你能学好一门编程语言,你就可以轻松地在工作中学习第二门语言。
因此,我很高兴越来越多的雇主认识到这一现实情况,而不是仅仅为「JavaScript 开发人员」或「Python 开发人员」提供工作岗位。
开发人员过去所开发的成果比开发人员使用的特定工具更能反映他们的能力。
越来越少的雇主要求雇员有大学学位,小公司更加灵活
这张图表展示了没有学士学位、有学位和有研究生学位的开发人员的比例(按雇主规模排序)。规模较小的公司聘用没有学位的开发人员的可能性更高。
- 小公司中 31% 的开发人员没有学士学位(在美国也被称为「本科学位」或「四年制学位」);
- 即使在大公司,也有 9% 到 18% 的开发人员没有学位。
这与上世纪 90 年代和 21 世纪初的情况有很大的不同,当时大多数开发人员的工作都对学位有所要求。但是细想下来,这也是完全有道理的。在过去 40 年里,获得大学学位(尤其是在美国)的成本飙升。
美国大学学杂费的通货膨胀与总体通货膨胀(消费者价格指数)之比。(资料来源:美国国家教育统计中心)
越来越多的美国人选择放弃传统的大学学位,而选择自学。
我的建议一直是:上便宜的社区大学,然后上便宜的公立大学。如果你能在不负债的情况下获得四年制学位,我仍然认为这是值得的。但我可以理解,那些已经过了传统意义上读大学的年龄(十几岁到二十岁出头)的人完全不想上大学的原因。在大学学杂费增长 25 倍的同时,万维网也诞生了,随之而来的是大量的免费学习资源。现在,只要你愿意静下心来学习,你就可以免费学到很多东西。
因此,鼓舞人心的是,我们看到越来越多的雇主开始雇佣完全自学成才的开发人员。同时,在上大学和完全依赖网上免费学习之间出现了一个新的中间地带:编程训练营。
我写过大量关于编程训练营的文章,而且也解释了它们对那些不想重返校园的人的作用。大多数人通过一两年的在线自学,参加当地的科技活动,逛逛当地的极客空间,就能成功地找到一份开发人员的工作。
但是有些人更喜欢加入编码训练营,因为训练营的课程更有结构性,也更容易理解。这和上社区大学和州立大学的花费基本是一样的,但是它们要快一些。同时一些雇主正在雇佣这些编程训练营的毕业生并分享他们对他们的看法,这对参加训练营的人来说无疑是好消息。
编程训练营有用吗?
图表显示,在接受调查的招聘经理中,近 32% 的人曾聘用过一名参加过编程训练营的开发人员。
接受调查的招聘经理中,约有 32% 的人表示,他们曾聘用过编程训练营毕业生。
以下是他们对这些训练营毕业生能力的看法:
上图显示,大多数招聘经理认为,编程训练营的毕业生与其他人胜任其工作的能力是差不多的。
他们发现,这些编程训练营毕业生的能力大多与其他雇员一样好。甚至有近三分之一的人表示,编程训练营的毕业生比一般员工表现更好。需要注意的一点是,许多编程训练营的毕业生已经获得了学士学位——有些人来自计算机科学和工程领域。因此,这些训练营的毕业生中,有些人的受教育程度比一般员工高。还要注意,不同编程训练营之间的教学质量差异很大。
这项调查没有公布更详细的数据,所以我们不知道哪些编程训练营是最受雇主欢迎的,我们也不知道传统的实体训练营和在线训练营的数量是多少。但不管怎样,在招聘了编程训练营毕业生的招聘经理中,有 32% 的人对这些人技能的评价很高。这一事实肯定会让其他在自己城市建立编程训练营的开发人员感到安心。
开发者们更喜欢学什么?
尽管 JavaScript 是目前使用最广泛、最受欢迎的编程语言技能,但未来的情况将会如何也一直是个问题。幸运的是,这项调查也包括了这项内容。如下图所示:
如上图所示,36% 的开发者希望接下来学习 Go,然后是 Python 和 Kotlin。
我们可以假设大多数受访者已经会使用 JavaScript 了——因为到 2020 年,如果不了解 JavaScript,就很难成为一名开发人员。因此,开发人员正在将目光转向一些新的语言。为了防止你还不熟悉这些语言,接下来我会对这些语言做简单描述。
Go 是谷歌在 2007 年开发的一种功能强大的服务器语言。Go 提供的特性如下:
- 垃圾收集
- 内存安全
- 有限的结构类型
- 以及大量用于编写高度并行程序的特性
开发者第二想学的语言是 Python。
我们正在开发一个基于浏览器的交互式 Python 课程,这门课程将会在 2020 面世,同时这个课程是提供证书的:
https://www.freecodecamp.org/news/python-curriculum/
2020 年,开发者们第三想学的语言是 Kotlin。Kotlin 是 JetBrains(InteliJ 和 WebStorm 等流行 IDE 的创建者)开发的一门优秀的语言。Android 开发本来是基于 Java 的,Kotlin 让这个开发流程变得更简单了。
「freeCodeCamp」上也有一门免费的 4 小时 Kotlin 课程:
https://www.freecodecamp.org/news/learn-how-to-develop-native-android-apps-with-kotlin-full-tutorial/
在专业开发方面,专业开发人员真正关心的是什么?
图表显示 59% 的开发人员希望在工作中学习新的技术技能。这个数字比那些主要想要获得证书、开发软技能或得到晋升的开发人员的数量要大得多。一言以蔽之:技能。大多数开发人员不太关心职业发展的传统标志(晋升)。他们更关心如何扩展自己的技术技能。
当你看下面这个图表时,你就能理解这种现象出现的原因了:
图表显示,相较于管理岗,开发人员对技术岗的兴趣更高。
大多数开发人员更愿意在技术岗上获得晋升,而不是进军管理岗。项目经理是经理,而独立贡献者就是一个被管理的开发人员。但究竟什么是技术主管呢?技术主管的角色因公司而异,但其工作一般跟做出高层次的技术决策(如提出架构)和为开发团队设定远景有关。技术主管通常向项目经理汇报,项目经理再向像 CTO 这样的高管汇报。
2020 年,开发者每年能赚多少钱?
根据对全球范围内 11.6 万名开发者的调查,他们的平均年薪为 5.4 万美元。让我们具体看看美国的情况,美国的开发者得到的报酬最多。我不太清楚这是为什么,但我猜测这背后的原因有很多:美国是世界上许多最大的软件公司的总部所在地,再加上限制性
移民政策限制了可以招募的开发者。
以下是美国城市中开发者的平均工资:
旧金山以 14.8 万美元的平均年薪位居榜首,其次是西雅图、洛杉矶和波士顿。相比之下,美国人的平均收入约为 4.7 万美元。所以作为一名开发人员的工作是真的不错的了。