隨便開啟一個招聘網站,看看對高階
Java工程師的技能要求。
拋開其它的經驗能力等等,單純從技術,或者說知識上來講,可以發現一些共通的地方。
- Java基礎
- 計算機基礎
- 資料庫,SQL/NoSQL
- 常用開源框架
- 分散式/微服務
- 中介軟體,快取、訊息中介軟體
書籍是獲取知識的最好來源之一。技術書籍浩如煙海,市場上有不少《XXX入門到精通》,《XXX王者歸來》,《21天學會XXX》這樣的書,當然也有不少經典,個人的精力有限,這些經典不可能都通讀。所以·,博主嘗試整理一個Java工程師所需知識的核心書單,儘可能優中選優,挑選出Java工程師必備知識的一些最核心、最經典的書籍,希望能一起學習,一起進步。
Java基礎
-
《Java核心技術》
不用多說,Java領域最有影響力和價值的著作之一。
-
《Java程式設計思想》
這個也不用多介紹了吧,永恆的經典。
上面兩部經典,白璧微瑕的大概就是翻譯了,技術譯著難免會有些詞不達意的地方,英語閱讀能力過關的話可以看英文原作。國內的《瘋狂Java講義》也尚可。
Java進階
併發
-
《Java併發程式設計的藝術》
博主覺得不錯,但豆瓣評分沒有想象的高,可能是三人合作,導致內容有些不連貫。國內作者寫的Java併發書籍,比較簡單易懂,廣為流傳的Java執行緒狀態變化圖就出自本書。
還有一本《Java併發程式設計實戰》,Java併發工具包主要作者之一的著作,但是翻譯的鍋,能看原版的建議看原版。
JUC相關最好的資料還是看原始碼,Doug Lea把他的One Peace都藏在了那裡。
JVM
-
《深入理解Java虛擬機器》
JVM,這一本就夠了。有個博主寫過:”你看到一篇JVM的文章,如果文章的最後沒有寫參考這本書,那一定是作者的版權意識不夠。“
程式優化
-
《Effective Java》
和《Java程式設計思想》一樣被稱為神書,介紹瞭如何寫健壯,高效的程式碼,當然閱讀需要有一定的開發經驗。
框架
Spirng
-
《Spring實戰》
Spring入門經典書籍。
-
《Spring揭祕》
書比較老,但是概念和原理很清晰,看完之後,再看Spring5的原始碼也很不錯。
SpringBoot
-
《深入淺出Spring Boot 2.x》
博主看過不少SpringBoot的書籍,個人感覺這本還不錯,比較詳細、全面。
MyBatis
MyBatis官方文件已經做得足夠好了,基本的使用檢視官網就夠了。
-
《MyBatis技術內幕》
MyBatis原始碼解析的書不多,推薦這本,結合原始碼閱讀更佳。
計算機基礎
資料結構與演算法
四大基礎課中對Java工程師最重要的應該是《資料結構》,資料結構和演算法一般不分家,所以放在一起。
-
《資料結構與演算法分析》
國外資料結構與演算法分析方面的經典教材,內容全面、縝密嚴格。
其實想推薦一本教材——嚴蔚敏老師的《資料結構》,但是這本書是C語言版的,程式碼實現也不是很多,所以看起來可能比較吃力。
還有另外一本《演算法導論》,不多說了?
計算機網路
-
《計算機網路》
還是忍不住推薦一本教材,比較全面、系統,但對非科班選手可能不友好。
-
《圖解HTTP》
這本不用多介紹了吧,很生動的講解HTTP協議的書籍,閱讀起來比較友好。
作業系統
-
《深入理解計算機系統》
評價非常不錯的計算機作業系統書籍,但是這種黑皮書可能啃起來有些困難。
這裡帶過了四大基礎中的《計算機組成原理》,相比較一些比如嵌入式之類比較底層的開發而言,計組對Java開發可能沒那麼重要。當然,只是相對而言,理解一些編碼、運算、指令、IO之類的還是對了解底層很有幫助的。作者學的時候用的唐朔飛編著的《計算機組成原理》教材。
資料庫
MySQL
-
《SQL必知必會》
非常受歡迎的MySQL入門書籍,也可以當作工具書來用。
-
《高效能MySQL》
MySQL領域的經典著作,進階必看。
Redis
-
《Redis 開發與運維》
從開發、運維兩個角度總結了 Redis 實戰經驗,深入淺出地剖析底層實現,包含大規模叢集開發與運維的實際案例。一些api的介紹也是以Java為主。
-
《Redis設計與實現》
Redis進階經典書籍。
關於另一個流行的NoSQL MongoDB,考慮到應用場景沒有上面兩個廣泛,所以沒有列出,博主看過的《MongoDB實戰》,覺得還可以。
分散式/微服務
-
《SpringCloud微服務實戰》
還不錯的SpringCloud書籍吧。
-
《Spring Cloud Alibaba 微服務原理與實戰》
Netflex的一些元件進入了維護的狀態,Spring Cloud Alibaba在最近流行了起來(技術的變遷真的太快),這方面的書不多,這本是相對而言推薦的多一些的。
經常被拿來和SpringCloud比較的另一個開源分散式框架,官方文件大概就已經足夠了吧。
訊息中介軟體
流行的三大訊息中介軟體,各挑出一本吧。
-
《RabbitMQ實戰指南》
簡單清晰的RabbitMQ技術書籍。
-
《Kafka權威指南》
Kafka的好書還是不少的,這裡推薦評分比較高的Kafka權威指南。
-
《RocketMQ實戰與原理解析》
RocketMQ的書籍不多,這本書入門尚可,原理解析有些單薄了。
除了以上列出的主要一些主要分類,這裡再補充一些。
容器推薦《Docker從入門到實踐》《Kubernetes 權威指南》;
Maven推薦《Maven實戰》;
Git推薦《ProGit》;
Linux自然是《鳥哥的Linux私房菜》;
Elasticsearch推薦《Elasticsearch實戰》;
設計模式推薦《設計模式之禪》。
好了,主要的推薦就到這裡,由於博主的技術視野有限,而且儘可能地壓縮書單(學不動了?),所以有些推薦未必十分合理,一些經典書籍也未列出,有不同意見或者補充,歡迎指出。
參考:
【1】:有什麼值得推薦的Java書籍?