65%的程式設計師竟都是自學成才?
大多數優秀的程式設計師都是自學成才!
服不服?
很多人在聽到這句話時,或許都會不屑一笑,畢竟這一結論的得出似乎在一定程度上擡高了非科班轉行以及培訓班出來的技術人,同時將科班出來的程式設計師們置於一個較為尷尬的位置。
但是,據最新的資料研究結果顯示這一結論確實有理可依。日前,國外知名的編碼對戰平臺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)學位不應該是學生開發技能的主要衡量標準。相反,企業的技術團隊除了需要開發者在學校良好的表現,還要將個人專案以及擴充套件技能納入評估範圍,更不能“一棒打死"諸多從培訓機構出來的技術人。
全球範圍內,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 課程中,學生更多的是學習建立理論和基礎知識,而不是工作技能。此外,大學課程既沒有行業反饋,也沒有敏捷性,同時它的資源與行業趨勢並沒有保持同步。
因此,想要更好地掌握框架技能以及跟上日新月異的技術潮流,最好在實踐專案中不斷積累成長。
“我自己是一名從事了5年前端的老程式設計師,辭職目前在做講師,今年年初我花了一個月整理了一份最適合2018年學習的web前端乾貨,從最基礎的HTML+CSS+JS到移動端HTML5到各種框架都有整理,送給每一位前端小夥伴,這裡是小白聚集地,歡迎初學和進階中的小夥伴。"
加QQ群:867726593(招募中)