今年,大名鼎鼎的HackerRank社区做了一次大型调查,详细地问了程序员们:他们是什么时候第一次码代码的,他们是如何学习编码的,有什么喜欢的语言和框架,他们想要的工作,HR们想要招怎样的人等等。从39,441份回复中,HackerRank收到了不少很好的见解,也统计出不少有意思的数据。
你是从几岁开始学习编程的?
在4个开发人员中,有1个在他们能够开车之前就开始学习编码
开始编程永远不会“太早”,也永远不会“太晚”。在所有专业级别的3.9万名开发人员中,超过四分之一的开发人员在16岁之前编写了他们的第一行代码。
与此同时,在26岁之后开始编程的所有开发人员中,有36%的人现在是高级或更高级别的开发人员,他们在职业生涯中快速成长着。
你的年龄vs程序员生涯?
受到PC革命激励的60-70后
出生于1963-1972年的程序员,有近一半(47%)在16岁之前就开始编程了,而出生于1973-1982年的阶段的程序员,则是编码神童(5-10岁)产量最高的群体(12%),与此对比的是,出生于1993年-1999年的程序员,只有20%在16岁之前才开始编程。
不像之后的几代人,如果60-70后想要看到创新的技术,必须靠自学,可没有像现在如此之多的正规编程教育资源。
年龄在45到54岁之间的开发者是最先接触到相对强大的PC的人,比如Acorn Archimedes、TRS-80、Commodore 64和Apple II。由于没有接受正规编程教育的机会,PC革命中的年轻人有一种不同寻常的强大动力去学习编程。(小编个人猜想,那个年代没有现在那么多琳琅满目的端游、手游,想从电脑找乐子的青少年,只能靠自己动手敲代码。)
哪些国家盛产编码神童(5-10岁)?
向英国的年轻程序员们脱帽致敬
在参与调查的17个国家中,从5~10岁就开始编程的人员属英国最多。重要原因是:位于剑桥的Acorn Archimedes 就开始推进校园编程教育了。他们和零售企业Tesco合作,学校在Tesco购物可获赠PC。这让更多的孩子可以接触到电脑。这一协议慢慢遍及了欧洲和澳大利亚。
你是如何学习编程的?
程在学习、寻求个人成长方面,程序员是最为孜孜不倦的群体
似乎每年都有一个新的标志性语言、框架或库在被程序员们在博客上热烈讨论。一开始,大家还在用Backbone.js,到现在,每个人都在为AngularJS欢呼雀跃了。自学是所有开发者的必经之路,尽管67% 的开发人员拥有CS学位,还是有74% 的人说他们至少部分自学。
每个程序员平均掌握4 种语言,还平均想学4 种语言。对学习的渴望程度因不同年龄段而不同——18到24岁的年轻开发者计划学习6种语言,而35岁以上的人只打算学习3种语言。
企业对使用哪些语言的开发者最感兴趣?
企业对使用哪些语言的开发者最感兴趣?
虽然新语言更新得很快,最重要的还是那些经典语言,比如JavaScript,Java,Python,C和C++。毕竟他们用途更广,企业用人需求更高。
而不同行业内的需求略有差异。例如,Java在金融服务领域一直很受欢迎;C因为它的性能,直接的底层硬件API,以及在许多平台上的编译器的可用性,至今在硬件上占主导地位。而C# 在政府组织中更为常见。
企业的需求与应聘者所具备的能力,有多大差距?
企业需要的框架vs应聘者掌握的框架
在这个行业中,编程语言并没有像它们创建起来的那样迅速被采用,但是JavaScript却不同,调查显示,最受欢迎的框架是JavaScript——它是唯一一种能够构建前端、后端、移动和浏览器扩展的语言。因此,JavaScript统治着网络。但在大多数情况下,雇主希望开发人员会用AngularJS, Node.js和React。这3个框架在开发人员知道的和雇主想要的东西之间也有很大的差距。对于开发人员来说,有一个很大的机会来学习如何应对公司需要的市场技能。
知识上的空白部分可能是JavaScript的碎片化特性的副产品。它的生态系统正快速变化,这可能就是为什么雇主和应聘者之间在JavaScript框架上存在知识差距的原因。
企业最为重视的,是你解决问题的能力
企业看重应聘者哪些核心能力?
解决问题的能力超过编程语言的熟练程度,调试和系统设计成为雇主最看重的能力。演示计算思维或分解大型复杂问题的能力与工作所需的基本技术技能同样重要。
然而,在小公司和大公司关心的有一些细微差别。例如,规模较小的公司更多地在寻找有框架能力的候选人。
对于初创公司来说,拥有正确的框架知识更重要,因为他们需要快速启动,而框架帮助开发人员更快地推动代码。
经验比学历更重要!
不同规模的公司的用人需求
有一种普遍的观点认为,招聘人员青睐有名牌大学CS学位的候选人。但事实证明,他们真正关心的是你过往的经验——而不是你上了哪间学校。无论公司规模如何,绝大多数的招聘经理都说,他们寻找的是被证明的技能,比如以前的工作、多年的经验和项目 GitHub。
通常支持简历的资历(学位、教育水平、技能认可或证书)并不那么吸引雇主。由于要审查个人实际能力比较困难,多年的经验是用来证明技能的一种稳健保障——尽管这完全忽略了那些在岗位中快速成长的高效员工。
开发者们纷纷涌向科技巨头们推行的语言
开发人员下一步计划学习哪种语言?
在“不知道”和“接下来要学习”之间差距最大的语言是Go, Kotlin, Rust, Scala和Swift。在硅谷科技巨头的引领下,这个趋势变得越来越明显。
谷歌的Go有着高并发性,利于快速编译,它的创建者也对它大加支持。谷歌还刺激了Kotlin的使用,它将Android语言从Java移开并规范化了。
此外,当Twitter在Rails上超越Ruby时,该公司将Scala作为一个更高效的替代方案而受到关注。最后,当苹果从Objective-C转移到Swift时,开发人员也不得不切换。随着iOS开发变得更加流线型和越来越容易访问,越来越多的开发人员需要跟上脚步。
Python即未来
开发人员更喜欢哪种语言?
根据调查,JavaScript是雇主最需要的语言,但是Python赢得了所有年龄段的开发者的心。Python也是开发人员想要全面了解的最流行的语言,而且有相当一部分人已经上手了。
语言偏好图是建立在爱恨指数(Love-Dislike Index)的基础上的,它综合了每一种语言中,受到开发人员喜爱的占比,并减去不喜欢的占比。这有助于我们确定某种编程语言或框架的受欢迎或受嫌弃程度。下图中,100%=最受喜爱,-100%=最不受欢迎。
Python因简单、可读性强和强大的库著称。它正迅速成长成为计算机科学入门课程的一部分。
在较新的语言中有一种不同寻常的代际趋势:年轻的开发人员更不喜欢较新的语言(比如Go、Kotlin和Scala)。事实上,Go是最大的分歧之一。18-24岁的开发者不喜欢它,但45-54岁的人认为它是他们最喜爱的语言之一。关于JavaScript则正好相反。
这很有趣,因为许多较新的语言,包括Go,都需要从旧语言中学习的经验。Go的主要设计者之一在几十年前创造了C语言。在年轻的开发者求知欲更强,他们更喜欢全局地学习语言——甚至是那些他们不喜欢的语言。年长的程序员则根据他们的经验和他们认为经得起时间考验的东西来选择学习。
Node.js就是新的jam
开发人员更喜欢哪个框架?
Node.js以最大的比例赢得了最受欢迎框架的称号。作为后端JavaScript的唯一方法,每个年龄段的人都喜欢Node.js。至于前端框架,我们都知道AngularJS和React是目前时髦的,而数据显示它们在年轻一代中更受欢迎。
评估技能被证明是最大的招聘挑战,而不仅仅是人才短缺
招聘人才的最大的挑战是什么?
企业最常用哪些评估工具?
据7000多家雇主表示,目前最大的招聘挑战是技能评估,而不是人才短缺。与此同时,只有55%的开发者说简历是他们良好地反映了他们的能力。
虽然技术招聘经理仍然主要将简历作为评估程序员的第一步,几乎所有人都同意评估技能是最困难的挑战之一,因为招聘经理最关心的因素(技能证明)不是从简历中筛选出来的。
工作vs生活
在求职中,开发人员最重视的是什么?
如果你看看任何典型的技术职位描述,会发现HR通常会高亮标注技术堆栈、任务说明和额外津贴,以吸引开发人员申请。这其实不是招聘经理在争抢人才时应该突出的。
相反,程序员更看重工作与生活的平衡,而专业的增长和学习位列第二。更具体地说,美国人渴望工作与生活的平衡,而不是像亚洲和欧洲等地区的开发人员。
对那些在小公司工作的人来说,工作和生活的平衡不那么重要,但仍排在前三名。对于25岁以上的开发者来说,工作与生活的平衡是最重要的,而对于18到24岁的开发者更偏向趁年轻多拼搏,生活和工作的平衡在他们心目中就没那么重要了。
从地理上看,区别并不太大,只有少数例外。加拿大人最关心的是薪酬,而澳大利亚人则把公司文化作为他们在工作中最关心的事情。
在某些方面,我们发现了一个小小的矛盾。开发人员想要工作与生活的平衡,那他们就无法满足学习的渴望。事实上,需要学习的新工具数量有时会让开发人员感到无所适从。但是学习的最好的燃料是好奇心和对在你的领域发展的技术真正的兴趣。专注于做你喜欢的事情(而不是尝试学习一切)能帮助你更好地平衡工作与生活。
灵活的工作安排
从业者们如何保持工作与生活的平衡?
我们意识到工作与生活的平衡对不同的人来说也有很多不同。所以,我们深入挖掘了开发者真正想要的东西。
总的来说,工作与生活的平衡可以在灵活的工作时间里得到支持。
开发人员希望为专注于产出的管理者工作,而不是把时间花在办公椅上。远程办公的选择也很有帮助。25岁及以上的开发者对远程工作的愿望特别强烈。
有时候,为自己争取多一点时间,灵活性和整体的精神平衡是值得的。
对学生来说,专业成长是最重要的
企业能帮你维持一个健康的工作与生活平衡的最佳方式是什么?
专业成长是学生找工作时最看重的一件事。学生们渴望学习并发挥他们的潜力,因此在他们的职业生涯中,将工作与生活的平衡放在较低的位置。