前言:Java開發工程師通常負責後端開發,固然也有專門作Java Web的工程師,可是隨着先後端的分離,愈來愈多的Java工程師須要往大後端方向發展。今天咱們就來介紹一下Java後端開發者的書單。首先要感謝一下某大佬力推的後端書架,初學階段讀到了不少好書直到如今都讓他印象深入。前端
大佬說他在兩年的學習歷程中看了不少的書,其中不乏XXX入門到精通,XXX王者歸來,XXX指南什麼的。python
雖然這類書確實毛病不少,可是做爲非科班的他來講,當時仍是看的津津有味。直到後來我他看到一些優秀的書籍,以及大佬的大佬哥的書架,他才逐漸認識到看一些精品書籍的好處。ios
因此我今天就從這些精品書籍中挑選一些優秀書籍來推薦給你們,固然其中有一些書我本身也沒有時間看完。git
接下來咱們按照後端技術棧各個部分的內容來推薦書籍。程序員
懂的人天然懂吧,就很少說了,對了最後說一句,進了豬廠。github
極客俠網站導航(所有書單資源導航頁):https://pymlovelyq.github.io/archives/
附
①【Java】學習之路吐血整理技術書從入門到進階最全180+本(珍藏版):
https://pymlovelyq.github.io/posts/ace53344/
②【算法數據結構+acm】從入門到進階教你學透算法和數據結構(珍藏版):
https://pymlovelyq.github.io/posts/32a7f0eb/
③【數據庫】從入門到進階必讀上百本技術書籍網盤吐血整理(珍藏版):
https://pymlovelyq.github.io/posts/ad3ee381/
④【Web前端】書單從HTML到JS到AJAX到HTTP從框架到全棧過來人幫你走更少彎路(珍藏版):
https://pymlovelyq.github.io/posts/4957c3df/
⑤【python】書最全已整理好(從入門到進階)(珍藏版):
https://pymlovelyq.github.io/posts/f62e09cf/
⑥【機器學習】+python整理技術書(從入門到進階已經整理好)(珍藏版):
https://pymlovelyq.github.io/posts/e7071c91/
⑦【C語言】推薦書籍從入門到進階帶你走上大牛之路(珍藏版):
https://pymlovelyq.github.io/posts/33303225/
⑧【安卓】入門到進階推薦書籍整理pdf書單整理(珍藏版):
https://pymlovelyq.github.io/posts/a25a10d/
⑨【架構師】之路史詩級必讀書單吐血整理四個維度系列近百本本書(珍藏版):
https://pymlovelyq.github.io/posts/e140888d/
⑩【C++】吐血整理推薦書單從入門到進階成神之路超過100本(珍藏):
https://pymlovelyq.github.io/posts/77edf265/
⑪【ios】吐血整理推薦書單從入門到進階成神之路超過100本(珍藏):
https://pymlovelyq.github.io/posts/66dfe877/
⑫【Web安全】書單從入門到進階教你怎麼一步步成爲Web安全工程師(珍藏版)
https://pymlovelyq.github.io/posts/4239c3df/
⑬【Office】從PPT到Excel到Word等職場工做必備書單吐血整理推薦(珍藏)
https://pymlovelyq.github.io/posts/e9bbb3e9/面試
如下是每本書的推薦語,清楚本身缺的是什麼,就下定決心去補吧,一個好工做意味着高收入,投資本身的時間換來更寶貴的東西。算法
1.《TCP/IP卷一》sql
這本其實我剛開始沒看太懂,多是當時太水的緣由,可是通常是大牛力薦的書。docker
2.《計算機網絡:自頂向下》
這本從應用層講到物理層,感受這種方式學起來更輕鬆,我比較推薦小白看這本。
3.《圖解HTTP和圖解TCP/IP》
相較於前兩本大厚書,這兩本書更加親民,小白能夠買來看看,仍是很適合入門的。
4.《計算機網絡》
沒錯,就是這本教材,做爲非科班選手本身看這本書,那叫一個欲仙欲死啊,看完就忘記了。
1.《深刻理解計算機系統》
這本書不是嚴格意義上的操做系統書籍,而是對計算機基礎和操做系統作了一個串聯,能夠解決你不少對於計算機的疑惑,而且對操做系統有必定理解。
其實這本書仍是很厚的,有必定難度,建議有一些基礎後再看。
2. 《現代操做系統》
這本書其實我沒怎麼看,比較詳細地講解了操做系,可是也是你們都比較推崇的書,仍是那句話,很厚,慎看。
3.《Linux內核設計與實現》
當你對操做系統有必定理解之後,這本書將爲你打開學習Linux內核的大門,固然在此以前你得有必定的c語言開發能力,以及對Linux的瞭解。反正,我如今還沒開始準備好看這本書。
4.《Unix網絡編程》
這兩本書的厚度絕對讓你感到絕望,其實就是講解了Unix內核是如何實現網絡通訊的,其中涉及到不少網絡,操做系統的知識,而且你要熟悉c語言。總之,這是一本奉爲網絡編程神書的存在,不過我等新手仍是拿他壓壓泡麪就行了。網上有不少博客會參照該書的內容,能夠去看看它們。
不瞞你說,因爲我非科班,因此算法基礎比較差,數據結構是考研時跟着天勤考研指南學的,學習算法也是一路坎坷,舉步維艱。仍是分享幾本比較靠譜的書吧。
1.《算法導論》
你問我是否是認真的,我就是說說而已,這本書我買來沒看過。
2.《數據結構與算法(Java版)》
這本書對於初學者來講仍是比較友好的,固然學Java的看這本。
3.《算法圖解,啊哈算法》
這兩部書籍很是適合學習算法的入門,前者主要用圖解的形式覆蓋了大部分經常使用算法,包括dp,貪心等等,能夠做爲入門書,後者則把不少經常使用算法都進行了實現,包括搜索,圖,樹等一些比較高級的經常使用算法。
4 .《劍指offer》
這本書仍是要強烈推薦的,畢竟是面試題常常參考的書籍,固然最好有前面基本的鋪墊再看,可能收穫更大,這本書在面試以前通常都要嚼爛。
5.LeetCode教科書式刷題網站
這不是一本書,是一個題庫,算法麼,終究仍是要靠刷題來提高熟練度的。
1.《Java編程思想》
這本書也是被譽爲Java神書的存在了,可是對新手不友好,適合有些基礎再看,固然要選擇性地看。我當時大概只看了1/3
2.《Java核心技術卷一》
這本書仍是比較適合入門的,固然,這種厚皮書要看完仍是頗有難度的,不過比起上面那本要簡單一些
1.《深刻理解JVM虛擬機》
這本書是Java開發者必須看的書,不少jvm的文章都是提取這本書的內容。JVM是Java虛擬機,賦予了Java程序生命,因此好好看看把,我本身就已經看了三遍了。
2.《Java併發編程實戰》
這本書是Java 併發包做者寫的書,因此很是權威,可是比較晦澀難懂,我看的雲裏霧裏的,你們能夠按需選擇。
3.《Java併發編程藝術》
這本書是國內做者寫的Java併發書籍,比上面那一本更簡單易懂,適合做爲併發編程的入門書籍,固然,學習併發原理以前,仍是先把Java的多線程搞懂吧。
4.《Effective Java》
這本書和Java編程思想同樣被稱爲神書,主要講的是Java的一些優化技巧和規範,沒有必定開發經驗的人看這本書會以爲索然無味,不知所云,因此,先擱着吧。
5.《Java性能調優指南》
說到JVM調優,可能會有不少的面試題浮如今你的腦海裏,這本書比較權威地講解了Java的性能調優方法,不過我還沒怎麼看,有空好好看看。
6.《 Netty權威指南》
Netty是基於NIO開發的網絡編程框架,使用Java代碼編程,其實這本書也能夠放在網絡或者Java Web部分。不過NIO屬於JDK自帶的一部分,是必需要掌握的,而對於Netty,你們若是學有餘力的話也能夠看看。
1.《深刻JavaWeb技術內幕》
這本書是Java Web的集大成之做,涵蓋了大部分Java Web開發的知識點,不過一本書顯然沒法把全部細節都講完,可是做爲Java Web的入門或者進階書籍來看的話仍是很不錯的。
2.《How Tomcat Works》
Java Web很重要的一部份內容就是Tomcat,做爲應用服務器,Tomcat使用Java開發,其源代碼和架構設計都是經典之做。
這是一本講解Tomcat基本原理的書籍,很好地經過剖析源碼來說解Tomcat的內部結構和運行機制,可是須要必定的基礎纔可以看懂,我還沒看這本書,往後再拜讀。
2.《Tomcat架構解析》
和上面這本書相似,主要講解Tomcat原理和架構,,要看懂這本書的話,前提是你要對Java基礎,NIO以及設計模式有所瞭解。這本書我也還沒看。
3.《Spring實戰》
這本書適合做爲Spring的入門書籍,把Spring的概念,使用方式等內容都講的比較清楚。而且也介紹了Spring MVC的部份內容,Spring框架仍是更注重實踐的,因此跟着書上的內容去作吧。
4.《Spring源碼深度解析》
學會Spring基礎後,能夠花點時間看看這本講源碼的書了,這本書對於新手來講不太友好,主要也是由於Spring的代碼結構比較複雜,你們也能夠看一些博客來完成對源碼的學習。
5.《Spring MVC學習指南》
本書是一本Spring MVC的教程,內容細緻、講解清晰,很是適合Web開發者和想要使用Spring MVC開發基於Java的Web應用的讀者閱讀。可是因爲出的比較早,因此不太適合如今版本。
6.《Maven實戰》
Maven是Java Web開發中不可缺乏的一部分,若是想要全面瞭解其實現原理的話,能夠看看這本書。
1.《數據庫原理》
數據庫原理應該是教材吧,這本書做爲數據庫入門來講仍是能夠的,畢竟不是專門作DB的,看大厚書用處不大,這本書把數據庫的基本概念都講完了。
2.《SQL必知必會》
這本書主要是講解sql語句怎麼寫,畢竟數據庫最重要的一點就是要熟練地使用sql語句,固然這本書也能夠當作工具書來使用。
3.《深刻淺出MySQL》
這本書適合做爲MySQL的學習書籍,當你有了必定的MySQL使用經驗後,能夠看看它,該書從數據庫的基礎、開發、優化、管理維護和架構5個方面對MySQL進行了詳細的介紹,講的不算特別深,可是足夠咱們使用了。這本書我也只看了一部分。
4.《MySQL技術內幕:innodb存儲引擎》
看完上面那本書之後,對MySQL算是比較熟悉了,不過對於面試中常考的innodb引擎,仍是推薦一下這本書把,專門講解了innodb存儲引擎的相關內容。我尚未細看,可是內容足夠你學好innodb了。
5.《高性能Mysql》
這本書能夠說是很厚了,更適合DBA拜讀,講的太詳細了,打擾了。
6.《Redis實戰》
和MySQL同樣,學習Redis的第一步最好也是先實戰一下,經過這本書就能夠較好地掌握Redis的使用方法,以及相關數據結構了。
7.,《Redis設計與實現》
該書全面而完整地講解了 Redis 的內部運行機制,對 Redis 的大多數單機功能以及全部多機功能的實現原理進行了介紹。這本書把Redis的基本原理講的一清二楚,包括數據結構,持久化,集羣等內容,有空應該看看。
1.《分佈式Java應用》
這本書是淘寶大牛寫的書,主要講的就是使用rpc來構建分佈式的Java應用,講了不少基礎的東西,能夠做爲入門書籍,不過這本書我以前沒有遇到,因此沒看過。
2.《大型網站技術架構》
這本淘寶系技術指南仍是很是值得推崇的,能夠說是把大型網站的現代架構進行了一次簡單的總結,內容涵蓋了各方面,主要講的是概念,很適合沒接觸過架構的同窗入門。看完之後你會以爲後端技術原來這麼博大精深。
3.《大型分佈式網站架構設計與實踐》
這本書與上面一書相比更傾向於實踐,主要講的是分佈式架構的一些解決方案,可是若是你沒有接觸過相關的場景,可能會看的雲裏霧裏。
4 .《布式服務框架原理與實踐》
上面那本書講的是分佈式架構的實踐,而這本書更專一於分佈式服務的原理講解和對應實踐,很好地講述了分佈式服務的基本概念,相關技術,以及解決方案等,對於想要學習分佈式服務框架的同窗來講是本好書。
5.《大型網站系統與Java中間件開發實踐》
話說這些書的名字真實夠長的。這本書也是阿里系出品,主要講的是大型網站系統以及使用的相關中間件,畢竟阿里是中間件大戶,因此不少中間件對應用再網站系統中,對於想學習這方面技術的同窗來講能夠一看。
6.《從Paxos到Zookeeper分佈式一致性原理與實踐》
提及分佈式系統,咱們須要瞭解它的原理,相關理論及技術,這本書也是從這個角度出發,講解了分佈式系統的一些經常使用概念,而且帶出了分佈式一哥zookeeper,能夠說是想學分佈式技術的同窗必看的書籍。
7.《大規模分佈式存儲系統》
這本書是阿里巴巴oceanbase核心開發大佬寫的書,講的是分佈式存儲相關的原理和解決方案,該書不是很厚,若是想作存儲方向的同窗能夠看看。
雲計算方面的內容主要是我在實習階段接觸的,若是隻是應用開發方向的話這塊不懂也罷。主要仍是看我的興趣。
1.《OpenStack設計與實現》
OpenStack是基於KVM技術的一套私有云生態。這本書很好地講解了OpenStack的一些基本原理,包括各個組件的設計與實現,比起另外一本《OpenStack王者歸來》簡單易懂的多。固然,前提最好是你對Linux內核和網絡有所瞭解。
2.《docker入門與實踐》
docker是如今應用部署的主流方案了,因此瞭解一下仍是挺有必要的,這本書做爲入門書籍足夠讓你會使用docker了。
3.《Kubenetes權威指南》
kubenetes是docker的集羣解決方案,也是一個微服務的解決方案,因此這本書涉及的內容很是多,須要有網絡,操做系統以及docker相關的基礎。我看這本書的時候能夠說是很是暈的。
和雲計算同樣,大數據方面的內容也不算是Java後端技術棧所須要的,可是這也能爲你加分,而且讓你跟大數據開發的崗位沾點邊,何樂而不爲。
1《大數據技術原理與應用》
做爲大數據方面的一本教材,廈大教授寫的這本書仍是很是讚的,從最基礎的原理方面講解了Hadoop的生態系統,而且把每一個組件的原理都講得比較清楚,另外也加入了spark,storm等內容,能夠說是大數據入門很是好的一本書了。
2.《Hadoop實戰》
這本書很厚,我買的時候大概看了一遍,一頭霧水。因此建議先看上面那本書,再來看更加進階的書籍,不然可能就是浪費時間了。
3 《Hadoop權威指南》
這本書主要對Hadoop生態中組件進行詳細講解,有點太詳細了,若是不是作大數據方向的話,能夠不看。
1 《Git權威指南》
Git是如今大公司主流的代碼協同工具,若是你想要了解其底層原理,能夠看看這本書。
2 《重構——改善既有代碼的設計》
這本書主要介紹的是代碼重構的一些指導思想和最佳實踐。有重構需求的同窗能夠看看。
3 .其餘的其餘
其餘方面的書籍就太多了,好比軟件工程方面的,測試方面,Linux方面,以及講一些程序員自我提高的書籍,就不一一列舉了,由於這部分的內容能夠不納入Java後端的技術棧。
1 《作本身的頸椎醫生》
一.計算機網絡系列(4本):
1.《TCP/IP卷一》 2.《計算機網絡:自頂向下》
3.《圖解HTTP和圖解TCP/IP》 4.《計算機網絡》
二.操做系統系列(4本)
1.《深刻理解計算機系統》 2. 《現代操做系統》
3.《Linux內核設計與實現》 4.《Unix網絡編程》
三.數據結構與算法系列(4.5本)
1.《算法導論》 2.《數據結構與算法(Java版)》
3.《算法圖解,啊哈算法》 4 .《劍指offer》
5.LeetCode教科書式刷題網站
四.Java基礎系列(2本)
1.《Java編程思想》 2.《Java核心技術卷一.二》
五.Java進階系列(6本)
1.《深刻理解JVM虛擬機》 2.《Java併發編程實戰》
3.《Java併發編程藝術》 4.《Effective Java》
5.《Java性能調優指南》 6.《 Netty權威指南》
六.JavaWeb系列(7本)
1.《深刻JavaWeb技術內幕》 2.《How Tomcat Works》
3.《Tomcat架構解析》 4.《Spring實戰》
5.《Spring源碼深度解析》 6.《Spring MVC學習指南》
7.《Maven實戰》
七.數據庫系列(7本)
1.《數據庫原理》 2.《SQL必知必會》
3.《深刻淺出MySQL》 4.《MySQL技術內幕:innodb存儲引擎》
5.《高性能Mysql》 6.《Redis實戰》
7.《Redis設計與實現》
八.分佈式系列(7本)
1.《分佈式Java應用》 2.《大型網站技術架構》
3.《大型分佈式網站架構設計與實踐》 4 .《布式服務框架原理與實踐》
5.《大型網站系統與Java中間件開發實踐》 6.《從Paxos到Zookeeper分佈式一致性原理與實踐》
7.《大規模分佈式存儲系統》
九.雲計算系列(3本)
1.《OpenStack設計與實現》 2.《docker入門與實踐》
3《Kubenetes權威指南》
十.大數據系列(3本)
1《大數據技術原理與應用》 2.《Hadoop實戰》
3 《Hadoop權威指南》
十一.其餘系列(2本)
1 《Git權威指南》 2 《重構——改善既有代碼的設計》
3 .其餘的其餘
十二.頸椎康復指南系列(不開玩笑,適當看看真心有用)(1本)
1.《作本身的頸椎醫生》