Java程序員從入門到進階技術書籍推薦十個系列最全50+本附閱讀技術書方法論(珍藏版)

轉載自某大佬博客:https://pymlovelyq.github.io/2018/10/26/java/

前言:技術書閱讀方法論

一.速讀一遍(最好在1~2天內完成)

人的大腦記憶力有限,在一天內快速看完一本書會在大腦裏留下深刻印象,對於之後複習以及總結都會有特別好的作用。
對於每一章的知識,先閱讀標題,弄懂大概講的是什麼主題,再去快速看一遍,不懂也沒有關係,但是一定要在不懂的地方做個記號,什麼記號無所謂,但是要讓自己後面再看的時候有個提醒的作用,看看第二次看有沒有懂了些。

二.精讀一遍(在2周內看完)

有了前面速讀的感覺,第二次看會有慢慢深刻了思想和意識的作用,具體爲什麼不要問我,去問30年後的神經大腦專家,現在人類可能還沒有總結出爲什麼大腦對記憶的完全方法論,但是,就像我們專業程序員,打代碼都是先實踐,然後就漸漸懂了過程,慢慢懂了原理,所以第二遍讀的時候稍微慢下來,2周內搞定。記住一句話:沒看完一個章節後,總結一下這個章節講了啥。很關鍵。

三.實踐(在整個過程中都要)

實踐的時候,要注意不用都去實踐,最好看着書,敲下代碼,把重點的內容敲一遍有個肌肉記憶就很不錯了。
以及到自己做過的項目中去把每個有涉及的原理的代碼,研究一遍,就可以了

Java開發工程師一般負責後端開發,當然也有專門做Java Web的工程師,但是隨着前後端的分離,越來越多的Java工程師需要往大後端方向發展。今天我們就來介紹一下Java後端開發者的書單。首先要感謝一下某大佬力推的後端書架,初學階段讀到了很多好書直到現在都讓他印象深刻。
大佬說他在兩年的學習歷程中看了很多的書,其中不乏XXX入門到精通,XXX王者 歸來,XXX指南什麼的。
雖然這類書確實毛病很多,但是作爲非科班的他來說,當時還是看的津津有味。直到後來我他看到一些優秀的書籍,以及大佬的大佬哥的書架,他才逐漸認識到看一些精品書籍的好處。
所以我今天就從這些精品書籍中挑選一些優秀書籍來推薦給大家,當然其中有一些書我自己也沒有時間看完。
接下來我們按照後端技術棧各個部分的內容來推薦書籍。
懂的人自然懂吧,就不多說了,對了最後說一句,進了豬廠。

資源圖示:
0.png

以下是每本書的推薦語,清楚自己缺的是什麼,就下定決心去補吧,一個好工作意味着高收入,投資自己的時間換來更寶貴的東西。

Java從入門SE到進階EE:

一.計算機網絡系列:

1.《TCP/IP卷一》

3539721_1535347386120_640.jpeg

這本其實我剛開始沒看太懂,可能是當時太水的原因,但是一般是大牛力薦的書。

2.《計算機網絡:自頂向下》

3539721_1535347386232_640.jpeg

這本從應用層講到物理層,感覺這種方式學起來更輕鬆,我比較推薦小白看這本。

3.《圖解HTTP和圖解TCP/IP》

3539721_1535347386132_640.jpeg

相較於前兩本大厚書,這兩本書更加親民,小白可以買來看看,還是很適合入門的。

4.《計算機網絡》

3539721_1535347386071_640.jpeg

沒錯,就是這本教材,作爲非科班選手自己看這本書,那叫一個欲仙欲死啊,看完就忘記了。

二.操作系統系列

1.《深入理解計算機系統》

048 3539721_1535347386224_640.jpeg

這本書不是嚴格意義上的操作系統書籍,而是對計算機基礎和操作系統做了一個串聯,可以解決你很多對於計算機的疑惑,並且對操作系統有一定理解。
其實這本書還是很厚的,有一定難度,建議有一些基礎後再看。

2. 《現代操作系統》

046 3539721_1535347386338_640.jpeg

這本書其實我沒怎麼看,比較詳細地講解了操作系,但是也是大家都比較推崇的書,還是那句話,很厚,慎看。

3.《Linux內核設計與實現》

045 3539721_1535347386409_640.jpeg

當你對操作系統有一定理解以後,這本書將爲你打開學習Linux內核的大門,當然在此之前你得有一定的c語言開發能力,以及對Linux的瞭解。反正,我現在還沒開始準備好看這本書。

4.《Unix網絡編程》

042 3539721_1535347386557_640.jpeg

這兩本書的厚度絕對讓你感到絕望,其實就是講解了Unix內核是如何實現網絡通信的,其中涉及到很多網絡,操作系統的知識,並且你要熟悉c語言。總之,這是一本奉爲網絡編程神書的存在,不過我等新手還是拿他壓壓泡麪就好了。網上有很多博客會參照該書的內容,可以去看看它們。

三.數據結構與算法系列

不瞞你說,由於我非科班,所以算法基礎比較差,數據結構是考研時跟着天勤考研指南學的,學習算法也是一路坎坷,舉步維艱。還是分享幾本比較靠譜的書吧。

1.《算法導論》

041 3539721_1535347386572_640.jpeg

你問我是不是認真的,我就是說說而已,這本書我買來沒看過。

2.《數據結構與算法(Java版)》

043 3539721_1535347386554_640.jpeg

這本書對於初學者來說還是比較友好的,當然學Java的看這本。

3.《算法圖解》《啊哈算法》

1111.jpg
2222.jpg

這兩部書籍非常適合學習算法的入門,前者主要用圖解的形式覆蓋了大部分常用算法,包括dp,貪心等等,可以作爲入門書,後者則把很多常用算法都進行了實現,包括搜索,圖,樹等一些比較高級的常用算法。

4 .《劍指offer》

040 3539721_1535347386622_640.jpeg

這本書還是要強烈推薦的,畢竟是面試題經常參考的書籍,當然最好有前面基本的鋪墊再看,可能收穫更大,這本書在面試之前一般都要嚼爛。

5.LeetCode教科書式刷題網站

這不是一本書,是一個題庫,算法麼,終究還是要靠刷題來提升熟練度的。

四.Java基礎系列

1.《Java編程思想》

039 3539721_1535347386650_640.jpeg

這本書也是被譽爲Java神書的存在了,但是對新手不友好,適合有些基礎再看,當然要選擇性地看。我當時大概只看了1/3

2.《Java核心技術卷一》

038 3539721_1535347386764_640.jpeg

這本書還是比較適合入門的,當然,這種厚皮書要看完還是很有難度的,不過比起上面那本要簡單一些

五.Java進階系列

1.《深入理解JVM虛擬機》

037 3539721_1535347386794_640.jpeg

這本書是Java開發者必須看的書,很多jvm的文章都是提取這本書的內容。JVM是Java虛擬機,賦予了Java程序生命,所以好好看看把,我自己就已經看了三遍了。

2.《Java併發編程實戰》

035 3539721_1535347386805_640.jpeg

這本書是Java 併發包作者寫的書,所以非常權威,但是比較晦澀難懂,我看的雲裏霧裏的,大家可以按需選擇。

3.《Java併發編程藝術》

036 3539721_1535347386800_640.jpeg

這本書是國內作者寫的Java併發書籍,比上面那一本更簡單易懂,適合作爲併發編程的入門書籍,當然,學習併發原理之前,還是先把Java的多線程搞懂吧。

4.《Effective Java》

033 3539721_1535347386890_640.jpeg

這本書和Java編程思想一樣被稱爲神書,主要講的是Java的一些優化技巧和規範,沒有一定開發經驗的人看這本書會覺得索然無味,不知所云,所以,先擱着吧。

5.《Java性能調優指南》

034 3539721_1535347386862_640.jpeg

說到JVM調優,可能會有很多的面試題浮現在你的腦海裏,這本書比較權威地講解了Java的性能調優方法,不過我還沒怎麼看,有空好好看看。

6.《 Netty權威指南》

032 3539721_1535347386986_640.jpeg

Netty是基於NIO開發的網絡編程框架,使用Java代碼編程,其實這本書也可以放在網絡或者Java Web部分。不過NIO屬於JDK自帶的一部分,是必須要掌握的,而對於Netty,大家如果學有餘力的話也可以看看。

六.JavaWeb系列

1.《深入JavaWeb技術內幕》

031 3539721_1535347387004_640.jpeg

這本書是Java Web的集大成之作,涵蓋了大部分Java Web開發的知識點,不過一本書顯然無法把所有細節都講完,但是作爲Java Web的入門或者進階書籍來看的話還是很不錯的。

2.《How Tomcat Works》

030 3539721_1535347387013_640.jpeg

Java Web很重要的一部分內容就是Tomcat,作爲應用服務器,Tomcat使用Java開發,其源代碼和架構設計都是經典之作。

這是一本講解Tomcat基本原理的書籍,很好地通過剖析源碼來講解Tomcat的內部結構和運行機制,但是需要一定的基礎才能夠看懂,我還沒看這本書,日後再拜讀。

2.《Tomcat架構解析》

029 3539721_1535347387020_640.jpeg

和上面這本書類似,主要講解Tomcat原理和架構,,要看懂這本書的話,前提是你要對Java基礎,NIO以及設計模式有所瞭解。這本書我也還沒看。

3.《Spring實戰》

027 3539721_1535347387151_640.jpeg

這本書適合作爲Spring的入門書籍,把Spring的概念,使用方式等內容都講的比較清楚。並且也介紹了Spring MVC的部分內容,Spring框架還是更注重實踐的,所以跟着書上的內容去做吧。

4.《Spring源碼深度解析》

028 3539721_1535347387115_640.jpeg

學會Spring基礎後,可以花點時間看看這本講源碼的書了,這本書對於新手來說不太友好,主要也是因爲Spring的代碼結構比較複雜,大家也可以看一些博客來完成對源碼的學習。

5.《Spring MVC學習指南》

026 3539721_1535347387205_640.jpeg

本書是一本Spring MVC的教程,內容細緻、講解清晰,非常適合Web開發者和想要使用Spring MVC開發基於Java的Web應用的讀者閱讀。但是由於出的比較早,所以不太適合現在版本。

6.《Maven實戰》

024 3539721_1535347387251_640.jpeg

Maven是Java Web開發中不可缺少的一部分,如果想要全面瞭解其實現原理的話,可以看看這本書。

七.數據庫系列

1.《數據庫原理》

3333.jpg

數據庫原理應該是教材吧,這本書作爲數據庫入門來說還是可以的,畢竟不是專門做DB的,看大厚書用處不大,這本書把數據庫的基本概念都講完了。

2.《SQL必知必會》

025 3539721_1535347387238_640.jpeg

這本書主要是講解sql語句怎麼寫,畢竟數據庫最重要的一點就是要熟練地使用sql語句,當然這本書也可以當做工具書來使用。

3.《深入淺出MySQL》

023 3539721_1535347387285_640.jpeg

這本書適合作爲MySQL的學習書籍,當你有了一定的MySQL使用經驗後,可以看看它,該書從數據庫的基礎、開發、優化、管理維護和架構5個方面對MySQL進行了詳細的介紹,講的不算特別深,但是足夠我們使用了。這本書我也只看了一部分。

4.《MySQL技術內幕:innodb存儲引擎》

021 3539721_1535347387450_640.jpeg

看完上面那本書以後,對MySQL算是比較熟悉了,不過對於面試中常考的innodb引擎,還是推薦一下這本書把,專門講解了innodb存儲引擎的相關內容。我還沒有細看,但是內容足夠你學好innodb了。

5.《高性能Mysql》

022 3539721_1535347387428_640.jpeg

這本書可以說是很厚了,更適合DBA拜讀,講的太詳細了,打擾了。

6.《Redis實戰》

020 3539721_1535347387471_640.jpeg

和MySQL一樣,學習Redis的第一步最好也是先實戰一下,通過這本書就可以較好地掌握Redis的使用方法,以及相關數據結構了。

7.,《Redis設計與實現》

018 3539721_1535347387523_640.jpeg

該書全面而完整地講解了 Redis 的內部運行機制,對 Redis 的大多數單機功能以及所有多機功能的實現原理進行了介紹。這本書把Redis的基本原理講的一清二楚,包括數據結構,持久化,集羣等內容,有空應該看看。

八.分佈式系列

1.《分佈式Java應用》

017 3539721_1535347387546_640.jpeg

這本書是淘寶大牛寫的書,主要講的就是使用rpc來構建分佈式的Java應用,講了很多基礎的東西,可以作爲入門書籍,不過這本書我之前沒有遇到,所以沒看過。

2.《大型網站技術架構》

019 3539721_1535347387494_640.jpeg

這本淘寶系技術指南還是非常值得推崇的,可以說是把大型網站的現代架構進行了一次簡單的總結,內容涵蓋了各方面,主要講的是概念,很適合沒接觸過架構的同學入門。看完以後你會覺得後端技術原來這麼博大精深。

3.《大型分佈式網站架構設計與實踐》

016 3539721_1535347387653_640.jpeg

這本書與上面一書相比更傾向於實踐,主要講的是分佈式架構的一些解決方案,但是如果你沒有接觸過相關的場景,可能會看的雲裏霧裏。

4 .《布式服務框架原理與實踐》

015 3539721_1535347387683_640.jpeg

上面那本書講的是分佈式架構的實踐,而這本書更專注於分佈式服務的原理講解和對應實踐,很好地講述了分佈式服務的基本概念,相關技術,以及解決方案等,對於想要學習分佈式服務框架的同學來說是本好書。

5.《大型網站系統與Java中間件開發實踐》

014 3539721_1535347387684_640.jpeg

話說這些書的名字真實夠長的。這本書也是阿里系出品,主要講的是大型網站系統以及使用的相關中間件,畢竟阿里是中間件大戶,所以很多中間件對應用再網站系統中,對於想學習這方面技術的同學來說可以一看。

6.《從Paxos到Zookeeper分佈式一致性原理與實踐》

012 3539721_1535347387746_640.jpeg

說起分佈式系統,我們需要了解它的原理,相關理論及技術,這本書也是從這個角度出發,講解了分佈式系統的一些常用概念,並且帶出了分佈式一哥zookeeper,可以說是想學分佈式技術的同學必看的書籍。

7.《大規模分佈式存儲系統》

013 3539721_1535347387742_640.jpeg

這本書是阿里巴巴oceanbase核心開發大佬寫的書,講的是分佈式存儲相關的原理和解決方案,該書不是很厚,如果想做存儲方向的同學可以看看。

九.雲計算系列

雲計算方面的內容主要是我在實習階段接觸的,如果只是應用開發方向的話這塊不懂也罷。主要還是看個人興趣。

1.《OpenStack設計與實現》

010 3539721_1535347387899_640.jpeg

OpenStack是基於KVM技術的一套私有云生態。這本書很好地講解了OpenStack的一些基本原理,包括各個組件的設計與實現,比起另一本《OpenStack王者歸來》簡單易懂的多。當然,前提最好是你對Linux內核和網絡有所瞭解。

2.《docker入門與實踐》

011 3539721_1535347387887_640.jpeg

docker是現在應用部署的主流方案了,所以瞭解一下還是挺有必要的,這本書作爲入門書籍足夠讓你會使用docker了。

3.《Kubenetes權威指南》

009 3539721_1535347387926_640.jpeg

kubenetes是docker的集羣解決方案,也是一個微服務的解決方案,所以這本書涉及的內容非常多,需要有網絡,操作系統以及docker相關的基礎。我看這本書的時候可以說是非常暈的。

十.大數據系列

和雲計算一樣,大數據方面的內容也不算是Java後端技術棧所需要的,但是這也能爲你加分,並且讓你跟大數據開發的崗位沾點邊,何樂而不爲。

1.《大數據技術原理與應用》

008 3539721_1535347387940_640.jpeg

作爲大數據方面的一本教材,廈大教授寫的這本書還是非常讚的,從最基礎的原理方面講解了Hadoop的生態系統,並且把每個組件的原理都講得比較清楚,另外也加入了spark,storm等內容,可以說是大數據入門非常好的一本書了。

2.《Hadoop實戰》

007 3539721_1535347387951_640.jpeg

這本書很厚,我買的時候大概看了一遍,一頭霧水。所以建議先看上面那本書,再來看更加進階的書籍,否則可能就是浪費時間了。

3.《Hadoop權威指南》

006 3539721_1535347387970_640.jpeg

這本書主要對Hadoop生態中組件進行詳細講解,有點太詳細了,如果不是做大數據方向的話,可以不看。

十一.其他系列:

1.《Git權威指南》

005 3539721_1535347388061_640.jpeg

Git是現在大公司主流的代碼協同工具,如果你想要了解其底層原理,可以看看這本書。

2.《重構——改善既有代碼的設計》

004 3539721_1535347388141_640.jpeg

這本書主要介紹的是代碼重構的一些指導思想和最佳實踐。有重構需求的同學可以看看。

3.其他的其他

其他方面的書籍就太多了,比如軟件工程方面的,測試方面,Linux方面,以及講一些程序員自我提升的書籍,就不一一列舉了,因爲這部分的內容可以不歸入Java後端的技術棧。

十二.頸椎康復系列:

1.《做自己的頸椎醫生》

4444.jpg

身體是革命的本錢。懂得人不用解釋了。

總結:

一.計算機網絡系列(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.《做自己的頸椎醫生》

附java從入門SE到進階EE推薦書籍50+本:

https://pymlovelyq.github.io/2018/10/26/java/

附學習數據庫從入門到進階書籍pdf版吐血整理推薦(珍藏版):

https://pymlovelyq.github.io/2018/10/12/database/

附機器學習和python學習之路吐血整理技術書從入門到進階(珍藏版):

https://pymlovelyq.github.io/2018/10/15/machineLearning/

附算法與數據結構+一點點ACM從入門到進階吐血整理推薦書單(珍藏版):

https://pymlovelyq.github.io/2018/10/06/Algorithm/

附python從入門到進階推薦書籍最全整理pdf分享附網盤鏈接已拿BT豆瓣offer:

https://pymlovelyq.github.io/2018/10/20/python/

附安卓入門到進階推薦書籍整理pdf附網盤鏈接已拿阿里豆瓣offer(珍藏):

https://pymlovelyq.github.io/2018/09/04/An/

附C/C++語言推薦書籍從入門到進階帶你走上大牛之路(珍藏版):

https://pymlovelyq.github.io/2018/10/10/CC/

附Web前端書單從HTML到JS到AJAX到HTTP從框架到全棧過來人幫你走更少彎路(珍藏版):

https://pymlovelyq.github.io/2018/10/17/WebFont/

總結:天下沒有不勞而獲的果實,望各位年輕的朋友,想學技術的朋友,在決心扎入技術道路的路上披荊斬棘,把書弄懂了,再去敲代碼,把原理弄懂了,再去實踐,將會帶給你的人生,你的工作,你的未來一個美夢。