跳槽季的查漏補缺,談談對Java程式設計師學習當中各個階段的建議(第四階段)
第四部分:對於參加工作2年到3年的同學
有的同學在這個時候覺得自己已經很牛逼了,於是忍不住開始慢慢鬆懈。請記住,你還嫩的多。
這個階段,有一本書是你必須看的,它叫做《深入理解Java虛擬機器》。這本書絕對是Java開發者最重要的書,沒有之一。在LZ眼裡,這本書的重要性還要高於《Java程式設計思想》。
這本書的內容是幫助你全面的瞭解Java虛擬機器,在這個階段,你一定已經知道Java是執行在JVM之上的。所以,對於JVM,你沒有任何理由不瞭解它。LZ之前有寫過JVM系列的知識,
另外,在過去2年的工作當中,你肯定或多或少接觸過併發。這個時候,你應該去更加深入的瞭解併發相關的知識,而這部分內容,LZ比較推薦《Java併發程式設計實戰》這本書。只要你把這本書啃下來了,併發的部分基本已經瞭解了十之六七。
與此同時,這個階段你要做的事情還遠不止如此。這個時候,你應該對於你所使用的框架應該有了更深入的瞭解,對於Java的類庫也有了更深入的瞭解。因此,你需要去看一些JDK中的類的原始碼,也包括你所使用的框架的原始碼。
這些原始碼能看懂的前提是,你必須對設計模式非常瞭解。否則的話,你看原始碼的過程中,永遠會有這樣那樣的疑問,這段程式碼為什麼要這麼寫?為什麼要定義這個介面,它看起來好像很多餘?
由此也可以看出,這些學習的過程是環環相扣的,如果你任何一個階段拉下來了,那麼你就真的跟不上了,或者說是一步慢步步慢。而且LZ很負責的告訴你,LZ在這個階段的時候,所學習的東西遠多於這裡所羅列出來的。因此千萬不要覺得你已經學的很多了,LZ所說的這些都只是最低要求,不光是LZ,很多人在這個時間段所學習的內容都遠超本文的範圍。
如果你不能跟上節奏的話,若干年後,如果不是程式猿市場還不錯的話,你很可能不僅僅是工資比別人低,公司沒別人好,而是根本就找不到工作。
總而言之,這個階段,你需要做的是深入瞭解Java底層和Java類庫(比如併發那本書就是Java併發包java.concurrent的內容),也就是JVM和JDK的相關內容。而且還要更深入的去了解你所使用的框架,方式比較推薦看原始碼或者看官方文件。
另外,還有一種學習的方式,在2年這個階段,也應該啟用了,那就是造輪子。
不要聽信那套“不要重複造輪子”的論調,那是公司為了節省時間成本編造出來的。重複造輪子或許對別人沒有價值,因為你造的輪子可能早就有了,而且一般情況下你造出來的輪子還沒有現存的好。但是對別人沒有價值,不代表對你自己沒有價值。
一個造輪子的過程,是一個從無到有的過程。這個過程可以對你進行系統的鍛鍊,它不僅考察你的編碼能力,還考察你的框架設計能力,你需要讓你的輪子擁有足夠好的擴充套件性、健壯性。
而且在造輪子的過程中,你會遇到各種各樣的難題,這些難題往往又是你學習的契機。當你把輪子造好的時候,你一定會發現,其實你自己收穫了很多。
所以,這個階段,除了上面提到的瞭解JVM、JDK和框架原始碼以外,也請你根據別人優秀的原始碼,去造一個任何你能夠想象出來的輪子。
相關文章
- 跳槽季的查漏補缺,談談對Java程式設計師學習當中各個階段的建議(第五階段)Java程式設計師
- 跳槽季的查漏補缺,談談對Java程式設計師學習當中各個階段的建議(第六階段)Java程式設計師
- 大神的分享:Java程式設計師的學習生涯中各個階段的建議Java程式設計師
- 初學Java的5個階段,你在哪個階段?Java
- 編譯的各個階段編譯
- 程式設計師到高階架構師,必須經歷的三個階段!程式設計師架構
- 程式設計師不能一直停留在愛學習的階段程式設計師
- Python新手必備學習的4大階段,建議收藏Python
- Java學習第一階段Java
- Python學習的十個階段,學完神功大成,對應一下看看你自己在哪個階段Python
- Java 學習路線之四個階段Java
- 談談對程式設計師的管理程式設計師
- 大佬視角:談談程式設計師的離職和跳槽程式設計師
- mybatis各階段的詳解MyBatis
- C語言學習的幾個階段C語言
- 015 Rust非同步程式設計錄製階段性結束和Rust後續學習建議Rust非同步程式設計
- 最有效、最全的Vue 2.0 學習路線,各個階段適用Vue
- 好程式設計師大資料學習路線分享Hadoop階段的高可用配置程式設計師大資料Hadoop
- 統一過程(UP)定義了初啟階段、精化階段、構建階段、移交階段和產生階段,每個階段以達到某個里程碑時結束,其中()的里程碑是生命週期架構。 A.初啟階段 B.精化階段 C.構建階段 D.移交階段架構
- linux學習的基本分為三個階段Linux
- 軟體開發各個階段用到的各種圖
- 學習Java程式設計的建議Java程式設計
- Android程式設計師的Java後臺學習建議Android程式設計師Java
- 暑期java(物件導向設計)學習第一階段總結Java物件
- 作為程式設計師,職業規劃需要注意的四個階段程式設計師
- Java高階程式設計師面試大綱——備戰金三銀四跳槽季Java程式設計師面試
- 談談Java工程師的學習Java工程師
- JavaScript高階程式設計讀後感(一)之零碎知識點查漏補缺JavaScript程式設計
- 聊聊阿里社招面試,談談“野生”Java程式設計師學習的道路阿里面試Java程式設計師
- Java學習路線圖,其五個必經階段Java
- 資料庫設計的 6 個階段詳解資料庫
- 查漏補缺
- 公司各個階段 CTO 需要做什麼?
- 感悟:工程師所必經的三個階段工程師
- 針對Java程式設計師的20個Spring MVC訪談問題Java程式設計師SpringMVC
- 程式設計漫談(二十):如何自學程式設計及Java、上手真實開發及轉行程式設計師的建議Java行程程式設計師
- web前端的幾個階段Web前端
- MyBatis執行流程的各階段介紹MyBatis