程序員必讀書籍及導讀指南

  最近在網上看了一個非常好的帖子《程序員一生必讀的書》(我的騰訊微博上有分享該貼子鏈接,有興趣就點擊進去看看吧),該貼的第一個張圖片是一個雷達圖, 這張圖是由ThoughtWorks(全球軟件設計與定製領域的領袖級企業)的資深人士提供的,它將程序員要讀的書分爲四個類別,每個類別又分爲初級、進階和高級讀物,並用黃色三角形點出了強烈推薦閱讀的書籍。四個類別包括:

  • 編程實踐(Coding Practice)
  • 設計與架構(Design & Architecture)
  • 方法學(Methodology)
  • 思想與領導力(Thought & Leadership)

程序員必讀書籍的雷達圖

  相信這張圖會幫助到很多迷茫的職業人,因爲好書就像明燈一樣會照亮我們的方向,那些大師級的人物將他們的經驗分享給我們,真的有如浴春風的感覺。有時候會很感慨國外有那麼多厲害的技術作家寫了那麼多好的作品,而國產技術書籍中的好書真算得上是鳳毛麟角。有時候也會問自己,能不能做一個技術作家呢,我想我的修煉還遠遠不夠。下面就把這些好書羅列出來跟大家分享。

Code Complete 《代碼大全》

這裏寫圖片描述


Refactoring《重構:改善既有代碼質量》

這裏寫圖片描述


Clean Code 《代碼整潔之道》

這裏寫圖片描述


The Pragmatic Programmer: From Journeyman to Master 《程序員修煉之道:從小工到專家》

這裏寫圖片描述


The Practice of Programming 《程序設計實踐》

這裏寫圖片描述


Design Patterns 《設計模式》

這裏寫圖片描述


Domain-Driven Design 《領域驅動設計》

這裏寫圖片描述


The Art of UNIX Programming 《UNIX編程藝術》

這裏寫圖片描述


Practical API Design 《軟件框架設計的藝術》

這裏寫圖片描述


Patterns of Enterprise Application Architecture 《企業應用架構模式》

這裏寫圖片描述


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

The C Programming Language 《C語言程序設計》

這裏寫圖片描述

  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

說明:原來打算把讀書心得寫在這篇文章中,後來想想覺得內容太多,準備每本書的讀書心得單獨成文,歡迎大家分享交流。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章