做爲Java程序員來講,最痛苦的事情莫過於能夠選擇的範圍太廣,能夠讀的書太多,每每容易無所適從。我想就我本身讀過的技術書籍中挑選出來一些,按照學習的前後順序,推薦給你們,特別是那些想不斷提升本身技術水平的Java程序員們。
1、Java編程入門類
對於沒有Java編程經驗的程序員要入門,隨便讀什麼入門書籍都同樣,這個階段須要你快速的掌握Java基礎語法和基本用法,宗旨就是「囫圇吞棗不求甚解」,先對Java熟悉起來再說。用很短的時間快速過一遍Java語法,連懵帶猜多寫寫代碼,要「知其然」。
一、《Java編程思想》
在有了必定的Java編程經驗以後,你須要「知其因此然」了。這個時候《Java編程思想》是一本讓你知其因此然的好書,它對於基本的面向對象知識有比較清楚的交待,對Java基本語法,基本類庫有比較清楚的講解,能夠幫你打一個良好的Java編程基礎。這本書的缺點是實在太厚,也比較羅嗦,不適合現代人快節奏學習,所以看這本書要懂得取捨,不是每章每節都值得一看的,挑重點的深刻看就能夠了。
二、《Agile Java》中文版
這本書是出版社送給個人,我一拿到就束之高閣,放在書櫃一頁都沒有翻過,可是前兩天整理書櫃的時候,拿出來一翻,居然發現這絕對是一本好書!這本書一大特色是以單元測試和TDD來貫穿全書的,在教你Java各類重要的基礎知識的過程當中,潛移默化的影響你的編程思惟走向敏捷,走向TDD。另外這本書成書很新,以JDK5.0的語法爲基礎講解,要學習JDK5.0的新語法也不錯。還有這本書對於內容取捨也很是得當,Java語言畢竟類庫龐大,能夠講的內容太多,這本書選擇的內容以及內容的多寡都很得當,可讓你以最少的時間掌握Java最重要的知識,順便培養出來優秀的編程思路,真是一本不可多得的好書。
雖然做者本身把這本書定位在入門級別,但我不肯定這本書用來入門是否是稍微深了點,我本身也準備有空的時候翻翻這本書,學習學習。
java
3,《你必須知道的261個java語言問題》程序員
這本書在網上能夠下載到。講解了不少知識點。全書採用問答的形式。對於初級中級的編程人士來講,值得學習參考!
web
2、Java編程進階類
打下一個良好的Java基礎,還須要更多的實踐經驗積累,我想沒有什麼捷徑。有兩本書值得你在編程生涯的這個階段閱讀,培養良好的編程習慣,提升你的代碼質量。
一、《重構 改善既有代碼的設計》
這本書名氣很大,不用多介紹,能夠在閒暇的時候多翻翻,多和本身的實踐相互印證。這本書對你產生影響是潛移默化的。
二、《測試驅動開發 by Example》
本書最大特色是很薄,看起來沒有什麼負擔。你能夠找一個週末的下午,一邊看,一邊照作,一個下午就把書看完,這本書的全部例子跑完了。這本書的做用是經過實戰讓你培養TDD的思路。
3、Java架構師之路
到這個階段,你應該已經很是嫺熟的運用Java編程,並且有了一個良好的編程思路和習慣了,可是你可能還缺少對應用軟件總體架構的把握,如今就是你邁向架構師的第一步。
一、《Expert One-on-One J2EE Design and Development》
這本書是Rod Johnson的成名著做,很是經典,從這本書中的代碼誕生了springframework。可是好像這本書沒有中譯本。
二、《Expert One-on-One J2EE Development without EJB》
這本書由gigix組織翻譯,多位業界專家參與,雖然署名譯者是JavaEye,其實JavaEye出力很少,實在是忝居譯者之名。
以上兩本書都是Rod Johnson的經典名著,Java架構師的必讀書籍。在我所推薦的這些書籍當中,是我看過的最仔細,最認真的書,我當時讀這本書幾乎是廢寢忘食的一氣讀完的,有小時候挑燈夜讀金庸武俠小說的勁頭,書中所講內容和本身的經驗知識一一印證,又被無比精闢的總結出來,讀完這本書之後,我有種被打通經脈,功力爆增的感受。
可是後來我看過一些其餘人的評價,彷佛閱讀體驗並無我那麼high,也許是由於每一個人的知識積累和經驗不一樣致使的。我那個時候恰好是經驗知識積累已經足夠豐富,可是尚未系統的整理成型,讓這本書一梳理,馬上造成完整的知識體系了。
三、《企業應用架構模式》
Martin的又一本名著,但這本書我只是泛泛的看了一遍,並無仔細看。這本書彷佛更適合作框架的人去看,例如若是你打算本身寫一個ORM的話,這本書是必定要看的。可是作應用的人,不看貌似也無所謂,可是若是有空,我仍是推薦認真看看,會讓你知道框架爲何要這樣設計,這樣你的層次能夠晉升到框架設計者的角度去思考問題。Martin的書我向來都是推崇,可是歷來都沒有像Rod Johnson的書那樣很是認真去看。
四、《敏捷軟件開發原則、模式與實踐》
Uncle Bob的名著,敏捷的經典名著,這本書比較特別,與其說是講軟件開發過程的書,不如說講軟件架構的書,本書用了很大篇幅講各類面向對象軟件開發的各類模式,我的覺得看了這本書,就沒必要看GoF的《設計模式》了。
4、軟件開發過程
瞭解軟件開發過程不單純是提升程序員我的的良好編程習慣,也是加強團隊協做的基礎。
一、《UML精粹》
UML其實和軟件開發過程沒有什麼必然聯繫,倒是軟件團隊協做溝通,撰寫軟件文檔須要的工具。可是UML真正實用的圖很少,看看這本書已經足夠了,徹底沒有必要去啃《UML用戶指南》之類的東西。要提醒你們的是,這本書的中譯本翻譯的很是之爛,建議有條件的看英文原版。
二、《解析極限編程 擁抱變化》XP
這是Kent Beck名著的第二版,中英文對照。沒什麼好說的,必讀書籍。
三、《統一軟件開發過程》UP
其實UP和敏捷並不必定衝突,UP也很是強調迭代,測試,可是UP強調的文檔和過程驅動倒是敏捷所不取的。無論怎麼說,UP值得你去讀,畢竟在中國真正接受敏捷的企業不多,你仍是須要用UP來武裝一下本身的,哪怕是披着UP的XP。
四、《敏捷建模》AM
Scott Ambler的名著,這本書很是的progmatic,告訴你怎麼既敏捷又UP,把敏捷和UP統一塊兒來了,又提出了不少progmatic的建議和作法。你能夠把《解析極限編程擁抱變化》、《統一軟件開發過程》和《敏捷建模》這三本書放在一塊兒讀,看XP和UP的不一樣點,再看AM是怎麼統一XP和UP的,把這三種理論融爲一爐,造成本身的理論體系,那麼你也能夠去寫書了。
5、軟件項目管理
若是你忽然被領導提拔爲項目經理,而你徹底沒有項目管理經驗,你確定會內心沒底;若是你以爲本身管理項目不善,很想改善你的項目管理能力,那麼去考PMP確定是遠水不解近渴的。
一、《快速軟件開發》
這也是一本名著。能夠這樣說,有本書在手,你就有了一個項目管理的高級參謀給你出謀劃策,不再必擔憂本身不能勝任的問題了。這本書不是講管理的理論的,在實際的項目管理中,講這些理論是不解決問題的,這本書有點相似於「軟件項目點子大全」之類的東西,列舉了種種軟件項目當中面臨的各類問題,以及應該如何解決問題的點子,你只須要稍加變通,找方抓藥就好了。
算法
6、其它spring
1,《我編程我快樂》編程
教你怎麼作一名合格的快樂的程序員。
設計模式
2,《淡定的人生不寂寞》
數組
讓你懂得人生的很多哲理。多線程
7、總結
架構
在這份推薦閱讀書籍的名單中,我沒有列舉流行的軟件框架類學習書籍,例如Struts,Hibernate,Spring之類,也沒有列舉AJAX方面的書籍。是由於這類書籍容易過期,而上述的大半書籍的生命週期都足夠長,值得你去購買和收藏。
下面是Java Inside上推薦的十本Java書籍(文章來源)
1)Java Language Specification,Third Edition (by James Gosling)
本書由Java技術的發明者編寫,是Java TM編程語言的權威性技術指南。若是你想知道語言之構造的精確含義,本書是最好的資源。
中文版連接:《Java編程規範》
英文版連接:《The Java Language Specification (3rd Edition)》
2) Effective Java ,Second Edition (by Joshua Bloch)
本書介紹了在Java編程中78條極具實用價值的經驗規則,這些經驗規則涵蓋了大多數開發人員天天所面臨的問題的解決方案。經過對Java平臺設計專家所使用的技術的全面描述,揭示了應該作什麼,不該該作什麼才能產生清晰、健壯和高效的代碼。. 本書中的每條規則都以簡短、獨立的小文章形式出現,並經過例子代碼加以進一步說明。本書內容全面,結構清晰,講解詳細。可做爲技術人員的參考用書。... 中文版連接:《Effective Java 第二版》英文版連接:《Effective Java (2nd Edition)》
3) Java Concurrency in Practice (by Brian Goetz)
隨着多核處理器的普及,使用併發成爲構建高性能應用程序的關鍵。Java 5以及6在開發併發程序取得了顯著的進步,提升了Java虛擬機的性能,提升了併發類的可伸縮性,並加入了豐富的新併發構建塊。在本書中,這些便利工具的創造者不只解釋了它們究竟如何工做、如何使用,同時,還闡釋了創造它們的緣由,及其背後的設計模式。 本書既可以成爲讀者的理論支持,又能夠做爲構建可靠的,可伸縮的,可維護的併發程序的技術支持。本書並不只僅提供併發API的清單及其機制,本書還提供了設計原則,模式和思想模型,使咱們可以更好地構建正確的,性能良好的併發程序。 本書的讀者是那些具備必定Java編程經驗的程序員、但願瞭解Java SE 5,6在線程技術上的改進和新特性的程序員,以及Java和併發編程的愛好者。 中文版連接:《JAVA併發編程實踐》
英文版連接:《Java Concurrency in Practice》
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》
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)》
6) Better, faster, lighter Java (by Justin Gehtland, Bruce A. Tate)
Java的開發者正深陷於複雜性的泥沼中而沒法自拔。咱們的經驗和能力正接近極限,程序員爲了編寫支持所選框架的程序所花的時間比解決真正問題的時間要多得多。咱們不由要問,有必要把Java搞得這麼複雜嗎?. 答案是否認的。本書給你指引了一條出路。不管是維護應用程序,仍是從頭開始設計,你都可以超越成規,並大幅精簡基本框架、開發過程和最終代碼。你能從新掌握一度失控的J2EE應用程序。.. 在本書中,原做者Bruce A.Tate與Justin Gehtland將按部就班、娓娓道來。首先,他們列出了五項基本法則。他們展現瞭如何構建簡單、解耦的代碼,並告訴你如何選擇技術。他們還對兩種被普遍運用的開源程序如何迎合這些概念進行了剖析。最後,做者還將利用這些基本概念構建一個簡單但內涵豐富的應用程序來解決現實世界中所遇到的問題。中文版連接:《輕快的JAVA》
英文版連接:《Better, Faster, Lighter 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 》
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)
處理異常涉及開發、設計和體系結構等方面的知識。本書共分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上的投票
1. 代碼大全(第2版)
做者 : [美] 史蒂夫·邁克康奈爾
出版社 : 電子工業出版社
![]() |
2. 程序員修煉之道 做者 : Andrew Hunt/David Thomas |
![]() |
3. 計算機程序的構造和解釋 做者 : Harold Abelson/Gerald Jay Sussman/Julie Sussman |
![]() |
4. C程序設計語言 做者 : 克尼漢 |
![]() |
5. 算法導論 做者 : [美] Thomas H.Cormen/Charles E.Leiserson/Ronald L.Rivest/Clifford Stein |
![]() |
6. 重構 做者 : Martin Fowler |
![]() |
7. 人月神話 做者 : 弗雷德裏克.布魯克斯 |
![]() |
8. 設計模式 做者 : [美] Erich Gamma/Richard Helm/Ralph Johnson/John Vlissides |
![]() |
29. 計算機程序設計藝術(第1卷) 做者 : [美] Donald E. Knuth |
![]() |
10. 編譯原理 做者 : Alfred V. Aho/Monica S.Lam/Ravi Sethi/Jeffrey D. Ullman |
![]() |
|
![]() |
12. 哥德爾、艾舍爾、巴赫 做者 : [美] 侯世達 |
![]() |
13. Effective C++ 做者 : Scott Meyers |
![]() |
做者 : 邁耶斯 |
![]() |
15. 編程珠璣 做者 : Jon Bentley |
![]() |
16. 萬里任禪遊 做者 : (美)羅伯特·M·波西格 |
![]() |
17. 編碼 做者 : [美] 佩措爾德 (Charles Petzold) |
![]() |
18. 修改代碼的藝術 做者 : Michael Feathers |
![]() |
19. 人件 做者 : Tom DeMarco/Timothy Lister |
![]() |
20. 代碼整潔之道 做者 : 馬丁 |
![]() |
2011-03-01 18:14:03添加 21. 編程人生 做者 : Peter Seibel出版社 : 人民郵電出版社 |