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