1. 程式人生 > >Java工程師書單(初級,中級,高階)

Java工程師書單(初級,中級,高階)

簡介

怎樣學習才能從一名Java初級程式設計師成長為一名合格的架構師,或者說一名合格的架構師應該有怎樣的技術知識體系,這是不僅一個剛剛踏入職場的初級程式設計師也是工作一兩年之後開始迷茫的程式設計師經常會問到的問題

筆者完全從自身的自學經歷出發,以初學者的視角挑選出如下的這些圖書。

初級書單

《編寫高質量程式碼——改善Java程式的151個建議》

Java工程師書單(初級、中級、高階)

這是一本值得入門java的人放在床頭的書。此書內容廣泛、要點翔實。大多數優秀程式設計書籍都需要看老外寫的,但是這本講述提高java程式設計水平的書還是不錯的,適合具有基本java程式設計能力的人。

對於程式猿而言,工作久了,就感覺程式設計習慣對一個人很重要。習慣好,不僅工作效率告,而且bug少。這本書對提高個人的好的程式設計習慣很有幫助。

《Java程式設計師修煉之道》

Java工程師書單(初級、中級、高階)

此書涵蓋了Java7的新特性和Java開發的關鍵技術,對當前大量開源技術並存,多核處理器、併發以及海量資料給Java開發帶來的挑戰作出了精闢的分析,提供了實踐前沿的深刻洞見,涉及依賴注入、現代併發、類與位元組碼、效能調優等底層概念的剖析。

書中的道理很淺顯,可是對於菜鳥卻是至理名言。基本為你勾勒了一個成熟軟體程式設計師專家所需要的所有特性。我自覺地獲益頗多,其中很多事情,要麼在當時是自己沒有想到的,要麼是發生了,自己沒有注意的等等。給我影響很大。

《Java8實戰》

Java工程師書單(初級、中級、高階)

本書全面介紹了Java 8 這個里程碑版本的新特性,包括Lambdas、流和函數語言程式設計。有了函式式的程式設計特性,可以讓程式碼更簡潔,同時也能自動化地利用多核硬體。全書分四個部分:基礎知識、函式式資料處理、高效Java 8 程式設計和超越Java 8,清晰明瞭地向讀者展現了一幅Java 與時俱進的現代化畫卷。

這是瞭解lambda 表示式最好的入門書籍了。在網上也學習了lambda 表示式,感覺會用,就是不知道原理,稍微換一下場景又不會用了。這本書絕對是學習java8新特性的最好書籍。

《有效的單元測試》

Java工程師書單(初級、中級、高階)

此書由敏捷技術實踐專家撰寫,系統且深入地闡釋單元測試用於軟體設計的工具、方法、原則和佳實踐;深入剖析各種測試常見問題,包含大量實踐案例,可操作性強,能為使用者高效編寫測試提供系統實踐指南。

介紹了單元測試的各個方面,TDD、test double、測試的壞味道、可測試的設計等等,每個主題需要深入的話,還需要配合其它書籍和實踐,非常適合入門單元測試。書中例子非常全面,看完對使用 Junit 進行單元測試會有一個大的長進,而且用java語言編寫,內容很新。

《Java核心技術:卷2 高階特性》

Java工程師書單(初級、中級、高階)

此書系統全面地講解Java語言的核心概念、語法、重要特性和開發方法。本書全面覆蓋Java技術的高階主題,包括流與檔案、XML、網路、資料庫程式設計、國際化等,詳細描述了圖形與GUI程式設計,還涉及安全、遠端方法、註解處理、本地方法等。本書對Java技術的闡述精確到位,敘述方式深入淺出,幷包含大量示例程式碼,能夠幫助讀者充分理解Java語言並靈活應用。

卷二雖然是高階特性,但是其中的io、檔案系統、正則表示式、網路、jdbc也是日常程式設計中非常常用的元件,不可不看。此書是一本非常輕鬆的Java技術書,不僅原文寫得好,譯者翻譯的也非常流暢。在我對翻譯的書絕對無望的時候,它力挽狂瀾的告訴我,事情還沒有壞到這個地步。

《程式碼整潔之道》

Java工程師書單(初級、中級、高階)

程式碼質量與其整潔度成正比。乾淨的程式碼,既在質量上較為可靠,也為後期維護、升級奠定了良好基礎。作為程式設計領域的佼佼者,本書作者給出了一系列行之有效的整潔程式碼操作實踐。這些實踐在本書中體現為一條條規則(或稱“啟示”),並輔以來自現實專案的正、反兩面的範例。只要遵循這些規則,就能編寫出乾淨的程式碼,從而有效提升程式碼質量。

如果每個例程都讓你感到深合己意,那就是整潔程式碼。 如果程式碼讓程式語言看起來像是專為解決那個問題而存在,就可以稱之為漂亮的程式碼。

《資料結構與演算法分析-Java語言描述》

Java工程師書單(初級、中級、高階)

本書是java資料結構與演算法方面的三寶之一,除了這三本其他的已經沒有意義了。這三寶分別是:

* 黑寶書《資料結構與演算法分析java語言描述》mark allen weiss

* 藍寶書《java資料結構和演算法》robert lafore

* 紅寶書《演算法》robert sedgewick

黑寶書勝在公式推理和證明以及演算法的簡潔和精煉,此外習題較多。藍寶書勝在對演算法的深入淺出的講解,演示和舉例,讓艱澀的理論變得很容易理解。紅寶書勝在系出名門斯坦福,演示通俗易懂,內容豐富。有了這三寶,演算法不用愁,學完以後再看《演算法導論》就容易多了。

本書從講解什麼是資料結構開始,延伸至高階資料結構和演算法分析,強調資料結構和問題求解技術。本書的目的是從抽象思維和問題求解的觀點提供對資料結構的實用介紹,試圖包含有關資料結構、演算法分析及其Java實現的所有重要的細節

中級書單

《重構:改善既有程式碼的設計》

Java工程師書單(初級、中級、高階)

重構,絕對是寫程式過程中最重要的事之一。在寫程式之前我們不可能事先了解所有的需求,設計肯定會有考慮不周的地方,而且隨著專案需求的修改,也有可能原來的設計已經被改得面目全非了。更何況,我們很少有機會從頭到尾完成一個專案,基本上都是接手別人的程式碼,我們要做的是重構,從小範圍的重構開始。

重構是設計,設計是art,重構也是art. 一個函式三行只是語不驚人死不休的說法,是對成百上千行程式碼的矯枉過正。 更一個般的看法是一個函式應該寫在一頁紙內。

《Effective Java》

Java工程師書單(初級、中級、高階)

這樣一本書本該早就讀了,然而最近才看完。看完覺得對於一些程式設計規則深層的原理有了一些認識。之前我只是知道這些口口相傳的規則,卻不知道為什麼,在這本書中找到了一些答案。書中涉及到了java程式設計方方面面的規則,包括類、介面、建立物件、類中的函式、函式的引數、異常。

如果你使用剛剛學會的Java做了一個小應用程式,那麼你就可以開始有選擇地看這本書。書中分別對Java的不同特性分章節給予作者本人的建議。如果你還沒有用到其中的某一特性,那麼就沒必要讀相關的章節,跳過去。只有你經歷過了,摔倒過了,困擾過了,你才會與書中的建議產生共鳴

《Java併發程式設計實戰》

Java工程師書單(初級、中級、高階)

本書深入淺出地介紹了Java執行緒和併發,是一本完美的Java併發參考手冊。書中從併發性和執行緒安全性的基本概念出發,介紹瞭如何使用類庫提供的基本併發構建塊,用於避免併發危險、構造執行緒安全的類及驗證執行緒安全的規則,如何將小的執行緒安全類組合成更大的執行緒安全類,如何利用執行緒來提高併發應用程式的吞吐量。

java進階必看,多執行緒的最佳書籍。

《實戰Java高併發程式設計》

Java工程師書單(初級、中級、高階)

此書主要介紹基於Java的並行程式設計基礎、思路、方法和實戰。首先,立足於併發程式基礎,詳細介紹Java中進行並行程式設計的基本方法。第二,進一步詳細介紹JDK中對並行程式的強大支援,幫助讀者快速、穩健地進行並行程式開發。第三,詳細討論有關“鎖”的優化和提高並行程式效能級別的方法和思路。第四,介紹並行的基本設計模式及Java8對並行程式的支援和改進。第五,介紹高併發框架Akka的使用方法。最後,詳細介紹並行程式的除錯方法。

在叢集和分散式環境下,java內建鎖逐漸失去了用武之地,但是鎖和併發的思想還是通用而且值得學習的。看過java併發程式設計實戰以後再讀這本書,每一個知識點都比較精煉而且程式碼示例簡單易懂,沒有晦澀難懂的翻譯詞,手繪圖也有一種親切感。缺點是沒有附原始碼,需要自己去github上找。

《演算法》

Java工程師書單(初級、中級、高階)

個人覺得是我見過的最簡單易懂的演算法入門書籍。以前搜刮過幾本演算法競賽書,但是難度終歸太大。本書使用Java語言實現演算法,配有大量的圖解,沒有一句難懂的話,而且全都是模組化實現。講的都是實用演算法,沒有那些高大上聽著名字就讓人感到很害怕的東西,個人覺得比CLRS實用性要強,更加適合入門的學習。

此書力圖研究當今最重要的計算機演算法並將一些最基礎的技能傳授給廣大求知者。它適合用做電腦科學進階教材,面向已經熟悉了計算機系統並掌握了基本程式設計技能的學生。本書也可用於自學,或是作為開發人員的參考手冊,因為書中實現了許多實用演算法並詳盡分析了它們的效能特點和用途。這本書取材廣泛,很適合作為該領域的入門教材。

《Head First 設計模式》

Java工程師書單(初級、中級、高階)

這是我看過最幽默最搞笑最親切同時又讓我收穫巨大的技術書籍! 森森的膜拜Freeman(s)!Amen! 深入淺出,娓娓道來,有的地方能笑死你!寫得很有趣,圖文並茂,比起四人幫的那本,好懂了不知道多少倍。計算機世界的head first系列基本都是經典。不過只看書學明白設計模式是不可能的,這些只是前人的總結,我們唯有實踐實踐再實踐了。

讀這本書不僅僅是學習知識,而是在學習一種思考的方法,學習一種認知的技巧,學習一種成長的階梯。 總之,用你閒暇的時間來讀這本書,並不亞於你專注的工作或學習。筆者強烈推薦此書,要成長為一名高階程式設計師,設計模式已經是必備技能了。

《Java程式設計思想》

Java工程師書單(初級、中級、高階)

就是一本能夠讓Java程式設計師輕鬆面對挑戰,並最終取得勝利的經典書籍。本書深入淺出、循序漸進地把我們領入Java的世界,讓我們在不知不覺中就學會了用Java的思想去考慮問題、解決問題。本書並不適合Java的初學者,更適合於有經驗的Java程式設計師,這正是本書的魅力所在。但是,書中並沒有涵蓋Java所有的類、介面和方法,因此,如果你希望將它當作Java的字典來使用,那麼顯然就要失望了。

如果你開始覺得自己需要一些程式設計內功了,這本書就開始管用了,作為一本練習內功的基礎書籍。把心靜下來,老老實實打好內功根基,你會發現自己將會不一樣,當然最直接的體現就是工資待遇上的。。從這本書開始,無論是走向架構,多執行緒或者虛擬機器,路都會變得平坦很多。

高階書單

《深入理解Java虛擬機器》

Java工程師書單(初級、中級、高階)

本書是近年來國內出版的唯一一本與Java虛擬機器相關的專著,也是唯一一本同時從核心理論和實際運用這兩個角度去探討Java虛擬機器的著作,不僅理論分析得透徹,而且書中包含的典型案例和最佳實踐也極具現實指導意義。

我對本書最大的感受就是:全面。作為一個剛開始接觸 JVM 的人,我感覺本書基本上把 JVM 中所涉及的概念涵蓋到。在閱讀的過程中還有一種感受:如果作者不介紹某個內容,我在參考 Java 虛擬機器的文件的時候可能不會考慮到有這樣的因素存在,或者不會那麼容易理解。作為一本全面的引人入門的書籍,這本書實在是很贊。

《Java效能權威指南》

Java工程師書單(初級、中級、高階)

市面上介紹Java的書有很多,但專注於Java效能的並不多,能遊刃有餘地展示Java效能優化難點的更是鳳毛麟角,本書即是其中之一。通過使用JVM和Java平臺,以及Java語言和應用程式介面,本書詳盡講解了Java效能調優的相關知識,幫助讀者深入理解Java平臺效能的各個方面,使程式如虎添翼。

為了理解gc那塊看過來的,cms個人感覺講的挺好的,和《深入理解java虛擬機器》垃圾回收部分互為補充吧。有一點覺得挺贊:翻譯的比較好,沒有那種翻譯腔!

《深入分析Java Web技術內幕》

Java工程師書單(初級、中級、高階)

這本書的整體感覺不錯,基本上是從基本原理介紹出發的。適合網際網路技術愛好者閱讀,也可以作為技術架構參考書籍。本書不僅是介紹了基本知識和原理,很多東西作者是站在系統架構的原理出發的,所以對愛好系統架構的讀者是很有幫助的。本書的主要特點是“圖文並茂,有圖,有事實,有真相”,閱讀起來不枯燥,晦澀。

入行java兩三年,說會但是對底層還是一知半解,遇到系統級問題就還是不知道怎麼解決,所以要看深層次的書了,本書就是。

《大型網站系統與Java中介軟體實踐》

Java工程師書單(初級、中級、高階)

此書圍繞大型網站和支撐大型網站架構的 Java 中介軟體的實踐展開介紹。從分散式系統的知識切入,讓讀者對分散式系統有基本的瞭解;然後介紹大型網站隨著資料量、訪問量增長而發生的架構變遷;接著講述構建 Java 中介軟體的相關知識;之後的幾章都是根據筆者的經驗來介紹支撐大型網站架構的 Java 中介軟體系統的設計和實踐

通過這本書可以學習到大量構建大型網站系統的核心技 術,以及支撐大型網站的Java中介軟體的必備知識。作者在超大型電子商務網站的多年實戰經驗使得本書的內容極具價值。 如果你所在的技術團隊正在因面對大型網站而一籌莫展,或 許你可以從這本書中得到啟發。另外,如果想成為Java技術架 構師,那麼你也不應錯過此書。

《大型網站技術架構:核心原理與案例分析》

Java工程師書單(初級、中級、高階)

此書通過梳理大型網站技術發展歷程,剖析大型網站技術架構模式,深入講述大型網際網路架構設計的核心原理,並通過一組典型網站技術架構設計案例,為讀者呈現一幅包括技術選型、架構設計、效能優化、Web安全、系統釋出、運維監控等在內的大型網站開發全景檢視。

本書從多個層面說明了如何構建一個高可用、高效能、高可擴充套件性的網站系統,並結合了阿里巴巴及其他網際網路企業先進的架構實踐經驗進行案例分析,講述非常全面且具指導意義。本書從網站的架構設計、快速開發、高效部署、業務監控、服務治理、運維管理等多個角度描述了架構設計的相關重點,涉及的核心技術包括前端優化、CDN、反向代理、快取、訊息佇列、分散式儲存、分散式服務、NoSQL儲存、搜尋、監控、安全等一系列保證大型網站安全可靠執行的關鍵技術點。本書還提供了網站如何從小型網站伴隨使用者成長,逐步擴充套件到大型網站的架構演進思路,是網際網路架構師們不可多得的一本技術參考書。

《企業應用架構模式》

Java工程師書單(初級、中級、高階)

招式套路可以千變萬化,紮實深厚的“內功”卻是始終如一!雖然企業應用涉及的軟體技術不斷翻新,但是基本的架構及設計思想卻沒有太多變化。將以前行之有效的設計思路和方法加以適當調整,並應用到當前的問題上,是最高效的做法。在一組專家級合作者的幫助下,Martin將40多種經常出現的解決方案轉化成模式,最終融會成這本“內功心法”。在仔細研讀、用心揣摩本書之後,希望它能夠幫助你應對任何一種企業應用平臺,駕馭任何一種企業應用技術—無論是現在的技術還是未來的技術。

開始看這本書時,覺得講的太抽象,草草的翻了一遍,很多東西只有一個淺淺的一個印象。後來在用hibernate的時候,偶爾又重新翻開這本書。書裡講的很多東西,都在hibernate裡面有體現。尤其是講關係對映那章,在hibernate文件裡面都只講怎麼做,不講為什麼,在書裡講的很清楚,看了很有收穫。

《Expert One-on-One J2EE Development without EJB》

Java工程師書單(初級、中級、高階)

選擇一種架構、一種技術的依據是什麼?Rod Johnson認為,應該是基於實踐的證據、來自歷史專案或親自試驗的經驗,而不是任何形式的偶像崇拜或者門戶之見。書中談到了企業應用方方面面的問題和解決辦法,而這些方案無一不是這種“循證方法”的產物。除了把這些方案交給讀者,Rod Johnson通過這本書希望傳達的、更為重要的資訊正是“循證”的工作方式——那原本就應該是程式設計師的工作方式。

對Spring熟悉或者希望深入學習Spring框架精髓的工程師而言,本書必看,因為它就是是Spring框架發展的基石。

總結

最後,各位讀者在閱讀本系列書單的同時,也可以留言告訴筆者你認為的Java技術相關的好書籍,我會根據大家的留言情況及時更新本系列書單的內容。當然,如果不是Java相關,只要是咱們程式設計師喜歡或需要的其他有趣、有料的好書也可以。