?最近在網上看了一個非常好的帖子《程序員一生必讀的書》(我的騰訊微博上有分享該貼子鏈接,有興趣就點擊進去看看吧),該貼的第一個張圖片是一個雷達圖, 這張圖是由ThoughtWorks(全球軟件設計與定制領域的領袖級企業)的資深人士提供的,它將程序員要讀的書分為四個類別,每個類別又分為初級、進階和高級讀物,并用黃色三角形點出了強烈推薦閱讀的書籍。四個類別包括:
編程實踐(Coding PRactice)設計與架構(Design & Architecture)方法學(Methodology)思想與領導力(Thought & Leadership)
??相信這張圖會幫助到很多迷茫的職業人,因為好書就像明燈一樣會照亮我們的方向,那些大師級的人物將他們的經驗分享給我們,真的有如浴春風的感覺。有時候會很感慨國外有那么多厲害的技術作家寫了那么多好的作品,而國產技術書籍中的好書真算得上是鳳毛麟角。有時候也會問自己,能不能做一個技術作家呢,我想我的修煉還遠遠不夠。下面就把這些好書羅列出來跟大家分享。










??還有很多好書可能因為選擇標準的不同在雷達圖中雖然沒有出現,但是仍然值得每個程序員去閱讀,這些好書包括:

??C語言之父Dennis Ritchie以及Brian Kernighan兩位老師合著的神一樣的書籍。我到現在都沒有想明白為什么國內只有極少數的幾所大學用這本書作為教材,難道C語言的入門書中還有出其右者嗎?這本書的內容無比精彩,不管是對于初學者還是有經驗的程序員;這本書中的代碼無與倫比,幾乎每一段代碼都是經典。即使你還沒有讀過本書,但是你一定聽說過一個叫Hello, world的程序,該程序就出現在這本書中。
The Mythical Man-Month 《人月神話》
??這本書是號稱軟件工程領域的第一奇書,與《人件》合稱為軟件工程著作中的倚天劍和屠龍刀。Brooks博士為人們管理復雜項目提供了最具洞察力的見解。既有很多發人深省的觀點,又有大量軟件工程的實踐,其內容都是來自Brooks博士在IBM公司System/360家族和OS/360中的項目管理經驗。這本書是項目經理和系統分析師必讀的不朽之作,也是流行了30多年的傳奇經典。
Hackers and Painters 《黑客與畫家》
??該書是我最近幾乎每天都翻翻的一本書,準確的說這本書是硅谷創業之父Paul Graham的文集,主要介紹優秀程序員(書中稱之為黑客,當然這和我們尤其是國內對黑客的理解有所差別)的愛好和動機,討論它們如何成長以及如何為世界做出貢獻,當然也包括了對編程語言和優秀程序員工作方法等的探討和思考。該書的內容不但有助于了解計算機編程的本質、互聯網行業的規則,還會幫助讀者了解我們這個時代,迫使讀者獨立思考。該書的中文版是阮一峰博士翻譯的,翻譯的水準和書中的旁注都相當好。
The Art of Computer Programming 《計算機程序設計藝術》
Introduction to Algorithms 《算法導論》
Object-Oriented Analysis and Design with Applications 《面向對象分析與設計》
??除此之外,因為自己做了很長時間的java程序員,有一些Java方面的好書可以推薦給大家。
Thinking in Java 《Java編程思想》
Bruce Eckel的書對于學習如何在Java語言環境中使用好面向對象技術極其實用。本書中的很多代碼都變成了招聘Java程序員的面試題,因為那些代碼都極具參考價值。Eckel本人具有多種語言的大量經驗,還有用面向對象方式進行思考的扎實技能,是C++標準委員會有表決權的委員,他寫的《Thinking in C++》一書也是多次獲獎的著作。本書將交給你很多實用的Java開發技術。
Effective Java
本書是理解優秀 Java 程序設計原則的最佳書籍。連Java之父James Gosling也稱贊本書為他很需要的書籍。本書講解了78條原則,每一條都很精彩,例如第8條和第9條中關于重寫equals()方法的講解、第18條用接口替代抽象類、第57條至第65條關于異常使用的原則,一切都無比精彩。Bloch是Sun公司Java平臺庫的架構師,所以他透徹地了解這門語言,而且他本人也編寫了Java語言中大量有用的API。此書必讀!
《Java與模式》
The Well-Grounded Java Developer 《Java程序員修煉之道》
POJOs in Action
??其實國產的Java書籍里面也有部分優秀的書籍,雖然國產書的質量總體偏低,但是最近幾年還是有很多有責任感的技術作家(他們很多人同時也是一線程序員或架構師)寫了不少好書。
《設計模式之禪》
《編寫高質量代碼:改善Java程序的151個建議》
《Spring 3.x企業應用開發實戰》
《Tomcat與Java Web開發技術詳解》
《瘋狂Java:突破程序員基本功能的16課》
??如果你以前不是計算機相關專業又想轉型從事軟件行業,那么我推薦先看一些專業氣質養成類書籍,當然最入的書就是《計算機導論》、《計算機文化》之類的書,也可以看看《計算機科學概論》或者是《計算機專業英語》,建議看原版的,一方面對整個行業有一個全面的了解,另一方面鍛煉一下自己的英語水平。無論如何,我覺得程序員還是應該讓英語成為自己的工作語言。
Computer Concepts 《計算機文化》
Computer Science Illuminated 《計算機科學概論》
Computing Essentials 《計算機專業英語》
??如果你希望從零基礎開始做一個Java程序員,那么我建議的這些書的閱讀順序是這樣的(每項讀一本就OK了): 1. Computer Concepts / Computer Science Illuminated 2. The C Programming Language 3. Core Java (Vol. 1 & Vol. 2) / Introduction to Java Programming 4. MySQL Crash Course / 深入淺出MySQL / Sams Teach Yourself SQL in 10 Minutes 5. Thinking in Java / Effective Java / 編寫高質量代碼:改善Java程序的151個建議 6. Servlet & jsp: A Tutorial / Head First Servlets & JSP 7. Java與模式 / Design Patterns Explained / 設計模式之禪 8. 精通hibernate / Java Persistence with Hibernate 9. spring in Action / Spring企業應用開發實戰 / Spring技術內幕 10. Clean Code / Refactoring Impoving the Design of Existing Code 11. The Well-Grounded Java Developer 12. Algorithms / Data Structures and Algorithm Analysis in Java 13. POJOs in Action / Core J2EE Patterns: Best Practices and Design Strategies 14. Java Performance 15. Software Engineering A Practitioner’s Approach
新聞熱點
疑難解答