天天看點

Java工程師必備書單

版權聲明:本文為部落客原創文章,未經部落客允許不得轉載。 https://blog.csdn.net/a724888/article/details/82026061

江湖路險,你我同行。

Java開發工程師一般負責後端開發,當然也有專門做Java Web的工程師,但是随着前後端的分離,越來越多的Java工程師需要往大後端方向發展。

今天我們就來介紹一下Java後端開發者的書單。

首先要感謝一下江南白衣大大的後端書架,讓我在初學階段讀到了很多好書,直到現在都印象深刻。

我在兩年的學習曆程中看了很多的書,其中不乏XXX入門到精通,XXX王者歸來,XXX指南什麼的。

雖然這類書确實毛病很多,但是作為非科班的我來說,當時還是看的津津有味。直到後來我看到一些優秀的書籍,以及白衣哥的書架,我才逐漸認識到看一些精品書籍的好處。

是以我們今天就從這些精品書籍中挑選一些優秀書籍來推薦給大家,當然其中有一些書我自己也沒有時間看完。

接下來我們按照後端技術棧各個部分的内容來推薦書籍。

網絡

1 TCP/IP卷一

Java工程師必備書單

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

2 計算機網絡:自頂向下

Java工程師必備書單

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

3 圖解HTTP和圖解TCP/IP

Java工程師必備書單

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

4 計算機網絡

Java工程師必備書單

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

作業系統

1 深入了解計算機系統

Java工程師必備書單

這本書不是嚴格意義上的作業系統書籍,而是對計算機基礎和作業系統做了一個串聯,可以解決你很多對于計算機的疑惑,并且對作業系統有一定了解。

其實這本書還是很厚的,有一定難度,建議有一些基礎後再看。

2 現代作業系統

Java工程師必備書單

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

3 Linux核心設計與實作

Java工程師必備書單

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

4 Unix網絡程式設計

Java工程師必備書單

這兩本書的厚度絕對讓你感到絕望,其實就是講解了Unix核心是如何實作網絡通信的,其中涉及到很多網絡,作業系統的知識,并且你要熟悉c語言。總之,這是一本奉為網絡程式設計神書的存在,不過我等新手還是拿他壓壓泡面就好了。

網上有很多部落格會參照該書的内容,可以去看看它們。

資料結構與算法

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

1 算法導論

Java工程師必備書單

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

2 資料結構與算法(Java版)

Java工程師必備書單

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

3 算法圖解,啊哈算法

Java工程師必備書單

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

4 劍指offer

Java工程師必備書單

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

5 LeetCode

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

Java基礎

1 Java程式設計思想

Java工程師必備書單

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

2 Java核心技術卷一

Java工程師必備書單

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

Java進階

1 深入了解JVM虛拟機

Java工程師必備書單

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

2 Java并發程式設計實戰

Java工程師必備書單

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

3 Java并發程式設計藝術

Java工程師必備書單

這本書是國内作者寫的Java并發書籍,比上面那一本更簡單易懂,适合作為并發程式設計的入門書籍,當然,學習并發原理之前,還是先把Java的多線程搞懂吧。

4 Effective Java

Java工程師必備書單

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

5 Java性能調優指南

Java工程師必備書單

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

6 Netty權威指南

Java工程師必備書單

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

JavaWeb

0 深入JavaWeb技術内幕

Java工程師必備書單

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

1 How Tomcat Works

Java工程師必備書單

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

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

2 Tomcat架構解析

Java工程師必備書單

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

3 Spring實戰

Java工程師必備書單

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

4 Spring源碼深度解析

Java工程師必備書單

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

5 Spring MVC學習指南

Java工程師必備書單

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

6 Maven實戰

Java工程師必備書單

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

資料庫

0 資料庫原理

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

1 sql必知必會

Java工程師必備書單

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

2 深入淺出MySQL

Java工程師必備書單

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

3 MySQL技術内幕:innodb存儲引擎

Java工程師必備書單

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

4 高性能Mysql

Java工程師必備書單

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

5 Redis實戰

Java工程師必備書單

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

6 Redis設計與實作

Java工程師必備書單

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

分布式

0 分布式Java應用

Java工程師必備書單

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

1 大型網站技術架構

Java工程師必備書單

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

2 大型分布式網站架構設計與實踐

Java工程師必備書單

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

3 分布式服務架構原理與實踐

Java工程師必備書單

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

4 大型網站系統與Java中間件開發實踐

Java工程師必備書單

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

5 從Paxos到Zookeeper分布式一緻性原理與實踐

Java工程師必備書單

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

6 大規模分布式存儲系統

Java工程師必備書單

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

雲計算

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

1 OpenStack設計與實作

Java工程師必備書單

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

2 docker入門與實踐

Java工程師必備書單

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

3 kubenetes權威指南

Java工程師必備書單

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

大資料

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

1 大資料技術原理與應用

Java工程師必備書單

作為大資料方面的一本教材,廈大教授寫的這本書還是非常贊的,從最基礎的原理方面講解了Hadoop的生态系統,并且把每個元件的原理都講得比較清楚,另外也加入了spark,storm等内容,可以說是大資料入門非常好的一本書了。

2 Hadoop實戰

Java工程師必備書單

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

3 Hadoop權威指南

Java工程師必備書單

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

其他:

1 Git權威指南

Java工程師必備書單

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

2 重構

Java工程師必備書單

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

3 - n

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

微信公衆号【黃小斜】大廠程式員,網際網路行業新知,終身學習踐行者。關注後回複「Java」、「Python」、「C++」、「大資料」、「機器學習」、「算法」、「AI」、「Android」、「前端」、「iOS」、「考研」、「BAT」、「校招」、「筆試」、「面試」、「面經」、「計算機基礎」、「LeetCode」 等關鍵字可以擷取對應的免費學習資料。 

                     ​