六星云課堂:程序員如何學(xué)習(xí)才能持續(xù)而不倦???

IT行業(yè)是一個變化非常快的行業(yè),它需要我們持續(xù)去學(xué)習(xí)新的知識和技能。但是,工作以后,我們經(jīng)常會發(fā)現(xiàn)自己學(xué)習(xí)的東西很少了,倒不是沒有時間去學(xué)習(xí), 而是學(xué)習(xí)的效率太低了。久而久之,就演變成“一年的工作經(jīng)驗(yàn),重復(fù)用十年”。

眾所周知,現(xiàn)在是一個知識爆炸的時代,知識更新非???。據(jù)測算,一個大學(xué)畢業(yè)生所學(xué)到的知識,在畢業(yè)之后2年內(nèi),有效的不過剩下5%。對于軟件行業(yè)而言,這種形勢更為明顯,我們賴以立足的,不在于我們現(xiàn)在掌握了多少知識,而是我們有多強(qiáng)的學(xué)習(xí)能力。
學(xué)習(xí)人人都會,但不同的人學(xué)習(xí)效果卻千差萬別。一個善于學(xué)習(xí)的人,首先應(yīng)該是一個善于讀書的人,懂得如何高效地學(xué)習(xí),并且擁有良好的心態(tài)。唯有如此,才能成為一個卓有成效的學(xué)習(xí)者,成就卓越的程序人生。
01、為什么要持續(xù)學(xué)習(xí)?
可能很多人會問:為何要持續(xù)學(xué)習(xí),靠經(jīng)驗(yàn)積累不行嗎?
程序員這個職業(yè)不同在:因?yàn)樾袠I(yè)更新得太快,積累的經(jīng)驗(yàn)很快就不適用了。
舉幾個例子:
如果你是Java程序員,且非常擅長Struts + JSP開發(fā),解決了很多Struts框架的問題。但今天,這部分知識已經(jīng)過時,需要重新學(xué)習(xí)。如果仍堅(jiān)持使用之前的技術(shù),會給同事和公司帶來很大的技術(shù)負(fù)擔(dān)。大家回顧一下自己從畢業(yè)到現(xiàn)在有多少技術(shù)都已經(jīng)看不到蹤影了。
軟件的經(jīng)驗(yàn)積累還會體現(xiàn)在一個架構(gòu)設(shè)計上。很多同學(xué)會說經(jīng)驗(yàn)積累得多,架構(gòu)就設(shè)計得好,這在今天來說也未必。大家都在云上啦,云上提供的服務(wù)基本都是類似的,架構(gòu)思路和使用的云上服務(wù)基本一致。
行業(yè)發(fā)展得太快,你必須學(xué)習(xí),純靠經(jīng)驗(yàn)積累行不通,技術(shù)淘汰的速度遠(yuǎn)大于你經(jīng)驗(yàn)積累的速度。

02、如何做到持續(xù)學(xué)習(xí)不倦?。?/p>
1、在工作中學(xué)習(xí)
不要一下子什么都學(xué)。在日常工作中,你要查很多東西,即使在這個領(lǐng)域里工作了十幾年,也要查很多。但是,特別是在你早期的時候,一定要抽出時間來學(xué)習(xí)東西。
初級求職者的工作會希望你花很多時間學(xué)習(xí)東西。如果他們不這樣做,他們就不應(yīng)該雇用你這個級別的人。任何編程工作都涉及到至少在你參與項(xiàng)目的前 2-6 個月學(xué)習(xí)公司的代碼庫,除非他們遵循一個非常傳統(tǒng)的結(jié)構(gòu)。所以利用初級職位的優(yōu)勢,盡可能有效地學(xué)習(xí)你工作相關(guān)的技術(shù)棧。
一定要對你的第一個職位所涉及的技術(shù)進(jìn)行深入的研究,試圖比你正在工作的職位所要求的更深一層的了解。
這不一定要發(fā)生在每一項(xiàng)工作任務(wù)中,但至少應(yīng)該在每一兩次任務(wù)中發(fā)生一次。通常低層比你想象的要簡單,或者說能讓你更容易理解高層。理解低層也讓你有更好的嗅覺,知道什么時候代碼是蓬松的,什么時候是實(shí)質(zhì)的。這可以指導(dǎo)你的調(diào)試,增長你的基本功,加快未來工作的速度。
2、逃離一萬小時定律
一萬小時定律很多人都知道,現(xiàn)在只要提到這個定律,很多人都會理解成只要在某個領(lǐng)域時間超過一萬小時,就可以成為這個領(lǐng)域的專家。這個理論最早來源于《異類》這本書,作者馬爾科姆·格拉德威爾也說了這個只是必要條件,沒有說是充分條件,但很多人忽視了這一點(diǎn)。
很多使用一萬小時定律的人看似勤奮,但其實(shí)是低效率的重復(fù),這就可以解釋了為什么很多十幾年工作經(jīng)驗(yàn)的程序員水平還很低,就是因?yàn)槊刻於荚谥貜?fù)地做簡單的事情。
但我們要正確使用一萬小時定律,我們在這個時間內(nèi)需要一直待在學(xué)習(xí)區(qū),除此之外還有舒適區(qū)和恐慌區(qū),比如每天做很簡單的工作的程序員就是待在舒適區(qū),所以時間再長也沒有進(jìn)步??只艆^(qū)則是要求太高,能力夠不到,而屢屢?guī)泶鞌「?,最終可能導(dǎo)致放棄。
學(xué)習(xí)區(qū)就是需要我們進(jìn)行刻意練習(xí),每次能提高一點(diǎn),螺旋式地上升,首先取得進(jìn)步,然后到了一個瓶頸,被困住了,尋找不同的方法來克服障礙,最后找到了這種方法,然后又穩(wěn)定地提高,直到下一個障礙出現(xiàn)。
鍛煉也是如此,長時間沒運(yùn)動后的第一次,會非常有感覺,但如果相同的節(jié)奏持續(xù)了一段時間,便會進(jìn)入舒適區(qū),需要尋找其他的方式來繼續(xù)加大刺激才會有持續(xù)的效果。
3、利用碎片化時間系統(tǒng)化學(xué)習(xí)
「碎片化」和「系統(tǒng)」看似是兩個矛盾的東西,但在今天這個信息爆炸、快節(jié)奏的時代,我們需要學(xué)會利用碎片化時間來進(jìn)行系統(tǒng)化學(xué)習(xí)。
小編一直認(rèn)為學(xué)習(xí)任何技能需要進(jìn)行系統(tǒng)學(xué)習(xí)才可能更全面地理解,更有大局觀,最好的方式就是書籍、專欄等,但首先我們要建立這個技能的一個知識架構(gòu),可以使用思維導(dǎo)圖。這個知識架構(gòu)就像是一棵樹,有很多的分支和葉子,書籍和專欄學(xué)習(xí)的產(chǎn)出(筆記、示例代碼等),會慢慢填充這些分支和葉子,我們在平時碎片化時間中學(xué)習(xí)到的一些知識點(diǎn)可以納入這個樹的結(jié)構(gòu)中,而不是作為一個孤立的點(diǎn)。
慢慢這個樹會越來越大,這時需要做一些優(yōu)化和調(diào)整。最終樹又會變得清晰和簡潔,而知識你已經(jīng)了然于胸,這就是將書讀厚再讀薄的一個過程。
4、長期保持學(xué)習(xí)節(jié)奏
一旦你有了第一份工作(或前兩份工作),并且建立了自己的基礎(chǔ)知識,那么問題就來了,如何保持所需的學(xué)習(xí)節(jié)奏,以跟上技術(shù)的發(fā)展。而這最終取決于你計劃做什么,以及你的職業(yè)生涯規(guī)劃。
如果軟件是帶你走向下一個事物的墊腳石,那么你就可以多消耗一些動力和時間,把精力集中在市場熱度高的地方,并努力從中獲得 3-5 份工作,盡可能為下一步的工作做好準(zhǔn)備。
如果你想長期留在軟件行業(yè),那么建議你不要追熱門。試著在軟件開發(fā)中找到樂趣。而且,當(dāng)你學(xué)會如何在構(gòu)建和學(xué)習(xí)事物的過程中找到樂趣時,一定要把握好自己的節(jié)奏。
一旦你覺得自己有能力構(gòu)建中小規(guī)模的項(xiàng)目,就不必每周都以 100% 的速度學(xué)習(xí)。對于網(wǎng)站開發(fā)來說,這大概就是你能夠自己編寫博客軟件的時候。你應(yīng)該半定期地學(xué)習(xí)新的東西 真正有幫助的一件事是要有一個以某種方式記錄你所學(xué)到的東西的過程,保持可持續(xù)性。
5、做項(xiàng)目,寫Demo,看源碼
前面說了學(xué)習(xí),但是程序員不寫Demo是不行的。項(xiàng)目中可以考慮嘗試新的技術(shù)。不一定所有的技術(shù)都能用到項(xiàng)目中,有些是啟發(fā)性的或者觸類旁通的,你需要寫Demo,磨磨刀沒有錯的。
讀了很多,看了很多,如果再用代碼輔助一下,就更好了。比如,學(xué)習(xí)ES 6 + React,如果沒有代碼,很難想象要如何掌握這個知識。項(xiàng)目中多嘗試一下你學(xué)到的新知識,不能慣性使用你熟悉的技術(shù),要知道你熟悉的東西很快會被淘汰,被淘汰后再調(diào)整就來不及了。多寫一些demo,多磨磨刀。
看源碼是非常重要的一個技能。至少你code review技能提升,但成本確實(shí)高。但是你如果決定投入,看源碼幫助還是很大的。
總之,學(xué)習(xí)是一件終身的事情,我們需要不斷地探索。
最后,送大家一句喬布斯的話:“求知若饑,虛心若愚”(Stay Hungry,Stay Foolish)。其實(shí)小渡更喜歡它更原生態(tài)的翻譯“保持饑餓,保持愚蠢”。
我們只有認(rèn)識到自己還很饑餓和愚蠢,才會像沒吃飽一樣,由衷地需要學(xué)習(xí)、愛上學(xué)習(xí)、持續(xù)學(xué)習(xí)。
以上就是本次分享的全部內(nèi)容,想學(xué)習(xí)更多編程技巧,歡迎持續(xù)關(guān)注六星云課堂!