整理 | 屠敏
出品 | CSDN(ID:CSDNnews)
科技江湖众生态,技术各有千秋,但有一个定律似乎一直存在,即随着时代的推移,强大的技术未必长久不亡,长久的技术未必强大不衰。那么,就当下而言,什么才是仗「技」走天涯的程序员们最爱?主流技术圈又在以怎样的趋势不断发展?
近日,编码社区 HackerRank 调研了全球 162 个国家/地区的 116000 多名开发者,正式发布了《2020 HackerRank 开发者技能报告》,基于此,开发者可以了解最新的技术趋势与技能,希望能够给大家带来一定的参考。
基础篇:C 的热度超越了 BASIC
如今在物联网、AI、云计算等技术热潮之下,很多人根据业务需求来选择不同的编程语言与工具。然而,时针拨回 30 年前,你要问当时的程序员选择的入门级编程语言是什么?想必很多人的答案之一会有 BASIC。
作为一种直译式程序设计语言,很多人将其视为汇编与 C 的过渡性语言,且它的定位也是设计给初学者使用的编程语言。
婴儿潮一代(出生于 1946-1964年)和 Xers 一代(1965 年至 1980 年出生)的大多数程序员都学会了使用 BASIC 进行编码。BASIC 于 1964 年开发用于教育用途,是大学教室中一种流行的教学语言。目前,在大学计算机相关的专业中,我们还能经常性看到基于 BASIC 语言的《程序设计》书籍存在。
不过,BASIC 整体应用趋势在 1972 年贝尔实验室(Bell Labs)发明 C 语言起就发生了改变,其市场份额也逐步被 C 侵蚀。尽管 C 语言并非一朝崛起,但随着 Unix 的发展,该语言在 70 年代末和 80 年代初开始流行。
当下,48 岁的 C 语言因其长寿、较好的灵活性和易用性而备受开发者喜爱。根据调查显示,年轻一代如 Z 世代(1997 年至 2012 年出生)的入门级开发者大多学会了使用 C 语言进行编码,其次受欢迎的首要入门编程语言为 Java。
经验篇:培训机构崛起,年轻一代的开发者借此修炼技能
Z 世代的程序员更喜欢利用培训机构学习新技能
基于以上,就学习的渠道方面,Z 世代(1997 年至 2012 年出生)比前几代人更可能喜欢培训机构(线上、线下)的方式来学习与提升新技能。据调查显示,将近六分之一的受访者表示正在使用这种模式。
除此之外,我们还发现年轻一代不太可能从老一辈程序员那里学习编码技能,如根据下图调查结果显示,在书籍、在职培训等选项中,Z 世代的占比相对比其他年龄层次的人少了很多。
显而易见,随着信息的数字化、开源的普及,Z 世代越来越依赖培训机构、开源网站等非传统教育资源。
三分之一的招聘经理聘请了培训机构的毕业生
目前,据调查显示,已经有 32% 的公司聘请了一名从培训机构学习编码技能的开发者。
但是,并不是所有的招聘主管都能利用培训机构这个不断增长的人才库来招聘。据调查,将近一半(49%)的招聘经理从未招聘过培训机构出来的毕业生。而这些所有公司规模的结果都是相似的。
对此,HackerRank 社区在报告中进行了预测,随着年轻一代越来越被培训机构吸引,企业在招聘过程中的这种心态必须改变。Z 一代比前几代人更可能从培训机构来学习编码技能。总的来说,这表明培训机构的毕业生人数将不断增加,并且随着时间的流逝可能会作为人才来源而增长。
就国内而言,现在不少正规大学的学生在毕业之后,也经常性选择通过培训机构的系统学习,再次加深自身的编码实践技能。
培训机构出来的开发者不必科班出身的人差
实际上,已招聘培训机构应届毕业生的招聘经理中,有 72% 的人认为,培训机构出来的开发者比其他应聘者具有同等甚至更好的技能。而这些主要体现在以下几个方面:
快速学习新技术和语言的能力(71%)
丰富的实践经验(61%)
渴望承担新的责任(52%)
这种快速增长的编码教育形式得到了国外的强烈认可。虽然 2011 年开始,才出现了第一个编码培训机构,但在过去的十年中,它们的普及程度呈爆炸式增长。最近的一项研究对 2019 年来自 110 个全日制课程的 20,000 多名培训机构毕业生进行了统计——仅美国和加拿大。
倘若这一观点放在国内,想必会引发不少争议吧。
大厂对学历的要求依旧很严格
不过,针对培训机构出来的开发者,国内外大厂在一定层面上有着相似性。据了解,国外如 Google、苹果、IBM 等技术型科技巨头在招聘时大幅提高了学历的招聘门槛,对四年制学位的要求也更加严格。因此,雇用没有学位的开发者,可能更多的是由小公司来领头。
这一点在调查的数据中也得到了验证。据报告显示,小公司(1-49 名员工)中有 32% 的开发者尚未获得学士学位。与大型公司(超过 10,000 名员工)形成鲜明对比:在大厂,有 91% 的开发者获得了学士学位或更高的学位,而只有 9% 的开发者没有学位。
需求篇:全栈开发者最紧缺
一直以来,市场对于“全栈开发者”的定义很广泛,没有明确的界线,但大多数人同意其应该对技术栈的所有层有一个基本的了解(或更佳),并且应该能够在此基础上生成一定的可行产品。
如今无论大小公司,都希望能找到一些全栈开发者。对此,38% 的招聘经理表示,这是 2020 年的首要任务。其次,第二和第三位分别是招聘后端开发者和数据科学家。
就小型企业(拥有 1-49 名员工)而言,对全栈开发者的重视与需求最为明显,其中 43% 的公司将作为其首要招聘任务。究其原因,小企业规模小,但人少事多,需要的是全能型人才节省很多方面的开支,因此小企业迫切想要招聘全栈开发者合乎情理。
全栈开发者需要经常性学习新技能以充电
所谓全栈开发者,即全能型开发人才,相较而言,其技能要求会高一些。据统计,去年,有 60% 的全栈开发者被要求学习一个全新的框架(技术迭代的速度要比其他程序员更快)。
除此之外,全栈开发者还必须学习更多的编程语言,对此有 45% 的受访者表示他们必须在去年内选择一种新的语言。在此之下,其他程序员可能更多地是学习有关理论概念的知识,如数据科学家和 DevOps 工程师被要求最频繁地学习新概念(33%)。
在这种环境中,凭借涵盖前端、后端以及更多(取决于业务)的专业知识,全栈开发者成为技术界中较为模糊的职位描述之一。他们的角色相对灵活,但这就硬性要求他们必须紧跟多种技术,这也意味着日常工作中,他们需要不停地学习各种技能。
在很多开发者的招聘技能中,并不会和编程语言直接挂钩
整体而言,编程语言这一技能并不是招聘经理在面试时衡量的主要标准。此前,JavaScript 是招聘经理寻找候选人技能时最流行的语言。但是,在全球范围内,有 14% 的受访者表示,在筛选候选人时他们不懂编程语言。
这种趋势在美洲地区(AMER)最为明显:该地区 21% 的招聘经理在寻找新员工时与语言无关。亚太地区(APAC)的招聘经理与语言无关的可能性是其一半(10%)。
开发工具篇:JavaScript 最流行,Go 成为开发者最想学的编程语言
JavaScript 是今年最广为人知的语言
在最知名的语言中,过去三年几乎没有变化。实际上,排名前 10 位的编程语言与去年相比仅发生了两次变化:C# 和 PHP 在第六和第七位之间切换。
值得注意的是,最广为人知的语言 JavaScript 不是大多数开发人员都在学习的语言,只有 5% 的受访者表示它是他们的第一门编程语言。Java 遵循类似的趋势:它虽然是知名语言的第二位,但是只有 13% 的开发者表示,Java 是他们学习的第一门语言。
Django 和 Vue.js 稳步上升
今年,框架的流行度与去年一样充满活力,Top 10 中有 5 位发生了趋势变化。
在 HackerRank 连续三年发布的开发者技能报告以来,Vue.js 一直表现出稳定的增长,且自 2018 年以来每年递增一位。但是 Django 发生的变化最为明显,它在 2019 年至 2020 年之间上升了两位(从最受欢迎的第六名上升到第四名)。
Django 使用率的提高与 Python 的兴起密不可分。当下,Python 在 2019 年使用率呈上升趋势,是机器学习和人工智能(AI)的主流选择,并且一直被大家视为开发者每年都希望学习的顶级语言之一。而且由于 Django 是基于 Python 的框架,因此 Django 的使用率和欢迎度上升也在意料之中。
Go 是开发者想要学习的第一语言
连续第三年,Go 是开发者未来要学习的第一语言。
其实,自 2009 年诞生以来,由 Google 开发的 Go 语言就受到越来越多的欢迎,部分原因是其创造者即 Google 的知名度影响不无关系。这也正如,《2018 年开发者技能报告》中指出的那样,这并非科技巨头第一次为推动编程语言而行动,此前,Twitter 决定放弃 Ruby on Rails 并全力推广 Scala;Apple 在弱化 Objective-C 的同时为 Swift 所做的扶持。
如今,越来越多的开发者加入了 Go 的阵营,而它的排名也从 2018 年的第 13 名上升到 2020 年的第 12 名知名语言。
那些了解 Perl 的人比普通开发人员的收入高出 54%
Perl 是与高工资最紧密相关的语言。在全球范围内,了解 Perl 的开发人员的收入比其他开发人员的平均年薪高出 54%。其次是 Scala(+ 42%)和 Go(+ 33%)。
一定程度上,与 Perl、Scala 和 Go 等高薪语言相关的程序员,也可从中看出其技能水平。例如,大约 10% 的高级开发人员知道 Perl,但只有 2% 的初级开发人员知道 Perl。据报告显示,Scala 和 Go 显示了相似的模式。而且由于高级开发人员的薪水往往更高,因此与每种语言相关的平均薪水也有所提高。
开发人员正在学习 React、AngularJS 和 Django
从去年起,越来越多的开发者开始学习 React,而它也成为大多数开发人员想要学习的框架:32% 的受访者表示这是他们接下来要学习的框架。
因此,它有机会成为 2020 年最知名的框架。不过在今年的调查中,React 在知名的框架排行榜中位居第二,略逊 AngularJS 一筹。
接下来,AngularJS 和 Django 分别排在了第二和第三名:28% 的人表示他们计划学习 AngularJS,而 26% 的人表示他们正在学习 Django。这三个框架都在招聘经理招聘的人才技能中排名前五。
在全球范围内,Backbone.js 的薪酬最高
Backbone.js 是与高薪酬相关的框架:知道它的开发人员的收入比全球平均水平高 49%。
Cocoa 和 Ruby on Rails 分别与第二和第三高的平均工资挂钩。知道 Cocoa 的开发者收入比全球平均水平高 35%,而知道 Ruby on Rails 的人的收入比全球平均水平高 30%。
同样,薪资较高的开发者也与资历相关。以 Backbone.js 为例。7% 的高级开发人员知道这一点,而初级开发人员只有 2%。而且由于高级开发人员的收入较高,因此可以提高与框架相关的平均工资。
值得注意的是,Backbone.js 也是一项不常见的技能。在全球范围内,只有 4% 的开发人员知道。因此,低知识供应可能会使那些知道它的人要求更高的薪水。
薪酬篇:美国程序员薪酬比其他国家的要高,但薪酬不是衡量一份开发者职业生涯的标准
美国开发者的收益比其他任何国家都高
在同等的职位上,美国开发者的平均薪水最高:那里的开发人员平均每年可赚 109,167.36 美元。
澳大利亚和加拿大是第二高薪国家,开发者的平均工资分别为 88,538.51 美元和 72,771.32 美元。荷兰和英国排在收入最高的五个国家之列。
在全球范围内,有 39% 的开发人员认为他们的报酬不公平
只有 35% 的开发人员认为他们获得了合理的报酬;有 39% 的人认为自己的薪酬与同行相比不公平,还有 26% 的人不确定。
随着诸如 Glassdoor 和 LinkedIn 等网站的薪资共享已成为常态,全球的开发者可以获得同行薪资估算。从诸多方面来看,这是一件好事,毕竟它为开发者在进行应聘谈判时提供了一定的薪酬参考,使其与公平市价保持一致。但从侧面来看,也有不好的一面,开发者会更清楚地了解到自己的薪酬,并将其与同行业的他人进行对比,由此产生落差。
职业发展最重要的形式:新技术技能
不过薪酬并不是程序员用来衡量自己工作的最直接标准。根据调查显示,能够在工作中收获技能成长对于开发者而言至关重要,而薪酬标准排在第三位。
事实上,多数开发人员都认可:他们希望有机会在工作中学习新的技术技能。高达 59% 的开发人员将其视为职业发展的最重要形式。这一占比是“承担新职责的能力”这一选项的两倍,比“发展软技能的机会”重要四倍。
开发者更希望成长为技术主管,而不是管理层的经理
有 62% 的开发者希望在未来三年内成为技术主管。与希望成为项目经理的人数(15%)形成鲜明对比。
这可能就是为什么大多数开发人员在找工作时,会更优先考虑学习新技术技能的机会。对于技术人而言,大多数人对管理工作的兴趣降低了,而对像首席架构师这样的技术领导职位更感兴趣,因此掌握新的技术技能至关重要。
另一方面,目前担任项目经理和技术负责人的开发者对其当前的角色感到满意。大多数人希望继续担任同一职务。
兴趣篇:程序员爱听歌和上网
此前,知乎上有个提问:程序员上班时戴耳机是在听什么?高赞的回答是:戴上耳机是告诉其他人不要打扰我,实际上并没有在放音乐。
在真实的办公环境,事实如此,带上耳机,外界的嘈杂与我无关。但是在业余时间时,你如果看到程序员带上耳机,那说明真的可能是在听歌。据数据统计,61% 的开发者会花时间听音乐,其次程序员的主要爱好/时间分配是上网(52%)、吃点东西(48%)和运动(48%)。但是 3% 的开发人员表示,他们永远不会休息!
最后,作为程序员的你,有哪些习惯?又有哪些常用的工具或经验想要分享呢?欢迎下方留言,分享你的想法~~
【End】
推荐阅读
☞隔离是否有效?北大面向新冠疫情的数据可视化分析与模拟预测
☞爱荷华大选 App 投票酿闹剧的反思:为什么我们在软件工程方面如此糟糕?
☞一文告诉你,如何使用Python构建一个“谷歌搜索”系统 | 内附代码
☞愿得一心人:硅谷亿万富豪们的婚姻怎样?有人白首相守七十年
☞Python + ElasticSearch:有了这个超级武器,你也可以报名参加诗词大会了!| 博文精选
☞区块链中的哈希到底是什么?
你点的每一个在看,我认真当成了喜欢
猛戳“阅读原文”,填写中国远程办公-调查问卷