IT 行業是一個變化非常快的行業,它需要我們持續去學習新的知識和技能。 但是,工作以後,我們經常會發現自己學習的東西很少了,倒不是沒有時間去學習, 而是學習的效率太低了。久而久之,就演變成『一年的工作經驗,重複用十年』。當然,有些人會說自己經常加班,沒有時間學習,這隻是表象,時間擠擠總是有的。 你想想你為了上王者,浪費了多少時間?為了刷今日頭條,又消磨了多少光陰?
另外,很多人推崇碎片化學習,但是有一些東西碎片化學習效率是很低的,比如數學。

#1 一些學習的壞習慣
通常程式設計新手在學習一個新東西的時候,喜歡買一本權威指南之類的書(大神或者同僚推薦),比如「C++ Primer」和「Javascript 權威指南」。 而這樣一本書,一般頁數在700-1400頁左右,要完整讀完,在不求甚解的基礎之上大概要花費好幾個月甚至大半年時間。 别說是新手,就算是一個C++程式設計老手去讀「Javascript 權威指南」這樣的書也不可能在隻閱讀一遍之後就能了解。 這時,很多人會選擇重複多次閱讀。有人會從頭開始重複閱讀,也有人隻挑不了解的章節來閱讀。
我以前上大學那會兒就是這麼幹的,讀了好多C++的書籍,其實自己編寫的C++代碼并不多,也沒有做過大型的C++項目。 看了好多書,其實都是一知半解,效率很低。工作以後,這種學習方式更加不可取,因為你沒有那麼多時間這麼幹。
很多人偏好紙質書,因為在看書的時候手感不錯,另外,還可以在書上把喜歡的句子和重點的段落用彩色筆标注出來。 這樣做除了給自己造成一種假象「書上的重點我都标出來了,是以我都掌握了」之外,其實并無多大益處。 我現在喜歡在電腦上面看PDF,可以邊看邊寫代碼。
讀書的時候,還有一個誤區,就是大腦被動地跟着作者的思路在走,如果是一本經典的書,你會每每被作者的真知灼見所震驚, 一種「于我心有戚戚焉」的感覺由然而生。如果作者的書寫枯燥乏味,估計看幾頁你就丢到一邊去了。在看書的時候,頭腦中要 有自我意識,要感覺自己在跟作者對話,對于作者的觀點不能一味全盤吸收,可以看一會兒,停下來,問幾個為什麼。
另外,我并不是說劃重點是不好的,隻是劃重點的效率沒有想像中的高。劃重點有點像收集資料和網頁連結,在你收集了一大堆PDF和視訊教程之後, 你會得到一種滿足,但是這并不代表你真正學到了東西,這個是要非常警惕的。
這是新手學程式設計的大忌,不去動手寫,不去跟編譯器和開發環境做鬥争,你永遠不知道軟體開發過程中的操蛋事情。
這個問題最大,也是影響N多人不去學習的理由。解決的辦法隻有一個,馬上去做!一旦你開始去做了,你的大腦就不會排斥了。 你的計劃再完美,你選的書籍再經典,你挑的視訊水準再高,如果你不馬上去看,去學,去動手實踐,那永遠也隻是停留在空想的階段。 成功學習的典範就是成功戰勝拖延症的典範。
這個是什麼意思呢?不是說你真的隻會寫「Hello World」,而是說要跳出自己的舒适區,去嘗試一些自己不了解的領域,去做一些超過自己能力範圍的事情 。
實踐證明,睡眠不足,啥事也幹不成,隻想睡覺。有人會說我晚上不到那個點睡不着,我這裡有一招。 拿着一本 Kindle,挑一本英文書,躺在床上看,半小時保管睡着。雖然說看書的效果不一定佳,但是催眠也是極好的。
遇到問題,不假思索「百度」和「Google」,雖然現在80%的問題都可以找到解決方案,但是這樣做對于自己并無多大益處。 找到解決方案之後,還要花幾分鐘時間探尋問題根源。可以查找背景資料,以便自己下次遇到同類型的問題時可以舉一反三。
做事情不專注,注意力不能集中,這也是學習的大忌。可以利用番茄工作法,給自己一段時間專注于某件事情,這樣可以極大地提高 自己的工作效率。
#2 一些學習的好習慣
與其一遍又一遍地閱讀重複的書籍,編寫同樣的「Hello World」,不如有意識地總結回顧看過的書,學過的知識。 隻需要每晚趟在床上的時候,回想一下今天都學到了什麼?今天自己有進步一點點嗎?
看技術書籍要多寫書中的代碼,在初學階段哪怕對着書本敲也沒有什麼問題。認真完成書中留的習題,在自己沒有盡最大努力的情況下面不要去看答案。 不要怕犯錯,每一次犯錯都是自己進步的機會。不斷地測試自己是最好的學習方法,不管是「刻意練習」還是「10000小時定律」,都要求我們通過不斷地 實踐來鞏固我們的所學,進而讓自己成為大師。
每天把工作中遇到問題的解決方案總結一下,想想為什麼要這麼做,是什麼導緻了這個BUG,導緻BUG的根本原因是什麼。 是自己的邏輯混亂,粗心大意,還是程式架構太複雜?做需求的時候,要盡量避免複制粘貼,不要讓代碼裡面有重複代碼。 Don’t Repeat Yourself! Don’t Repeat Yourself! Don’t Repeat Yourself! 「重要的事情說三遍!」
我是一個非常愛學習的人,但是有時候還是感覺學習不夠高效。經常會由于一些突發情況把原本的學習計劃打亂,導緻學習效果打折扣。 因為學習一個東西最怕三天打漁,如果能夠持續地學習一個東西,我可以把它學習地很好。這時候,我就得結合我自身的情況,選擇一段最佳的 學習時間,在這段學習時間裡我可以不被打擾,保持高度專注。比如每天早上6.30起床看一個小時書。
在遇到一個沒有顯而易見解決方案的問題時,你可能費了好大功夫想出一個方案,但是千萬要記得,該方案不一定是最優的, 而且很大可能還存在一個更佳的方法。而這個方法隻需要你退後一步,換個思路,或者與同僚讨論一下就可以得出。 這也是我為什麼非常喜歡别人 Review 我的代碼的原因,因為别人能看到我代碼中存在的不足。另外,有些時候,對現有的方案做一些 「微創新」也能使原本普通的方案變得不普通。
另外,習慣了面向對象,何不嘗嘗函數式程式設計?每年學習一門新的不同範式的程式設計語言,可以極大地開拓你的眼界,給你一些不一樣的解題思路。
多參加體育鍛煉,多去戶外走走,運動能夠增強人的記憶力,并且有時候還能産生靈感。 如果身體不好,比如頸椎不好,下了班你就隻想葛優躺了,因為你的本能告訴你,我不能再寫代碼了,會挂的。。。 想要成為大神,身體好是前提條件。有人30歲成為大神,我資質不好,我35歲成為大神總可以吧。 切莫在30歲的時候就把身體弄跨了,然後35歲轉行了,永遠失去了成長為大神的機會。
多寫部落格,多分享自己的所學所思,這些對于學習者自身也是非常有益的。通過用别人能夠了解的語言來解釋你學到的東西, 本身就要求你對該知識充分了解。另外,很多人經常感歎「跟你讨論一下,我馬上變得有思路了」,這其實就是交流的作用。
很多知識沒有足夠的專注力和足夠多的時間是很難學好的,保持學習的專注尤其重要。 因為人的大腦在專注模式下面,神經細胞更活躍,你學的東西更容易從短期記憶變成中長期記憶。 而且在高度專注下面,你的解決問題的能力也會提高,原本看起來複雜的東西,在專注面前說不定就不是事了。
發現并找到自己的不足相對來說是比較容易的,但是要補齊短闆就非常不易了。 因為人總是有畏難思想的,拖延症是怎麼來的,就是你的大腦出于本能去做一些讓自己分泌更多多巴胺的事情。 如果自己英語不好,就要下決心把英語攻克。如果自己數學不行,就要下死力氣掌握數學。 補齊短闆就像渡劫,越早渡劫,越快升仙。
Coursera 的這門MOOC 《Learning How to Learn》 強烈推薦給每一伴熱愛學習的小夥伴,也歡迎大家給我留言,分享你的學習感悟。