全球開發(fā)者大調查:編程始于少年,Python 成最愛
近日,編程競賽網站 HackerRank 基于 39441 位開發(fā)者的調研數據,總結了 2018 年開發(fā)者在教育、技能和招聘實踐中的各類流行趨勢。HackerRank 在算法、數學、SQL、函數式編程、AI 等眾多不同領域為開發(fā)者們提供了相應的編碼謎題。以下為報告全文。
Hello World
無論你的工作是什么,對每個人來說,學習如何編碼都是很重要的一件事。編碼不僅有助于豐富你的計算思維,還能提高決策性,讓你在招聘中脫穎而出。
我們在 2012 年底推出了 HackerRank,目標是讓每個開發(fā)人員都能找到合適的工作。近年來,我們社區(qū)的用戶增長速度非常驚人——截止去年,社區(qū)已擁有 320 萬名開發(fā)人員,是去年所有被雇傭開發(fā)人員總數的 2%。
今年,我們首次對 HackerRank 社區(qū)進行了調查,以獲得開發(fā)者技能的相關信息,比如他們第一次推代碼的時間、他們如何學習編碼、最喜歡的語言和框架、他們想要什么樣的工作、招聘經理希望的候選人是什么類型的等等。有 39441 位開發(fā)者參與了我們的調查,希望通過本文能讓你對 2018 年開發(fā)人員的技能信息有更加深入的了解。
一、學習與教育
編碼學習早于駕駛?四分之一的開發(fā)者在 16 歲前就開始編碼了
編碼不分早晚。在所有專業(yè)級別的 39000 名開發(fā)人員中,有超過四分之一的開發(fā)人員在他們 16 歲之前就寫了第一個代碼。
與此同時,在 26 歲以后才開始編寫代碼的開發(fā)者中,有 36% 是現在的高級甚至更高級別的開發(fā)人員,他們的職業(yè)發(fā)展會很快。
70 年代開發(fā)者:一場個人電腦革命引發(fā)的壯志雄心
與此后的幾代人不同,如果七十年代的人想要看到創(chuàng)新的技術,他們就必須自己去建造——處于那個年代下的他們別無選擇,因為沒有充分的資源來教會他們如何創(chuàng)建軟件。在 45 歲至 54 歲之間的所有開發(fā)者(47%)中,幾乎一半在 16 歲之前開始編碼。同時,今天 18 到 24 歲的開發(fā)者最不可能在 16 歲以前開始編碼(僅占 20%)。
45 到 54 歲之間的開發(fā)者是第一批掌握個人電腦的一代,如Acorn Archimedes、TRS-80、Commodore 64 和 Apple II。由于無法獲得正規(guī)教育,“個人電腦革命”中的年輕人更有動力去學習編碼。
英國衛(wèi)冕最年輕的編碼人員排行榜之首!中國未進前十
在參與調查的 17 個國家中,至少有 100 名受訪者表示,英國人開始編碼的人群最年輕,編碼年齡在 5 到 10 歲之間,這些開發(fā)者大多數是今天的三十多和四十多歲。
當這些開發(fā)者還在學校的時候,位于劍橋的個人電腦 Acorn Archimedes 就出現了。通過與 Tesco 的合作,英國的學校得到了相當數量的電腦,更多的孩子可以使用電腦。
今天,這種前瞻性的教育文化在英國仍然存在——它成為第一個通要求 5 歲以下的孩子參加編程課程來實現課程現代化的國家。政策制定者也曾多次指出,盡早接觸編碼是打造軟件職業(yè)門戶、了解影響日常生活的計算思維和軟件原理的重要一步。
毋庸置疑,開發(fā)者都有渴望學習的心
似乎每年都會有一個新的標志性編程語言、框架或庫在整個開發(fā)者社區(qū)泛濫。自我教育是所有年齡段開發(fā)者的常態(tài),盡管 67% 的開發(fā)人員擁有 CS 學位,但大約 74% 的人表示至少有一部分是自學的。
開發(fā)者平均知道 4 種語言,但是他們還想學習更多。對學習的渴望程度也因人而異:18 至 24 歲的年輕開發(fā)者計劃學習 6 種語言,而 35 歲以上的人只打算學習 3 種語言。
自學作為成功開發(fā)者的重要組成部分,學習工具是成長的一種手段。但是工具總是會改變的,所以對程序的好奇心和真正的興趣,應該推動學習新工具和適應技術不斷發(fā)展的前景。
我們不一樣:新一代開發(fā)者最愛 YouTube
堆棧溢出是自學者的頭號工具,這在各個年齡段都是如此。但是,YouTube 和書籍之間存在著明顯的年齡段差距,成為編碼學習中第二個最受歡迎的資源。
學習的本質正在改變,年輕一代正在涌向 YouTube,而老一代仍更喜歡通過書籍來學習新技能。更具體地說,當學習一個新工具時,千禧一代會登錄到 YouTube(65%),而 X 一代則手拿起了一本書(85%)。
當然,兩者都有其獨特的優(yōu)勢。YouTube 提供了一個系統(tǒng)化的教學模式,可以模仿大學中結構化的課程,穩(wěn)定進步。書籍的好處是適應性,雖然 YouTube 可以引領軟件進步的潮流,但教科書卻是 CS 的永恒基礎。任何人都可以在不到一天的時間內制作出新的 YouTube 教程,盡管它不會提供教科書多年來深思熟慮的經驗教訓。
但無論哪種方式,明確的一點是:我們正處在編碼教育發(fā)展的最前沿。
二、開發(fā)者技能需求
企業(yè)缺什么,我們學什么:五大需求度最高的語言
即使不斷地有新語言出現,開發(fā)人員掌握核心的傳統(tǒng)語言也是非常重要的。總的來說,企業(yè)需求度最高的語言包括有:JavaScript、Java、Python、C ++ 和 C 這五個。
對比企業(yè)最需要的語言和開發(fā)者最常用的語言時,這五個語言幾乎沒有區(qū)別。但在細分領域中還是略有差異的, 例如:Java 已經在金融服務領域流行了多年;C 由于其性能以及跨多個平臺的編譯器可用性而主導硬件領域;而 C# 在政府機構中更為普遍。
開發(fā)者和企業(yè)間供需差別最大的是 JavaScript 框架
JavaScript 框架是最受歡迎的,它是唯一能夠構建前端、后端、移動和瀏覽器擴展的多功能語言。因此,JavaScript 在網絡中有著舉足輕重的地位。所以大多數情況下,企業(yè)希望招聘的是了解 AngularJS、Node.js 和 React 的開發(fā)人員。
從圖中可以看出,這三個框架在開發(fā)者和企業(yè)間存在著較大的差距,其中 React 框架的差距最大。換句話說,開發(fā)人員有很大的機會將 React 學習提升成為當今企業(yè)所需要的一種可交易的技能。
實戰(zhàn)能力 No.1,企業(yè)更偏愛作戰(zhàn)經驗豐富的開發(fā)者
解決問題的能力幾乎是所有企業(yè)一致要求的最重要的資格......不僅僅是編程語言的熟練程度、調試和系統(tǒng)設計能力,演示計算思維或分解大型復雜問題的能力也是同等重要的。
當然,小公司最關心的與大公司關心的東西之間還是有一些細微的差別。例如,較小的公司比大中型公司更需要熟悉框架使用的能力,因為擁有正確的框架知識對于初創(chuàng)公司來說更為重要,他們需要快速啟動代碼,框架可以幫助開發(fā)人員更快地推送代碼。
華麗的簡歷?不,我們更關注你曾經做過什么
有一種觀點認為,企業(yè)更愿意招聘獲得名牌大學 CS 學位的人,但事實證明,他們實際上更關心的是你所做的——而不是你曾經上學的地方。絕大多數的招聘經理也表示,他們更關心簡歷中的技能證明,如以前的工作、多年的項目經驗和 GitHub 等等。無論公司規(guī)模如何,10 個招聘經理中有 9 個都認為,以前的工作和多年的經驗這兩個技能指標是最受歡迎的資格證明。
一般來說,簡歷(學位、學歷、技能認可或證書聲望)的資格在企業(yè)關注度中排名最低,因為這些因素并不能代表開發(fā)者的實際能力。從簡歷中可以輕松篩選出的唯一頂級資質是“多年的經驗”,它可以作為一種替代方法,即基于簡歷的信號來證明技能。
好好打理你的 GitHub,企業(yè)會認真偷看的
通過 GitHub 和項目經驗能更好地補充簡歷和評估技能。當我們通過角色篩選數據時,可以發(fā)現那些處于 C 級職位的人,包括創(chuàng)始人、首席技術官和副總裁,他們都認為 GitHub 的項目實踐比多年的經驗更具價值。對這些人來說,學位的威望也十分重要。
這可能是由于開發(fā)者遇到高管的時候,他們已經到了招聘過程中的最終階段,當開發(fā)人員與 C 級人員會面時,有更多時間根據項目、以前的工作和投資組合來評估已驗證的技能。
三、開發(fā)工具
唯我不敗:開發(fā)者就愛追隨科技巨頭所推送的語言
上表中,Kotlin、Rust、Scala 和 Swift 排名最高——個人開發(fā)者樂于追隨硅谷科技巨頭的流行語言,這是一個很明顯的趨勢。
谷歌的 Go 提供了高并發(fā)性、快速編譯、當然還有其創(chuàng)建者的廣泛支持,此外還推動了 Kotlin 成為開發(fā) Android 應用的第一語言。
此外,Twitter 還將可擴展 Scala 作為一個更有效和更具成本效益的替代方案。蘋果從 Objective-C 轉換到 Swift 時,開發(fā)人員也必須隨之切換。隨著 iOS 開發(fā)變得越來越流暢,開發(fā)者也在追逐著這些流行趨勢。
Python 最佳!全年齡開發(fā)者最喜愛的語言
根據統(tǒng)計,JavaScript 可能是企業(yè)最需求的語言,但是 Python贏得了所有年齡段開發(fā)者的心,Python 也是開發(fā)者最想學習的流行語言。
上面的語言偏好圖代表了喜歡某一語言的開發(fā)者所占的百分比,Python 以其簡單性、可讀性和豐富的資源庫而聞名,這也是計算機科學入門課程的一部分。
但有一個趨勢是,年輕的開發(fā)者比老的開發(fā)者更喜歡新的語言(如 Go、Kotlin 和 Scala),其中關于 Go 的分歧最大:18 - 24 歲的開發(fā)者并不關心,但 45 - 54 歲的人認為這是他們最喜歡的語言之一,這在 JavaScript 中則正是相反的——年輕的開發(fā)者對知識有著天生的渴望,他們更有可能全面地學習語言,即使是一些他們并不喜歡的語言,而老的開發(fā)者則會根據自己的經驗,選擇那些經得起時間考驗的語言。
Node.js 框架贏得開發(fā)者芳心
上圖顯示,Node.js 是開發(fā)人員最喜愛的框架。作為后端 JavaScript 的唯一方法,Node.js 在所有年齡段都受到青睞。至于前端框架,我們都知道 AngularJS 和 React 是流行的,這種偏好在年輕一代開發(fā)者中最為常見,45 - 54 歲的開發(fā)者則將它們排在了較低的位置。
四、人才吸引力
如何科學地評估開發(fā)者技能?企業(yè)表示很頭疼
根據 7000 多個企業(yè)的資料顯示,簡歷仍是目前評估開發(fā)者最常用的方式。調查發(fā)現,81% 的招聘經理使用簡歷作為申請人篩選過程的第一步,但是大多數招聘經理都認為如何正確評估技能是招聘時的最大挑戰(zhàn),而且只有 55% 的開發(fā)者認為簡歷能夠很好地反映自己的能力。
目前的企業(yè)招聘正在尋找更合適的工具來評估應聘者技能,用簡歷進行篩選是招聘的障礙,因為他們最關心的能力并不能從簡歷中篩選出來。
愛工作、愛自由:開發(fā)者尋求工作與生活的平衡
網上的很多技術職位描述,通常都會重點介紹技術堆棧、工作內容以及津貼誘惑等等。但是招聘經理表示,應聘者更為關注的不是這些。相反,開發(fā)者首先關注的就是工作與生活的平衡,專業(yè)成長與學習則排在第二位。更具體地說,美國人比亞洲和歐洲等其他地區(qū)的開發(fā)者更渴望工作與生活的平衡。
對于 25 歲以上的開發(fā)者來說,兩者的平衡是最重要的。在某些方面,我們發(fā)現了一個小小的矛盾:開發(fā)者想要工作與生活的平衡,但他們也渴望學習和成長。這也就導致了開發(fā)人員有時會感到不知所措甚至茫茫然,專注于做自己喜歡的事情可以幫助實現更好的工作與生活平衡。
靈活的工作時間表需求最迫切
工作與生活的平衡對于不同的人來說意味著很多東西,其平衡可以通過靈活的時間來支持——上午 10 點到下午 8 點的日程安排是最常見的。
開發(fā)者希望輸出更有價值的內容,遠程辦公的選擇也很有幫助。對于 25 歲以上的開發(fā)者來說,遠程工作的愿望特別強烈,而 25 - 44 歲之間的人們更愿意選擇工作數小時后關閉電子郵件這一方式。
學生開發(fā)者:我們更關心個人成長,薪酬什么的先放一放
職業(yè)成長率是學生在工作中最關注的的一點,在學生群體中,薪酬的排名甚至降到了第七。學生們渴望學習并發(fā)揮他們的潛力,因此在工作與生活的平衡中,會優(yōu)先考慮他們職業(yè)生涯規(guī)劃和成長。
五、報告的其他內容
VIM 文本編輯器最受開發(fā)者歡迎
VIM 擊敗了所有其他的編輯器,其強大的鍵盤命令是它被各國開發(fā)者所喜愛的重要原因。
創(chuàng)始人在 10 之前編碼的可能性是普通開發(fā)者的 3 倍
15% 的創(chuàng)始人在 11 歲之前開始編碼,而其他的開發(fā)者在 11 歲之前開始編碼的概率為 5%,達 3 倍之高。