報告地址: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