根據本身的經歷和見識梳理了一份java後端工程師的學習路線(不含安卓方向),不免有侷限性和疏漏,請在評論區反饋意見和建議!
很明顯的是個人學習路線過於龐大了【尷尬】,你能夠認爲這些只是個人一家之言,具體學什麼,怎麼學,仍是要結合實際狀況。好比若是是準備面試的話,就要多學一些,學的深一些。可是若是是爲了平常工做的話,儘可能要學以至用。這兩種學習的方式就是有所差異的。java
對於一個初級的java工程師來講,最重要的是學習jdk,看一下core-java,effective java,學習使用經常使用框架(spring等)。最好是能有實戰項目,再加上自身的學歷和紮實的計算機專業基礎知識,BAT基本上就能在校招的時候隨便挑了(最好是一本以上的學歷哈,不少互聯網公司也會看一下學歷,畢竟是校招嘛)。
對於一箇中級的java工程師來講,最重要的是學好平常生活中用的最多的框架、源碼。我認爲的四大金剛:jvm,併發,Spring,SpringBoot。其餘的數據庫等比較基礎的知識,須要掌握到熟練使用的程度。
對於一個高級的java玩家來講,須要瞭解更底層的知識和架構的能力。不能侷限於Java語言,還有兼顧到C++等語言,至少能看懂用C++代碼寫的框架。對操做系統有所理解,看過足夠多的框架的設計架構和源碼。
會不會以爲太簡單了?就這?那麼若是這些書都是英文版呢?由於不少國內的翻譯很糟糕甚至是誤導讀者。若是除了看書再加上看源碼和寫代碼調代碼的實現呢?再加上閱讀某些經典英文論文呢?咱們會發現這條路太長太長。事實上咱們永遠沒法學完,由於有太多的精英們在爲這個領域不斷地貢獻。可是咱們也不須要學完,並且學習不會一直很慢。
此外,在學習專業知識點的時候別忘了看一些社科類和認知類的書籍,深一點的還有哲學類的書籍,這些都是他山之石!面試