歡迎光臨
每天分享高質量文章

他們調查了3.9萬名程式員,製作了這份開發者技能報告

這是一份樣本數超過 3.9 萬人的調查報告,參與調查的開發者遍及全球。除了四分之一的開發者在學會開車前先學會程式設計之外,還有這些調查結果等你發現。對照這份調查報告,看看你跟世界上其他國家地區開發者之間的異與同各是什麼?

Hello World:

未來的工作可能發生巨變,不管從事何種工作,學會程式設計總是大有裨益。程式設計有助於培養計算性思維,而計算性思維在制定決策的過程中發揮著重要作用。傳統的簡歷可能會消失,招聘將會以應聘者的技能為首要基礎。

我們在 2012 年底創辦了 HackerRank,旨在幫助每一位開發者找到適合他們的職位。HackerRank 的發展速度十分驚人——我們接觸了 320 萬名開發者,併在去年幫助其中的 2% 開發者找到了工作。

這是我們第一次向 HackerRank 社群的開發者發起關於開發技能的調查。我們得到 39441 個開發者的反饋,從這些反饋中可以發現一些很有趣的現象,我們很高興能夠把它們分享出來。要知道,有四分之一的開發者在學會開車之前會先學習程式設計。

—— HackerRank 聯合創始人兼 CEO Vivek Ravisankar

原文連結:http://research.hackerrank.com/developer-skills/2018/



01 四分之一開發者在學會開車前先學習程式設計

你是從幾歲開始程式設計的?

程式設計起步不在乎早晚,在 39000 多名開發者當中,有四分之一在 16 歲之前就開始接觸程式設計。

而在 26 歲之後才開始接觸程式設計的開發者當中,有 36% 已經成為高階或更高階別的開發者,可見他們的職業生涯發展得很快。

02 個人電腦的發展為 70 年代的孩子提供了契機

當前年齡和開始接觸程式設計的年齡

70 年代的孩子如果想要看到創新科技,他們必須自己動手去建立,因為他們別無選擇,那個時候沒有那麼多資源教他們如何開發軟體。在 45 歲至 54 歲的開發者當中,幾乎有一半(47%)在 16 歲之前就開始程式設計。而在 18 歲至 24 歲的開發者當中,在 16 歲之前就開始程式設計的要少得多(只有 20%)。

45 歲至 54 歲的開發者也是第一波接觸早期個人電腦的人,比如 Acorn Archimedes、TRS-80、Commodore 64 和 Apple 2。因為計算機教育資源的匱乏,他們所受的正規教育非常有限,但這也是他們自學程式設計的動力來源。

03 向致力於培養年輕開發者的英國致敬

從 5 歲至 10 歲就開始程式設計的開發者所佔比例最高的國家

在這次調查中,包含至少 100 份反饋的國家有 17 個,其中英國擁有最多的早期開發者,他們從 5 歲至 10 歲時就開始程式設計,這些人現在的年齡在 30 多歲至 40 多歲之間。

在這些開發者還是個孩子的時候,Acorn Archimedes 進入了他們的視野。當時的學校與樂購合作,只要他們在樂購購物,就可以獲得免費的電腦,於是很多孩子都有機會接觸到電腦。這種樣式後來歐洲和澳大利亞得到廣泛應用。

現如今,超前思維教育已經在英國落地生根,他們要求小孩在 5 歲時就要開始學習程式設計。

英國當局反覆強調,儘早接觸程式設計為人們進入軟體行業開啟了一扇大門,同時也有助於他們更好地理解計算性思維和對人們日常生活有重要影響的軟體系統。

04 幾乎所有的開發者都對學習如飢似渴

學習程式設計的途徑

似乎每一年都會出現一些新的程式語言、框架或軟體包,它們的身影遍佈於開發者的部落格上。剛開始是 Backbone.js,現在是 AngularJS 和 React。自學成了所有年齡段開發者的標配,這些開發者當中有 67% 擁有電腦科學背景,但仍然有 74% 的開發者表示,他們在一定程度上還是要依靠自學。

平均每個開發者已經掌握了 4 門程式語言,他們表示還想再多學 4 門語言。學習的熱情程度依據年齡段有一定的差別——18 歲至 24 歲的年輕開發者計劃學習 6 門新語言,超過 35 歲的開發者則只計劃學習 3 門。

程式設計的目的就是要獨立解決問題,所以自學對於成為一名成功的開發者來說至關重要。在選擇下一個學習標的時,一定要遵循這樣的原則——把自己根植於某個領域,把學習看成是自我成長的手段。我們可以學習更多的工具,但工具時刻在變化,而最根本的學習動力其實是對程式設計的好奇心和興趣。

05 年輕開發者選擇在 YouTube 上自學,而不是透過書本

Stack Overflow 對於自學者來說是最好的去處,幾乎所有年齡段的開發者都上過這個網站。開發者們在網站上可以看到其他人之前已經碰到並得以解決的問題。

不過,在選擇 YouTube 還是書本來學習程式設計這個問題上,卻有明顯的年齡段差異。年輕人更喜歡在 YouTube 上自學,而年長的開發者更喜歡透過看書來學習新技能。更準確點說,在學習一個新工具時,年輕一代中有 65% 會去 YouTube,而年長一代中有 85% 會選擇看書。

兩種方式各有自己的優勢。YouTube 的學習樣式具有系統性,就像學習大學課程那樣,有一定的結構和穩定的進度,而且你可以按照自己的節奏來學習。YouTube 的另一個好處是適應性,它可以隨著軟體行業的發展而變化,而書本則更適合作為電腦科學的基礎載體。任何人都可以很快地在 YouTube 上釋出教程,儘管它們不像書本那樣會包含數年的精華積澱。不管是哪一種方式,有一點是很明確的:我們正處在計算機教育發展的浪潮之巔。

06 開發者學習的都是僱主最需要的程式語言

程式語言日新月異,但對於開發者來說,掌握核心的程式語言是最為重要的。目前僱主需求量最大的程式語言包括:JavaScript、Java、Python、C++ 和 C。

僱主需求量最大的程式語言與開發者所掌握的程式語言有著驚人的匹配度。Java、JavaScript、C 和 C++ 以及 Python 都是開發者掌握得最多的程式語言。

不過從行業來看,則存在一些變化。例如,Java 在金融領域已經流行了多年,而 C 語言因其效能方面的優勢在硬體、底層硬體 API 和跨平臺編譯器方面獨領風騷,C# 則在政府部門有更廣泛的使用。

07 JavaScript 框架方面的知識差異最明顯

僱主對 JavaScript 框架的需求和開發者對框架的掌握情況

程式語言並不會一齣現就立馬被業界採用,而 JavaScript 框架卻改變了這一遊戲規則。

JavaScript 框架的需求量相當大,因為 JavaScript 是唯一可以用於開發前端、後端、移動應用和瀏覽器外掛的語言。可以說,JavaScript 統治了 Web 領域。很多僱主都希望開發者能夠同時掌握 AngularJS、Node.js 和 React。

不過,對於這三門語言來說,僱主想要的和開發者掌握的知識之間存在最大的差距。React 在這方面的差距最大,不過換句話說,這也為開發者提供了很好的機會,他們可以學習 React 來滿足僱主的需求。

造成知識差異的另一個原因是 JavaScript 的相關框架太多。JavaScript 生態系統發展得太快,這大概也是造成 JavaScript 框架知識差異的主要原因。

08 幾乎所有的僱主都很看重解決問題的能力

僱主最看重的技能

解決問題的技能幾乎是所有僱主都看重的一點,它比程式語言、除錯技能和系統設計能力更加重要。計算性思維或解決複雜問題的能力比掌握基礎性技能更有價值。

不過,小公司和大公司關註點有些差別。比如,小型公司比中型公司更看重開發者對框架的使用熟練程度。

之所以存在這樣的差別,可能是因為框架對於初創公司來說更為重要,他們需要在短時間內啟動專案和釋出程式碼,而框架可以幫他們做到這點。

09 實際經驗比簡歷上的光鮮內容更重要

大多數人認為,招聘者更喜歡那些從名校畢業的、擁有計算機學位的候選人。但實際上,他們更關心候選人曾經做過些什麼,而不是從哪所學校畢業。大部分招聘者表示,他們看重的是實際的經驗,比如前一份工作做的是什麼、經驗年限和參與過的專案(包括在 GitHub 上的貢獻)。不管是大公司還是小公司,十個招聘者中有九個表示,過往的經驗和經驗年限可以作為技術能力的衡量指標,也是最為重要的參考因素。

實際做過什麼比其他東西都要來得重要,而小公司在這方面比大公司更為迫切,其比例分別為 80% 和 66%。

簡歷上的東西(學位、教育程度、技術證書)反而是招聘公司最不看重的,這些東西無法真正衡量候選人的技術能力。從簡歷上最容易挑選出來的是“經驗年限”,因為工作經驗與工作年限有著直接的聯絡。大規模逐個審核候選人的技能是有難度的,而經驗年限卻可以作為有力的參考,儘管存在某些人工作時間不長但成長很快的情況。

10 招聘公司的高層非常看重應聘者的 GitHub 和個人專案

招聘高層最看重的候選人品質

招聘公司將 GitHub 作為考察候選人的補充項。C 級別的高層,如創始人、CTO 和副總裁,他們認為 GitHub 專案參與度比經驗年限更重要,而學位在這裡就更不值一提了。

也就是說,當候選人面到高層這一輪,簡歷上的東西已經不那麼重要了。大多數時候,C 級別的高層會讓其他招聘者代勞面試簡歷上的東西,而他們會專註於面試候選人參與過的專案和上一份工作的內容。

11 開發者扎堆在科技巨頭所推崇的程式語言上

開發者想要學習的程式語言

開發者最為薄弱以及他們接下來最想學習的程式語言包括:Go、Kotlin、Rust、Scala 和 Swift。開發者追隨矽谷巨頭公司的趨勢越來越明顯。

谷歌的 Go 語言具有高併發和快速編譯的特點,而且有谷歌在背後提供大力的支援。谷歌將安卓的首選語言從 Java 改成了 Kotlin,鼓勵開發者使用 Kotlin。

另外,Twitter 在拋棄 Ruby on Rails 之後,將 Scala 作為首選的語言。而蘋果公司從 Objective-C 轉向 Swift 之後,開發者也不得不跟著轉移。畢竟 iOS 開發已經成為主流,大部分開發者都不想落在他人之後。

12 人人都想學 Python

JavaScript 或許是僱主需求量最大的程式語言,而 Python 卻是各年齡段開發者最想學的語言,而且已經有很大一部分人已經掌握了 Python。

Python 因其簡潔、可讀性強和強大的科學工具包而聞名,它還成為電腦科學入門課程的一部分。

在年輕開發者當中有一個相對反常的趨勢:他們比年長開發者更不喜歡新出現的語言(如 Go、Kotlin 和 Scala)。實際上,Go 語言剛好是一個汾水嶺。18 歲至 24 歲的開發者根本不關心 Go 語言,而 45 歲至 54 歲的開發者把 Go 語言視為他們最喜歡的語言之一。而 JavaScript 卻正好相反。

有意思的是,大部分新語言(包括 Go 語言在內)都從舊語言那裡借鑒了某些語言特性。Go 語言的主要設計者之一在數十年前發明瞭 C 語言。年輕開發者有著與生俱來的學習慾望。他們更傾向於全面地學習程式語言,即使有些是他們不喜歡的。而年長的開發者則會有選擇性地學習,他們根據自己的經驗選擇他們認為更有生命力的程式語言。

13 Node.js 獨佔鰲頭

Node.js 是大部分開發者最喜歡的框架,作為可用於後端開發的 JavaScript 框架,Node.js 成為全年齡段開發者的不二之選。而在前端框架方面,我們都知道,AngularJS 和 React 才是當下的時興,不過這種喜愛也只存在於年輕開發者當中。

45 歲至 54 歲的開發者對 AngularJS 和 React 的喜愛程度不如年輕人,但他們卻更喜歡 Vue.js。

14 相比人才短缺,技術能力的評估才是招聘中最大的難題

根據 7000 多家僱主的反饋,簡歷目前仍然是招聘過程中最為常見的評估依據。我們的調查資料顯示,81% 的招聘經理在最開始會使用簡歷來篩選候選人。

被問及招聘過程中最大的挑戰是什麼,招聘經理們一致表示,對候選人技術能力的評估是最大的難題,這個問題比人才短缺還要嚴重。與此同時,只有 55% 的開發者表示簡歷可以反映出他們的真實技術水平。

15 開發者更看重工作與生活的平衡

招聘經理在招聘描述裡會著重描述職位的技術棧要求、工作內容和福利,但這些不應該成為吸引人才的主要因素。

相反,開發者們最關心的是工作和生活的平衡。開發者們將這點列為他們最期待的一項,而職業成長僅位居第二。其中,美國開發者比其他國家(如亞洲和歐洲)的開發者更看重這一點。

儘管在小公司工作並不是大多數人的願望,但仍然位列前三。對於 25 歲之後的開發者來說,工作和生活的平衡是最重要的一件事情,當然,對於 18 歲至 24 歲的開發者來說,其重要程度會稍低。

加拿大的開發者更看重薪資報酬,而澳大利亞則把公司文化放在首位。

我們發現這裡存在一個矛盾點,就是開發者一方面希望做到工作和生活保持平衡,另一方面又對學習和成長充滿渴望。事實上,因為工具變化無窮,要跟上變化的腳步會讓開發者感到精疲力盡。不過,好奇心和興趣會讓他們沖忙動力。專註於做自己喜歡的事情,可以更好地平衡工作和生活。

16 彈性工作制大受歡迎

我們知道,工作和生活的平衡對於不同的人來說具有不同的意義。於是,我們進一步深入瞭解開發者們真正想要的是什麼。

總的來說,彈性工作時間(安拍在早上 10 點到晚上 8 點之間)是實現工作和生活平衡的一種方式。

開發者希望他們的上司跟關註產出,而不是獃在辦公室座椅上的時間。遠端辦公也是不錯的選項。25 歲以後的開發者非常希望能夠進行遠端辦公,而 25 歲至 44 歲之間的開發者強烈建議在下班後關閉電子郵件。

17 職業成長對於學生來說最為重要

學生在找工作時最關心的是他們將來在職業方面的成長空間,薪資僅拍在第 7 位。工作與生活的平衡對學生來說也很重要,但僅拍在第 2 位。

學生們渴望學習,不斷挖掘自己的潛力,所以把工作與生活的平衡放在了後面。

18 VIM 編輯器大獲全勝

VIM 還是 Emacs?

VIM 打敗了其他編輯器,大獲全勝。VIM 的擁護者說,VIM 是一款非常強大的基於鍵盤命令的編輯器,這也就是為什麼那麼多開發者喜歡 VIM。


19 創始人在 10 歲之前就開始程式設計的比例是其他角色的 3 倍

從 5 至 10 歲就開始程式設計

15% 的創始人在 10 歲之前就開始程式設計,而其他角色比例只有 5%。

出處:HackerRank
譯者:薛命燈
來源:InfoQ

精彩活動

福利 · 閱讀 | 免費申請讀大資料新書 第23期

推薦閱讀

2017年資料視覺化的七大趨勢! 

全球100款大資料工具彙總(前50款) 

論大資料的十大侷限

大資料時代的10個重大變革

大資料七大趨勢 第一個趨勢是物聯網


Q: 關於這些問題,你的答案又是什麼呢?

歡迎留言與大家分享

請把這篇文章分享給你的朋友

轉載 / 投稿請聯絡:hzzy@hzbook.com

更多精彩文章,請在公眾號後臺點選“歷史文章”檢視

贊(0)

分享創造快樂