天天看點

JAVA必看書籍!程式員最應該讀的圖書(中譯版)

作為Java程式員來說,最痛苦的事情莫過于可以選擇的範圍太廣,可以讀的書太多,往往容易無所适從。我想就我自己讀過的技術書籍中挑選出來一些,按照學習的先後順序,推薦給大家,特别是那些想不斷提高自己技術水準的Java程式員們。 

一、Java程式設計入門類 

對于沒有Java程式設計經驗的程式員要入門,随便讀什麼入門書籍都一樣,這個階段需要你快速的掌握Java基礎文法和基本用法,宗旨就是“囫囵吞棗不求甚解”,先對Java熟悉起來再說。用很短的時間快速過一遍Java文法,連懵帶猜多寫寫代碼,要“知其然”。 

1、《Java程式設計思想》 

在有了一定的Java程式設計經驗之後,你需要“知其是以然”了。這個時候《Java程式設計思想》是一本讓你知其是以然的好書,它對于基本的面向對象知識有比較清楚的交待,對Java基本文法,基本類庫有比較清楚的講解,可以幫你打一個良好的Java程式設計基礎。這本書的缺點是實在太厚,也比較羅嗦,不适合現代人快節奏學習,是以看這本書要懂得取舍,不是每章每節都值得一看的,挑重點的深入看就可以了。 

2、《Agile Java》中文版 

這本書是出版社送給我的,我一拿到就束之高閣,放在書櫃一頁都沒有翻過,但是前兩天整理書櫃的時候,拿出來一翻,竟然發現這絕對是一本好書!這本書一大特點是以單元測試和TDD來貫穿全書的,在教你Java各種重要的基礎知識的過程中,潛移默化的影響你的程式設計思維走向靈活,走向TDD。另外這本書成書很新,以JDK5.0的文法為基礎講解,要學習JDK5.0的新文法也不錯。還有這本書對于内容取舍也非常得當,Java語言畢竟類庫龐大,可以講的内容太多,這本書選擇的内容以及内容的多寡都很得當,可以讓你以最少的時間掌握Java最重要的知識,順便培養出來優秀的程式設計思路,真是一本不可多得的好書。 

雖然作者自己把這本書定位在入門級别,但我不确定這本書用來入門是不是稍微深了點,我自己也準備有空的時候翻翻這本書,學習學習。 

3,《你必須知道的261個java語言問題》

這本書在網上可以下載下傳到。講解了很多知識點。全書采用問答的形式。對于初級中級的程式設計人士來說,值得學習參考!

二、Java程式設計進階類 

打下一個良好的Java基礎,還需要更多的實踐經驗積累,我想沒有什麼捷徑。有兩本書值得你在程式設計生涯的這個階段閱讀,培養良好的程式設計習慣,提高你的代碼品質。 

1、《重構 改善既有代碼的設計》 

這本書名氣很大,不用多介紹,可以在閑暇的時候多翻翻,多和自己的實踐互相印證。這本書對你産生影響是潛移默化的。 

2、《測試驅動開發 by Example》 

本書最大特點是很薄,看起來沒有什麼負擔。你可以找一個周末的下午,一邊看,一邊照做,一個下午就把書看完,這本書的所有例子跑完了。這本書的作用是通過實戰讓你培養TDD的思路。 

三、Java架構師之路 

到這個階段,你應該已經非常娴熟的運用Java程式設計,而且有了一個良好的程式設計思路和習慣了,但是你可能還缺乏對應用軟體整體架構的把握,現在就是你邁向架構師的第一步。 

1、《Expert One-on-One J2EE Design and Development》 

這本書是Rod Johnson的成名著作,非常經典,從這本書中的代碼誕生了springframework。但是好像這本書沒有中譯本。 

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

這本書由gigix組織翻譯,多位業界專家參與,雖然署名譯者是JavaEye,其實JavaEye出力不多,實在是忝居譯者之名。 

以上兩本書都是Rod Johnson的經典名著,Java架構師的必讀書籍。在我所推薦的這些書籍當中,是我看過的最仔細,最認真的書,我當時讀這本書幾乎是廢寝忘食的一氣讀完的,有小時候挑燈夜讀金庸武俠小說的勁頭,書中所講内容和自己的經驗知識一一印證,又被無比精辟的總結出來,讀完這本書以後,我有種被打通經脈,功力爆增的感覺。 

但是後來我看過一些其他人的評價,似乎閱讀體驗并沒有我那麼high,也許是因為每個人的知識積累和經驗不同導緻的。我那個時候剛好是經驗知識積累已經足夠豐富,但是還沒有系統的整理成型,讓這本書一梳理,立刻形成完整的知識體系了。 

3、《企業應用架構模式》 

Martin的又一本名著,但這本書我隻是泛泛的看了一遍,并沒有仔細看。這本書似乎更适合做架構的人去看,例如如果你打算自己寫一個ORM的話,這本書是一定要看的。但是做應用的人,不看貌似也無所謂,但是如果有空,我還是推薦認真看看,會讓你知道架構為什麼要這樣設計,這樣你的層次可以晉升到架構設計者的角度去思考問題。Martin的書我向來都是推崇,但是從來都沒有像Rod Johnson的書那樣非常認真去看。 

4、《靈活軟體開發原則、模式與實踐》 

Uncle Bob的名著,靈活的經典名著,這本書比較特别,與其說是講軟體開發過程的書,不如說講軟體架構的書,本書用了很大篇幅講各種面向對象軟體開發的各種模式,個人以為看了這本書,就不必看GoF的《設計模式》了。 

四、軟體開發過程 

了解軟體開發過程不單純是提高程式員個人的良好程式設計習慣,也是增強團隊協作的基礎。 

1、《UML精粹》 

UML其實和軟體開發過程沒有什麼必然聯系,卻是軟體團隊協作溝通,撰寫軟體文檔需要的工具。但是UML真正實用的圖不多,看看這本書已經足夠了,完全沒有必要去啃《UML使用者指南》之類的東西。要提醒大家的是,這本書的中譯本翻譯的非常之爛,建議有條件的看英文原版。 

2、《解析極限程式設計 擁抱變化》XP 

這是Kent Beck名著的第二版,中英文對照。沒什麼好說的,必讀書籍。 

3、《統一軟體開發過程》UP 

其實UP和靈活并不一定沖突,UP也非常強調疊代,測試,但是UP強調的文檔和過程驅動卻是靈活所不取的。不管怎麼說,UP值得你去讀,畢竟在中國真正接受靈活的企業很少,你還是需要用UP來武裝一下自己的,哪怕是披着UP的XP。 

4、《靈活模組化》AM 

Scott Ambler的名著,這本書非常的progmatic,告訴你怎麼既靈活又UP,把靈活和UP統一起來了,又提出了很多progmatic的建議和做法。你可以把《解析極限程式設計擁抱變化》、《統一軟體開發過程》和《靈活模組化》這三本書放在一起讀,看XP和UP的不同點,再看AM是怎麼統一XP和UP的,把這三種理論融為一爐,形成自己的理論體系,那麼你也可以去寫書了。 

五、軟體項目管理 

如果你突然被上司提拔為項目經理,而你完全沒有項目管理經驗,你肯定會心裡沒底;如果你覺得自己管理項目不善,很想改善你的項目管理能力,那麼去考PMP肯定是遠水不解近渴的。 

1、《快速軟體開發》 

這也是一本名著。可以這樣說,有本書在手,你就有了一個項目管理的進階參謀給你出謀劃策,再也不必擔心自己不能勝任的問題了。這本書不是講管理的理論的,在實際的項目管理中,講這些理論是不解決問題的,這本書有點類似于“軟體項目點子大全”之類的東西,列舉了種種軟體項目當中面臨的各種問題,以及應該如何解決問題的點子,你隻需要稍加變通,找方抓藥就行了。 

六、其它

1,《我程式設計我快樂》

教你怎麼做一名合格的快樂的程式員。

2,《淡定的人生不寂寞》

讓你懂得人生的不少哲理。

七、總結 

在這份推薦閱讀書籍的名單中,我沒有列舉流行的軟體架構類學習書籍,例如Struts,Hibernate,Spring之類,也沒有列舉AJAX方面的書籍。是因為這類書籍容易過時,而上述的大半書籍的生命周期都足夠長,值得你去購買和收藏。

下面是 Java Inside 上推薦的十本Java書籍( 文章來源 )      

JAVA必看書籍!程式員最應該讀的圖書(中譯版)

1)Java Language Specification,Third Edition (by James Gosling)         本書由Java技術的發明者編寫,是Java TM程式設計語言的權威性技術指南。如果你想知道語言之構造的精确含義,本書是最好的資源。         中文版連結:《 Java程式設計規範 》

英文版連結:《 The Java Language Specification (3rd Edition) 》            

JAVA必看書籍!程式員最應該讀的圖書(中譯版)

2) Effective Java ,Second Edition (by Joshua Bloch)     本書介紹了在Java程式設計中78條極具實用價值的經驗規則,這些經驗規則涵蓋了大多數開發人員每天所面臨的問題的解決方案。通過對Java平台設計專家所使用的技術的全面描述,揭示了應該做什麼,不應該做什麼才能産生清晰、健壯和高效的代碼。.   本書中的每條規則都以簡短、獨立的小文章形式出現,并通過例子代碼加以進一步說明。本書内容全面,結構清晰,講解詳細。可作為技術人員的參考用書。...   中文版連結:《 Effective Java 第二版 》英文版連結:《 Effective Java (2nd Edition) 》              

JAVA必看書籍!程式員最應該讀的圖書(中譯版)

 3) Java Concurrency in Practice (by Brian Goetz)    随着多核處理器的普及,使用并發成為建構高性能應用程式的關鍵。Java 5以及6在開發并發程式取得了顯著的進步,提高了Java虛拟機的性能,提高了并發類的可伸縮性,并加入了豐富的新并發建構塊。在本書中,這些便利工具的創造者不僅解釋了它們究竟如何工作、如何使用,同時,還闡釋了創造它們的原因,及其背後的設計模式。 本書既能夠成為讀者的理論支援,又可以作為建構可靠的,可伸縮的,可維護的并發程式的技術支援。本書并不僅僅提供并發API的清單及其機制,本書還提供了設計原則,模式和思想模型,使我們能夠更好地建構正确的,性能良好的并發程式。   本書的讀者是那些具有一定Java程式設計經驗的程式員、希望了解Java SE 5,6線上程技術上的改進和新特性的程式員,以及Java和并發程式設計的愛好者。   中文版連結:《 JAVA并發程式設計實踐 》

英文版連結:《 Java Concurrency in Practice 》       

JAVA必看書籍!程式員最應該讀的圖書(中譯版)

 4)Java Puzzles: Traps, Pitfalls and Corner Cases (by Joshua Bloch) Java教父的又一經典名著-Java Puzzlers,Amazon五星圖書。認為你到底有多了解Java?你是一個代碼神探嗎?你是否曾經花費過數天時間去追蹤一個由Java或其類庫的陷阱和缺陷而導緻的bug?你喜歡智力測驗嗎?那麼這本書正好适合你!     中文版連結:《 JAVA解惑 》

英文版連結:《 Java Puzzlers : Traps, Pitfalls, and Corner Cases 》            

JAVA必看書籍!程式員最應該讀的圖書(中譯版)

 5) Thinking in Java (by Bruce Eckel) 本書赢得了全球程式員的廣泛贊譽,即使是最晦澀的概念,在Bruce Eckel的文字親和力和小而直接的程式設計示例面前也會化解于無形。從Java的基礎文法到最進階特性(深入的面向對象概念、多線程、自動項目建構、單元測試和調試等),本書都能逐漸指導你輕松掌握。從本書獲得的各項大獎以及來自世界各地的讀者評論中,不難看出這是一本經典之作。本書的作者擁有多年教學經驗,對C、C++以及Java語言都有獨到、深入的見解,以通俗易懂及小而直接的示例解釋了一個個晦澀抽象的概念。本書共22章,包括操作符、控制執行流程、通路權限控制、複用類、多态、接口、通過異常處理錯誤、字元串、泛型、數組、容器深入研究、Java I/O系統、枚舉類型、并發以及圖形化使用者界面等内容。這些豐富的内容,包含了Java語言基礎文法以及進階特性,适合各個層次的Java程式員閱讀,同時也是高等院校講授面向對象程式設計語言以及Java語言的絕佳教材和參考書。 中文版連結:《 JAVA程式設計思想(第4版) 》

英文版連結:《 Thinking in Java (4th Edition) 》          

JAVA必看書籍!程式員最應該讀的圖書(中譯版)

 6) Better, faster, lighter Java (by Justin Gehtland, Bruce A. Tate)   Java的開發者正深陷于複雜性的泥沼中而無法自拔。我們的經驗和能力正接近極限,程式員為了編寫支援所選架構的程式所花的時間比解決真正問題的時間要多得多。我們不禁要問,有必要把Java搞得這麼複雜嗎?.   答案是否定的。本書給你指引了一條出路。無論是維護應用程式,還是從頭開始設計,你都能夠超越成規,并大幅精簡基本架構、開發過程和最終代碼。你能重新掌握一度失控的J2EE應用程式。..   在本書中,原作者Bruce A.Tate與Justin Gehtland将循序漸進、娓娓道來。首先,他們列出了五項基本法則。他們展示了如何建構簡單、解耦的代碼,并告訴你如何選擇技術。他們還對兩種被廣泛運用的開源程式如何迎合這些概念進行了剖析。最後,作者還将利用這些基本概念建構一個簡單但内涵豐富的應用程式來解決現實世界中所遇到的問題。中文版連結:《 輕快的JAVA 》

英文版連結:《 Better, Faster, Lighter Java  》            

JAVA必看書籍!程式員最應該讀的圖書(中譯版)

 7) Core Java (vol. 1, 2) (by Cay S. Horstmann, Gary Cornell)   《Java核心技術》出版以來一直暢銷不衰,深受讀者青睐,每個新版本都盡可能快地跟上Java開發工具箱發展的步伐,而且每一版都重新改寫了部分内容,以便适應Java的最新特性。本版也不例外,它反映了Java SE 6的新特性。全書共14章,包括Java基本的程式結構、對象與類、繼承、接口與内部類、圖形程式設計、事件處理、Swing使用者界面元件、部署應用程式和Applet、異常日志斷言和調試、泛型程式設計、集合以及多線程等内容。   全書對Java技術的闡述精确到位,叙述方式深入淺出,并包含大量示例,進而幫助讀者充分了解Java語言以及Java類庫的相關特性。     中文版連結:《JAVA核心技術, 卷1 , 卷2 》

英文版連結:《 Core Java, Volume I-Fundamentals (8th Edition) , Core Java, Vol. 2: Advanced Features, 8th Edition 》          

JAVA必看書籍!程式員最應該讀的圖書(中譯版)

 8) The Java Virtual Machine Specification (by Tim Linholm, Frank Yellin)   如果你需要了解Java虛拟機的byte code,或者是一些編譯方面的東西,這本書絕對讓你得償所願。其不但包含了機器碼的規範說明,同時它也是Java編譯器和運作環境的規格說明書。     中文版連結:《無》

英文版連結:《 The Java Virtual Machine Specification (2nd Edition) 》        9)Robust Java: Exception Handling, Testing, and Debugging(by Stephen Stelting)    

JAVA必看書籍!程式員最應該讀的圖書(中譯版)

處理異常涉及開發、設計和體系結構等方面的知識。本書共分3個部分。

  第Ⅰ部分介紹Java異常的産生機理和用法,介紹一些最佳實踐,講述各類異常處理使用的一般API和技術。

  第Ⅱ部分闡述可測試性設計,介紹故障模式分析,讨論常見API的異常及起因,分析J2EE體系結構和分布式API的異常模式。

  第Ⅲ部分讨論在軟體開發周期執行異常和錯誤處理,分析軟體體系結構、設計模式、測試和調試,列舉成熟的設計模式,介紹處理政策對系統體系結構的影響,講述如何建構健壯系統。     中文版連結:《 ROBUST JAVA中文版-JAVA異常處理、測試與調試 》

英文版連結:《 Robust Java Exception Handling,Testing and Debugging 》         10)Java Code Convention     最後一本當然是Java編碼規範,這是由Sun公司官方出品的。這也是每個程式員為了得供程式的易讀性,可維護性需要知道的。 http://java.sun.com/docs/codeconv/CodeConventions.pdf

程式員最應該讀的圖書(中譯版)

來自StackOverflow上的投票

http://stackoverflow.com/questions/1711/what-is-the-single-most-influential-book-every-programmer-should-read

    

1. 代碼大全(第2版)

作者 : [美] 史蒂夫·邁克康奈爾

出版社 : 電子工業出版社

JAVA必看書籍!程式員最應該讀的圖書(中譯版)

2. 程式員修煉之道

作者 : Andrew Hunt/David Thomas

出版社 : 電子工業出版社

JAVA必看書籍!程式員最應該讀的圖書(中譯版)

3. 計算機程式的構造和解釋

作者 : Harold Abelson/Gerald Jay Sussman/Julie Sussman

出版社 : 機械工業出版社

JAVA必看書籍!程式員最應該讀的圖書(中譯版)

4. C程式設計語言

作者 : 克尼漢

出版社 : 機械工業出版社

JAVA必看書籍!程式員最應該讀的圖書(中譯版)

5. 算法導論

作者 : [美] Thomas H.Cormen/Charles E.Leiserson/Ronald L.Rivest/Clifford Stein

出版社 : 機械工業出版社

JAVA必看書籍!程式員最應該讀的圖書(中譯版)

6. 重構

作者 : Martin Fowler

出版社 : 人民郵電出版社

JAVA必看書籍!程式員最應該讀的圖書(中譯版)

7. 人月神話

作者 : 弗雷德裡克.布魯克斯

出版社 : 清華大學出版社

JAVA必看書籍!程式員最應該讀的圖書(中譯版)

8. 設計模式

作者 : [美] Erich Gamma/Richard Helm/Ralph Johnson/John Vlissides

出版社 : 機械工業出版社

JAVA必看書籍!程式員最應該讀的圖書(中譯版)

29. 計算機程式設計藝術(第1卷)

作者 : [美] Donald E. Knuth

出版社 : 清華大學出版社

JAVA必看書籍!程式員最應該讀的圖書(中譯版)

10. 編譯原理

作者 : Alfred V. Aho/Monica S.Lam/Ravi Sethi/Jeffrey D. Ullman

出版社 : 機械工業出版社

JAVA必看書籍!程式員最應該讀的圖書(中譯版)

11. Head First 設計模式(中文版)

出版社 : 中國電力出版社

JAVA必看書籍!程式員最應該讀的圖書(中譯版)

12. 哥德爾、艾舍爾、巴赫

作者 : [美] 侯世達

出版社 : 商務印書館

JAVA必看書籍!程式員最應該讀的圖書(中譯版)

13. Effective C++

作者 : Scott Meyers

出版社 : 電子工業出版社

JAVA必看書籍!程式員最應該讀的圖書(中譯版)

14. More Effective C++中文版

作者 : 邁耶斯

出版社 : 中國電力出版社

JAVA必看書籍!程式員最應該讀的圖書(中譯版)

15. 程式設計珠玑

作者 : Jon Bentley

出版社 : 人民郵電出版社

JAVA必看書籍!程式員最應該讀的圖書(中譯版)

16. 萬裡任禅遊

作者 : (美)羅伯特·M·波西格

出版社 : 重慶出版社

JAVA必看書籍!程式員最應該讀的圖書(中譯版)

17. 編碼

作者 : [美] 佩措爾德 (Charles Petzold)

出版社 : 電子工業出版社

JAVA必看書籍!程式員最應該讀的圖書(中譯版)

18. 修改代碼的藝術

作者 : Michael Feathers

出版社 : 人民郵電出版社

JAVA必看書籍!程式員最應該讀的圖書(中譯版)

19. 人件

作者 : Tom DeMarco/Timothy Lister

出版社 : 清華大學

JAVA必看書籍!程式員最應該讀的圖書(中譯版)

20. 代碼整潔之道

作者 : 馬丁

出版社 : 人民郵電出版社

JAVA必看書籍!程式員最應該讀的圖書(中譯版)

2011-03-01 18:14:03添加 21. 程式設計人生

作者 : Peter Seibel

出版社 : 人民郵電出版社