职场程序员如何高效自学
程序員是個蠻累的職業,除了有996的工作時長,還需要持續不斷的學!學!學!生怕稍微松懈,就趕不上大部隊了。人的思維能力,理解能力各異,學習效率也各有不同。智商高,理解能力強的,一點就通,稍差些的需要再理解理解,再差些的可能想個幾天也沒想明白。學習能力強的同學,日子過得輕松一些, 學習能力差的也不用太擔心,俗話說: 勤能補拙! 只是需要付出更多一點的時間。 如果學習的方法比較好,也是可以節省不少時間的。對于計算機,我基本是自學,大學基本是自學過來的,工作后,更是沒有老師會教你,自學已經成了我的本能。這篇,我說說工作后自學的一些經驗和感悟,供大家參考參考。
一 端正學習的態度
工作后的學習跟學校學習最大的不同,就是不用考試(那種為了應對職稱考試進行的學習除外)。明白這點,學習效果會有很大的不同。背定義概念是沒有意義的,沒人會考你,你不能準確的說出定義也沒有關系,因為沒有人考你。 最最關鍵是你理解,真正的理解,透徹的理解。不用為了面子強裝理解了什么,一時不理解沒有關系,你有大把的時間可以慢慢的琢磨和吃透它。對于一些短時間內無法理解,或花了幾天也還是沒搞明白的,可以先收藏起來,待過一段時間后再看,你會有不一樣的收獲。我前段時間看分布式 paxos 一致性協議這塊,也是看了幾次都沒看明白。后面直接就先放過了,半年后,再來重新看,感覺理解又精進了一步。 ?
二 選擇合適的學習內容
這個跟學習效率有很大的關系。以前的時候,我跟我的同事討論過一次,工作外的時間如何學習。 他告訴我,他學的東西一般會跟目前手頭上的工作同步。 比如近期剛接了一個分布式系統緩存的項目,他的學習內容就會圍繞分布式系統緩存相關知識進行學習。先學習工作最需要的部分,學完就可以用起來。如果還有時間就往周邊延展,比如會進一步去看memcached, redis 是怎么做的,怎么設計的,有空還可以去翻翻人家的源代碼什么的。他這個效果事實證明很好,對工作也有很好的促進作用。這個對當時的我比較有啟發,因為我一直以自我為核心,業余時間都只學自己喜歡的,沒有跟工作更緊密的結合起來,導致自己有段時間特別累: 又要學習工作中的新東西,又要學自己感興趣的。時間上分配不過來,搞到精神狀態也不好。 有的同學對某種東西可能有執念,比如我對linux 內核就是有執念的,我一直想去參與linux 內核的開發,花了很多的業余時間去看linux 內核相關的實現機制,但由于跟工作不直接相關,同時還要花時間去學工作相關的知識,就搞到很累,后面我自己做了調整,感覺就好了很多。 這里多說點,對于有這種執念的同學,我覺得要想清楚。 比如從事前端開發,但內心其實又想做游戲。最好做出明確的選擇,如果真的喜歡游戲,果斷放棄前端,去游戲公司入職。
三 學習時間的選擇
程序員的工作時間都比較長,工作時間里,除了寫代碼,應該還有一部分時間是做方案設計和調研的。 如果采取了第二點的建議,那做方案調研時間也變成了你的學習時間,一箭雙雕的事情。除了這種時間,剩下的只有下班后和上班前的時間了。有人喜歡早上上班前學一點,有人喜歡下班后再學一點。 我比較懶,不喜歡早起,所以都是下班后再學的。有時候是公司學完再回家。 一來,你也懂得,可以樹立好好學習,天天向上的好形象。 二來,我這個人比較容易興奮,睡前想太多事情,容易睡不著,所以學完后,再回去,中間有個通勤的時間再加上回去后洗涮之類的時間,可以讓腦袋平靜下來。除了整塊的學習時間,如果通勤時間比較長的,也可以考慮把通勤時間利用起來。 我做過一些嘗試,用手機在地鐵或公交看書,看文章什么的,后來發現效果不太好。公交車上看手機,還容易頭暈。 但我發現用來做算法題特別好,題目很快就看完了,剩下的就是想。無論你在車上是什么姿勢,幾乎都不會影響你自己思考。待思路想清楚后,回到電腦前,再把它實現成代碼,我感覺效果不錯。 這段時間不做題,就用來想文章的內容:)
四 控制自己的學習狀態
我很注重學習的狀態。 如果當天狀態不好或者感冒生病了,我就不學了。我覺得自己不差這一來兩天的時間,狀態不好的時候,強迫自己學習,容易讓自己對學習這件事情產生厭惡感。這種厭惡感一旦產生,你就要停下來,進行調整了,避免不斷惡化,陷入惡性循環,導致你徹底放棄學習。所以要善待自己的學習激情和學習的狀態,你不是在高考,不需要沖刺。 狀態不好的時候,去打打游戲,刷刷劇也好,犒勞,犒勞自己。 當然不要一直在犒勞。就我自己來說,我發現自己的學習狀態是有周期的,好像每個月就有那么幾天不太想學 ?:) 。 而且學習狀態會有起伏,有時起伏還比較大。 一開始,我很糾結,特別是狀態不好的時候,覺得自己浪費了時間,又沒學到東西, 后來就慢慢接受自己的學習周期了,也開始接受一個事實: 你沒辦法一直維持最好的學習狀態。 如果你最好的學習狀態是100%, ?那我大部分時間只有80%, 70% , 有時甚至只有50%。 當我接受這個事實后,反而釋然了,不強求,狀態好的時候學多點,狀態不好的時候,學少點。事實證明,我跑的依然快過別人 :)。 因為更多的人是在三天曬網兩天打漁。
五 ?學習輸出
這個點,大部分的同學不重視。 我以前也不重視,后面才覺得后悔。 學習輸出,除了我們常說的技術博客,技術文章這類的,在實際項目中,將所學的變成代碼或設計方案,也是學習輸出了。不過這種輸出是被動的學習輸出,你不太好控制,如果項目剛好用上,那就是理論跟實踐結合了,但并非所有的都能用上, 這個時候主動輸出是比較好的。 寫技術博客這個事情,難就難在堅持,寫一兩篇還挺容易的,但讓你幾年的寫下來,還真不容易。但技術影響力,有很大一部分是來自這種博客,文章的。時間長了,還可以塑造出個人品牌,算是額外的收獲了。
六 平衡工作學習和生活
人這一生,除了工作,學習,還有生活。 不要把自己的生活全丟了。 工作再累,學習再幸苦,也要留點時間,過過自己的生活。 對于單身狗,除了工作,學習外,我覺得第一要務,是找對象。 你不去找,又怎么會有對象呢,至于對象要怎么找,我不是很有經驗,因為哥從大二開始,就未再單身過 :) 。 有對象,就有意思多了,可以一起去市場買買菜,回來一起做飯,可以一起刷劇,雖然我覺得國內很多劇都很腦殘,不過刷著,刷著還會上癮呢, 也可以去看看電影。。。 , 反正兩個人可以做很多一個人做不來的事。 單身的朋友,趕緊找個對象吧。這是平衡工作學習最好的辦法。
以上是我這些年職場自學的一些經驗和感悟,給各位參考,參考。每個人的情況不一樣,不一定都適用,你有什么特別的學習方法或感悟,也可以在留言寫下來,給大家參考參考。
總結
以上是生活随笔為你收集整理的职场程序员如何高效自学的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 我理解的架构能力
- 下一篇: 持续集成工具Jenkins看这篇就够啦!