1. 程式人生 > >65%的程序員竟都是自學成才?

65%的程序員竟都是自學成才?

正在 面試 css 發展 本科 hacker 計算機 推薦 小夥伴

大多數優秀的程序員都是自學成才!

服不服?

很多人在聽到這句話時,或許都會不屑一笑,畢竟這一結論的得出似乎在一定程度上擡高了非科班轉行以及培訓班出來的技術人,同時將科班出來的程序員們置於一個較為尷尬的位置。

但是,據最新的數據研究結果顯示這一結論確實有理可依。日前,國外知名的編碼對戰平臺HackerRank深入研究了全球 10351 名學生開發者的學習方式以及技能狀況,並發布了《2018 年Student Developer Report》。令人驚訝的是,報告顯示,當前有 76% 的學生正在攻讀計算機科學學位,但有 65% 的學生開發者是自學成才。那麽接下來,我們將用數據說話。

學位不足以支撐開發者的技術能力

無論是在國內還是在國外,計算機專業的學生都會在大學期間學習 Java、C、C++、數據結構等基礎的軟件開發技能,從而向專業的開發者過渡。但據調查報告顯示,在超過一萬名的開發者中,有 37.7% 的人表示是通過學校和個人相結合的方式來學習編碼,27.4% 的開發者表示是完全通過自學的方式學會了編程,相比之下,僅有 31.9% 的人僅通過學校教學的途徑學習編程。

技術分享圖片

由此可見,自學已成一種學習的趨勢。但是此前,我們也曾報道了一些企業的 HR 對於半路出家自學以及培訓機構出來的開發者常帶有有色的眼鏡來區別看待,

其表示

從面試經驗來看,我廠對培訓班出來的基本不會招,基礎太差,幹活也是浮於表面,知其然而不知其所以然。 另外除非你特別特別牛,否則一個正規的本科文憑還是需要的,其余的直接簡歷就被刷掉了。

這一席話不禁讓很多信心滿滿的開發者最終因一紙文憑的門檻而寒了心。然事實上,早在 2013 年時,Twitter 的創始人 Jack Dorsey 就在公開場合表示,他相信最好的程序員大多數都是自學成才。另外,據微博大 V 博主 @斌叔兒童編程爆料:

我以前微軟團隊,真正計算機專業畢業生的只有 30%,都是別的專業轉的。

技術分享圖片

所以說,無論是科班還是非科班的開發者,自主學習的態度均是抓住前沿技術潮流的必備技能,也是為成功鋪墊的一層基石。不過從側面來看,自學知識的流行也意味著兩件事:

第一,計算機科學課程落後於技術發展的步伐。對於當今行業不斷更新叠代的技能,譬如每隔六個月就更新的 Java、崛起的 Python、層出不窮的各種最新的框架......學生必須依靠自學來填充技術空白。

其次,自我學習能力已經在開發者基因中根深蒂固。開發者對學習有著永不滿足的渴望。平均而言,當高級工程師正在學習 4 種編程語言時,不少開發者在學生時代就計劃著要學習 6 門語言。此外,根據報告顯示,亞太地區的學生更有雄心壯誌,其計劃學習 7 種編程語言!

就以上而言,所謂的計算機科學(CS)學位不應該是學生開發技能的主要衡量標準。相反,企業的技術團隊除了需要開發者在學校良好的表現,還要將個人項目以及擴展技能納入評估範圍,更不能“一棒打死"諸多從培訓機構出來的技術人。

自己是一個五年的全棧工程師

這裏推薦一下我的前端學習交流群:731771211,裏面都是學習前端的,如果你想制作酷炫的網頁,想學習編程。從最基礎的HTML+CSS+JS【炫酷特效,遊戲,插件封裝,設計模式】到移動端HTML5的項目實戰的學習資料都有整理,送給每一位前端小夥伴,有想學習web前端的,或是轉行,或是大學生,還有工作中想提升自己能力的,正在學習的小夥伴歡迎加入。

全球範圍內,JavaScript 開發者供不應求

在技能方面,學生開發者如果學習 JavaScript 編程語言和以 JavaScript 為中心的框架將會有較好的就業前景。因為據調查報告顯示,雇主對 JavaScript 的需求量最大。而且隨著靜態 Web 頁面逐漸過渡到漸進式 Web 應用程序,JavaScript 在業界日益占據主導地位。除此之外,當前 95% 的 Web 應用程序都是基於 JavaScript 構建的,所以它的需求量會如此之大也就很容易理解。

技術分享圖片

不過從數據上來看,雖然有 48% 的雇主表示他們需要會 JavaScript 技能的開發者,但全球只有 42% 的學生開發者表示他們熟悉這種語言。這就產生了供不應求的局面。當調查人員在深入挖掘這一現狀時,發現該語言在使用學習方面存在較強的區域差異。其中,印度和加拿大的差距特別大,美國和英國擁有較多的 JavaScript 開發者。

而這種技能差距可以追溯到大學的計算機科學課程。總的來說,JavaScript 並未在標準計算機科學課程中講授。事實上,在美國報道的十大 CS 項目中,將 JavaScript 明確納入到核心課程中的高校幾乎為零,當然這在中國諸多高校中也不例外,因此想要掌握該門編程語言的學生必須依靠實踐、個人項目或指導來學習。這也就是為什麽更有可能自學代碼的學生(包括美國和英國學生)更好地掌握 JavaScript。

不過,現實來看,計算機科學課程中也不太可能很快加入 JavaScript 教學。因為在大學的課程中,更多的是註重編碼理論(與應用程序相比),而不是像 JavaScript 這類因行業驅動的技術。此外,對於想要將 JavaScript 融入日常的教學,它的可行性也具有很大的挑戰。據調查顯示,有一半的 JavaScript 開發者認為 JavaScript 的生態系統變化太快,所以即使是那些渴望將它加入教學材料的人也很難保持他們的課程能跟上時代。

在學生開發者心中,老牌 C 仍占據首位,Ruby、Python、JavaScript 為潛力股

盡管 JavaScript 的開發者在供與求之間存在差距,但這種現狀無論是對開發者還是雇主來說,都是一個好消息,畢竟可以更好地激發相關技術人才的誕生。不過受大學教育的環境影響,老牌 C、C++、Java 語言對學生開發者的影響很大,但是據統計發現,Ruby、Python、JavaScript 將成為他們接下來想要學習的首要三大技能。

技術分享圖片

掌握前端框架技能的程序員嚴重欠缺

根據調查報告顯示,全球範圍內,掌握前端主流三大框架 AngularJS、React、Node.js 和輕量級的 Java 開發框架 Spring 的人才嚴重不足,甚至達不到雇主需求量的一半。

技術分享圖片

導致這樣的原因有很多,一方面,在大多數 CS 課程中,學生更多的是學習建立理論和基礎知識,而不是工作技能。此外,大學課程既沒有行業反饋,也沒有敏捷性,同時它的資源與行業趨勢並沒有保持同步。

因此,想要更好地掌握框架技能以及跟上日新月異的技術潮流,最好在實踐項目中不斷積累成長。

65%的程序員竟都是自學成才?