Java工程師核心書單推薦

三分惡發表於2021-03-14

隨便開啟一個招聘網站,看看對高階Java工程師的技能要求。

image-20210312224908529

拋開其它的經驗能力等等,單純從技術,或者說知識上來講,可以發現一些共通的地方。

  • Java基礎
  • 計算機基礎
  • 資料庫,SQL/NoSQL
  • 常用開源框架
  • 分散式/微服務
  • 中介軟體,快取、訊息中介軟體

書籍是獲取知識的最好來源之一。技術書籍浩如煙海,市場上有不少《XXX入門到精通》,《XXX王者歸來》,《21天學會XXX》這樣的書,當然也有不少經典,個人的精力有限,這些經典不可能都通讀。所以·,博主嘗試整理一個Java工程師所需知識的核心書單,儘可能優中選優,挑選出Java工程師必備知識的一些最核心、最經典的書籍,希望能一起學習,一起進步。

Java工程師核心書單

Java基礎

  • 《Java核心技術》

    不用多說,Java領域最有影響力和價值的著作之一。

image-20210312230306890
  • 《Java程式設計思想》

    這個也不用多介紹了吧,永恆的經典。

    image-20210312230527362

上面兩部經典,白璧微瑕的大概就是翻譯了,技術譯著難免會有些詞不達意的地方,英語閱讀能力過關的話可以看英文原作。國內的《瘋狂Java講義》也尚可。

Java進階

併發

  • 《Java併發程式設計的藝術》

    博主覺得不錯,但豆瓣評分沒有想象的高,可能是三人合作,導致內容有些不連貫。國內作者寫的Java併發書籍,比較簡單易懂,廣為流傳的Java執行緒狀態變化圖就出自本書。

image-20210312231235842

還有一本《Java併發程式設計實戰》,Java併發工具包主要作者之一的著作,但是翻譯的鍋,能看原版的建議看原版。

JUC相關最好的資料還是看原始碼,Doug Lea把他的One Peace都藏在了那裡。

JVM

  • 《深入理解Java虛擬機器》

    JVM,這一本就夠了。有個博主寫過:”你看到一篇JVM的文章,如果文章的最後沒有寫參考這本書,那一定是作者的版權意識不夠。“

image-20210312232210708

程式優化

  • Effective Java》

    和《Java程式設計思想》一樣被稱為神書,介紹瞭如何寫健壯,高效的程式碼,當然閱讀需要有一定的開發經驗。

image-20210312232551147

框架

Spirng

  • 《Spring實戰》

    Spring入門經典書籍。

    image-20210312233144920

  • 《Spring揭祕》

    書比較老,但是概念和原理很清晰,看完之後,再看Spring5的原始碼也很不錯。

    image-20210313233353617

SpringBoot

  • 《深入淺出Spring Boot 2.x》

    博主看過不少SpringBoot的書籍,個人感覺這本還不錯,比較詳細、全面。

    image-20210312234333809

MyBatis

MyBatis官方文件已經做得足夠好了,基本的使用檢視官網就夠了。

  • 《MyBatis技術內幕》

    MyBatis原始碼解析的書不多,推薦這本,結合原始碼閱讀更佳。

    image-20210312234955597

計算機基礎

資料結構與演算法

四大基礎課中對Java工程師最重要的應該是《資料結構》,資料結構和演算法一般不分家,所以放在一起。

  • 《資料結構與演算法分析》

    國外資料結構與演算法分析方面的經典教材,內容全面、縝密嚴格。

image-20210313234343375

其實想推薦一本教材——嚴蔚敏老師的《資料結構》,但是這本書是C語言版的,程式碼實現也不是很多,所以看起來可能比較吃力。

還有另外一本《演算法導論》,不多說了?

計算機網路

  • 《計算機網路》

    還是忍不住推薦一本教材,比較全面、系統,但對非科班選手可能不友好。

image-20210313235134976

  • 《圖解HTTP》

    這本不用多介紹了吧,很生動的講解HTTP協議的書籍,閱讀起來比較友好。

image-20210313235607942

作業系統

  • 《深入理解計算機系統》

    評價非常不錯的計算機作業系統書籍,但是這種黑皮書可能啃起來有些困難。

image-20210314000337590

這裡帶過了四大基礎中的《計算機組成原理》,相比較一些比如嵌入式之類比較底層的開發而言,計組對Java開發可能沒那麼重要。當然,只是相對而言,理解一些編碼、運算、指令、IO之類的還是對了解底層很有幫助的。作者學的時候用的唐朔飛編著的《計算機組成原理》教材。

資料庫

MySQL

  • 《SQL必知必會》

    非常受歡迎的MySQL入門書籍,也可以當作工具書來用。

    image-20210314001054175

  • 《高效能MySQL》

    MySQL領域的經典著作,進階必看。

image-20210314001247302

Redis

  • 《Redis 開發與運維》

    從開發、運維兩個角度總結了 Redis 實戰經驗,深入淺出地剖析底層實現,包含大規模叢集開發與運維的實際案例。一些api的介紹也是以Java為主。

    image-20210314001802080

  • 《Redis設計與實現》

    Redis進階經典書籍。

image-20210314002020749

關於另一個流行的NoSQL MongoDB,考慮到應用場景沒有上面兩個廣泛,所以沒有列出,博主看過的《MongoDB實戰》,覺得還可以。

分散式/微服務

  • 《SpringCloud微服務實戰》

    還不錯的SpringCloud書籍吧。

    image-20210314003614238

  • 《Spring Cloud Alibaba 微服務原理與實戰》

    Netflex的一些元件進入了維護的狀態,Spring Cloud Alibaba在最近流行了起來(技術的變遷真的太快),這方面的書不多,這本是相對而言推薦的多一些的。

image-20210314004029151

經常被拿來和SpringCloud比較的另一個開源分散式框架,官方文件大概就已經足夠了吧。

訊息中介軟體

流行的三大訊息中介軟體,各挑出一本吧。

  • 《RabbitMQ實戰指南》

    簡單清晰的RabbitMQ技術書籍。

image-20210314004537483

  • 《Kafka權威指南》

    Kafka的好書還是不少的,這裡推薦評分比較高的Kafka權威指南。

    image-20210314004938755

  • 《RocketMQ實戰與原理解析》

RocketMQ的書籍不多,這本書入門尚可,原理解析有些單薄了。

image-20210314010757174



除了以上列出的主要一些主要分類,這裡再補充一些。

容器推薦《Docker從入門到實踐》《Kubernetes 權威指南》;

Maven推薦《Maven實戰》;

Git推薦《ProGit》;

Linux自然是《鳥哥的Linux私房菜》;

Elasticsearch推薦《Elasticsearch實戰》;

設計模式推薦《設計模式之禪》。

好了,主要的推薦就到這裡,由於博主的技術視野有限,而且儘可能地壓縮書單(學不動了?),所以有些推薦未必十分合理,一些經典書籍也未列出,有不同意見或者補充,歡迎指出。

學習


參考:

【1】:有什麼值得推薦的Java書籍?

【2】:2020 Java 後端工程師的書單推薦 | 芋道原始碼 —— 純原始碼解析部落格

相關文章