StackOverflow 2017開發者調查:高效學習新技術的10種方法
對于一個軟件工程師來說,***的挑戰其實就是不斷學習。不用懷疑,因為要想成為一個優秀的開發者,你需要經常學習新東西。我相信,每一個開發人員在C,Java,Linux或者SQL等方面都有一些基礎足夠你日常工作使用,但是,這些技術本身也一直在發生著變化。比如,在2017年,Java 9問世,雖然有很多人還在學習Java 8應該怎么用。還有,2017年發布了Spring 5.0,Spring Security 5.0 和 Spring Boot 2.0 等,相信這些你都已經列入了2018的學習計劃。
簡而言之,程序員應該能夠快速學習。這種快速學習能力也是面試官在挑選候選人時所要尋找的。
如果你不是一個能夠快速學習的人,那么你真的應該思考一下,編程這個行業到時適不適合你。但是學習新技術的秘訣是什么呢?程序員如何每年學習新的框架、庫和新技術呢? StackOverFlow’s Developer Survey of 2017 也許可以給你一些答案。
下面是我列出的幾條關于程序員如何快速學習新知識的方法,你可以用他們學習機器學習、大數據、移動開發。也可以用來學習一種新的編程語言,比如Rust, Groovy, 或者 Kotlin。也可用來學習一個新的框架,比如Spring Security 5, Angular JS 或者 React JS 。或者你只想學習一個簡單的類庫,比如Jackson。
一、參加在線課程
根據StackOverFlow 2017開發者調查顯示,有64.5%的人通過在線課程學習新技術。本人其實也參與過一些在線課程,免費的付費的都有,效果還可以。國內也有類似的在線課程的網站,為了避免廣告嫌疑,我就不在這里列舉了。
既然這一項在所有開發者投票中排名***,你不妨試一試,萬一適合你呢。在線課程***的好處就是有人給講解,***的缺點并不是所有的東西都有對應的課程,還是需要結合其他的學習方法。
二、看書
這是另一種自己學習新技術或編程語言的***方法。事實上,這是我所遵循的最古老的也是及其有效的方法。我比較喜歡通過書籍的方式學習新知識,這樣可以有足夠的時間來思考。在我的博客中也有一個單獨的頁面記錄著我在看的以及看過的書籍。
當我不想閱讀的時候我也會選擇聽書。另外,聽書軟件默認速度非常慢,很容易讓人睡著。我一般以1.5倍或2.0倍的速度聽。
最近這一年來,國內的很多聽書軟件也漸漸的火起來了。我用過很多,一般會使用這些軟件聽一些文學類的或者雜談類的內容。也是上周開始用軟件聽技術類內容,感受還不錯。聽書的好處就是不需要自己總結,講書的人一般會給整理好,念給我們聽。壞處就是沒有太多的思考過程。
如果你正在尋找在2018應該讀什么書,我建議從《Effective Java 第三版》開始,1.7日剛剛出版,目前國內好像還沒有中文版。
三、線下課程
說實話,沒有任何東西能比得上課堂上的學習,甚至虛擬課堂或在線培訓也不行。為什么?因為當你參加一個真正的課程時,你遇到了真正的人,你進入了有利于學習的環境。你和真實的人討論事情和問題。這意味著你正在做一個積極的學習,你的所有感官,例如眼睛、耳朵、嘴巴、身體和頭腦都是活躍的。
這有助于快速學習,你也可以保持較長時間的學習知識。總之,如果你可以的話,你應該參加一個學院或培訓學院,利用業余時間或晚上學習一項新技術。
四、參與開源項目
這是有經驗的程序員保持自我進步的***方法之一。例如,如果您需要學習像Apache Spark或Hadoop這樣的大數據框架,那么您也可以作為開源貢獻者加入這個項目。
你不僅可以根據你的經驗來幫助開源社區,而且也是學習這種新技術的很好的方式。通過和其他幾個優秀的程序員交談也是一個很好增加你的經驗的方式。
我強烈推薦中級和有經驗的程序員在2018加入開源項目。你也可以用同樣的方法在2018學習Rust, Groovy 或者 Kotlin等語言。
五、編碼訓練營
這聽起來像是一個新鮮事物,但在線課程和編碼訓練營已經比較普遍了。這更加適合沒有經驗的人。有很多人沒有編程經驗,現在可以更容易地過渡到職業生涯,成為一個開發者。
許多初創公司,事實上大的技術公司如谷歌和亞馬遜也愿意接受訓練營出來的學生。訓練營的學生其實比應屆高校畢業生更具備必要的技術知識。他們對數據結構以及算法等了解的更深入。對于開發工具,如IntelliJ、版本控制工具如Git,svn等掌握的更好。
總之,如果你想學習新的東西,或者改變你的職業生涯而成為一個程序員,編碼訓練營是***的啟動方式。
六、參與在線編碼競賽
現在編碼競賽也比較流程,他也存在一些好處。通過他,你走出了你的舒適區,加速了你的學習。
舉個例子,如果你想在2018年學習Python,那么不妨嘗試使用Python語言參加有些編碼競賽。你不僅能快速學習所有的基本概念,還能提高你的編碼意識,并獲得一個非常你需要的真實體驗。
七、參加線下會議
是的,參加會議的幫助很大,這就是為什么我鼓勵java開發者加入當地的java社群。這些會議是你發現你附近的優秀的開發者的很好的地方。
這不僅為你創造了一個好的人際關系,而且你從與他們交談中學到了很多東西。它們還為虛擬的編程世界添加了一個非常需要的真實元素。
如果你不是某個java編程社區的會員,我強烈建議你2018參加一個。
關于會議,我覺得有兩種方式,***種是線下的,如QCon等。第二種也可以是在線的,如微信群等。只要是大家志同道合,可以交流,就是個好的方式。
八、參與黑客馬拉松
這種形式的比賽是另一個快速一個新的框架或庫的好方法。在黑客馬拉松中,你需要在24到48小時內搞出些有用的東西。
有時候看起來很艱難,但是你一直在前進。黑客馬拉松的好處,在于你可以提前為他們準備的,這就是你學習的開始。例如,如果你想使用機器學習算法建立一個原型,如圖像處理程序,那么你需要在參加馬拉松之前就了解機器學習。單純的參與,可以給你一個理由去學習和掌握新的技術。并且可以在馬拉松這個戰場去實踐他們。
九、創建博客
是的,一個博客也可以幫助你學習新的編程語言或框架。因為在寫博客之前,你要開始你的研究,而這正是你學習的起點。
例如,我之前沒有任何JUnit 5的知識,,但是當我要寫關于他的文章的時候,我必須首先了解JUnit 5,這樣我就會做一些研究。當我向其他人解釋時,我往往學得更好,這就是為什么當我寫博客文章時,我的大部分概念都會變得清晰,知識也會被填補。它還幫助我把知識保持的時間更長。
十、其他
每一個程序員都是不同的,對我有用的可能對你不起作用。有些程序員發現從書中學習很容易,有些人覺得網上課程更好。有些人喜歡創建真實的項目并在途中學習。
簡言之,使用適合你的方法。說到學習,沒有硬性規定。選一個你喜歡的。如果你在聽音樂的時候學習得更好,那么你可以在學習的時候聽你最喜歡的歌曲。
10種方法學習一項新技術,編程語言,框架或庫
附錄:StackOverflow 2017開發者調查