报告地址:https://hired.com/page/state-of-software-engineers/
开发者最喜欢 Python,但雇主最需要 Go 语言
雇主最需要的语言技能:Go
为了弄清楚雇主对哪些编程技能最感兴趣,Hired 研究了求职者在到六周内收到的面试邀请数量。如下图显示,谷歌的 Go 语言是雇主最需要的编程语言技能,可能因为这方面的开发者比较紧缺。掌握这一语言的开发者只占整个求职网站开发者数量的 7%。Scala 语言排名第二,只有 3% 的开发者将其作为自己的主要语言,因此学 Scala 也是恰逢其时。
有几个城市的地区差异非常明显,例如,以 C 语言为王牌的求职者最好去巴黎;C# 语言人才适合去多伦多;想去纽约就要学 Ruby。
报告还显示,R 语言已经垫底(在 IEEE 的年度排名中 R 语言也是极速下降)。
开发者「最喜欢」Python,最讨厌「PHP」
随着机器学习的兴起,Python 逐步成为了最受欢迎的语言,在这份榜单中也不例外。与此相对,「最讨厌」的语言落到了 PHP 头上,不过我们可能还是相信「PHP 是世界上最好的语言」。Java 的排名就比较有意思了,它在「最喜欢」和「最讨厌」的语言榜单上排名都很靠前。
很难说清楚一个人为什么喜欢/讨厌某种语言。这些开发者给出的讨厌理由主要是「用它写代码没什么乐趣」,而喜欢某种语言多是因为「有很多学习和开发资源」可以利用。而关于「缩进应该用 tab 还是 space 键」的世纪之争也在报告中给出了结果,tab 以 54% 的比例碾压 space 的 24%。
很显然,雇主想要的语言技能和开发者的喜好之间存在很大的差异。开发者最喜欢的三种语言(Python、JavaScript 和 Java)在雇主那里只能排到第 12、6 和 9 位。
区块链需求增长最快,但开发者最想学机器学习
来自 Hired 的数据(下图)显示,全球区块链工程师的需求正在飙升,同比增长 517%。精通区块链的工程师通常拥有后端工程师、系统工程师或解决方案架构师等头衔,区块链被列为该职位所需的技能。
从薪资水平(下图)来看,区块链工程师的职位也极具吸引力,在被调查的五个地区都占据着榜单的前三位。
需求量大、薪资高是不是就意味着工程师们会一拥而上呢?答案好像是否定的。报告显示,在回答「你最想要学习什么技术或技能」这一问题时,只有 12% 的人将区块链作为首选。而更多的人(61%)选择了机器学习。从技能来看,市场的需求和开发者的兴趣也并不总是匹配的。
近半数的工程师更喜欢结对编程,但并不喜欢跨职能协作
团队合作有助于提高成功率,至少在开发工作中是这样。下图中的调查数据显示,近半数(48%)的软件工程师认为结对编程(一种开发方式,两名程序员在一个工作站上工作)的工作方式能够提高自己在一家公司工作的意愿。
开发者可以通过结对编程获取明显的收益,如捕获 bug。这方面最优秀的例子要数 Jeff Dean 和他的「好基友」Sanjay Ghemawat。他们一起在谷歌工作,在一台电脑上写代码,就像「一个大脑的两个部分」。(参见:Jeff Dean 的激荡人生:我和 Sanjay 在同一台电脑上写代码)
这种方式对初级团队成员尤其有益:42% 的开发者认为结对编程对初级工程师有益,但对高级工程师没有什么帮助。40% 的开发者认为更多企业应该实施结伴编程,但企业还在纠结。五分之一的人认为结对编程可能会造成最后所有的工作都落在一个人头上,14% 的人认为这种方式会让那些不合格的开发者借助同伴的帮助蒙混过关。
虽然工程师们不介意彼此协作,但与其他部门的人合作就另当别论了。26% 的人认为销售部最难合作,其次是市场部(23%)、HR(20%)、产品部(11%)和设计部(9%)。
除以上几点外,报告中还有一些有意思的结论,如:1/5 的软件工程师是自学成才;43% 的开发者更喜欢在有开源项目的公司工作。具体内容请参见原报告。
参考链接:
https://hired.com/page/state-of-software-engineers/
https://spectrum.ieee.org/view-from-the-valley/at-work/tech-careers/what-programming-languages-engineers-and-employers-loveand-hate