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

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

四個類別包含:web

  • 編程實踐(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的程序。該程序就出現在這本書中。spring


The Mythical Man-Month 《人月神話》

這裏寫圖片描寫敘述

  這本書是號稱軟件project領域的第一奇書。與《人件》合稱爲軟件project著做中的倚天劍和屠龍刀。Brooks博士爲人們管理複雜項目提供了最具洞察力的看法。編程

既有很是多發人深省的觀點,又有大量軟件project的實踐。其內容都是來自Brooks博士在IBM公司System/360家族和OS/360中的項目管理經驗。設計模式

這本書是項目經理和系統分析師必讀的不朽之做。也是流行了30多年的傳奇經典。api


Hackers and Painters 《黑客與畫家》

這裏寫圖片描寫敘述

  該書是我近期差點兒天天都翻翻的一本書。準確的說這本書是硅谷創業之父Paul Graham的文集。主要介紹優秀程序猿(書中稱之爲黑客。固然這和咱們尤爲是國內對黑客的理解有所區別)的愛好和動機。討論它們怎樣成長以及怎樣爲世界作出貢獻,固然也包含了對編程語言和優秀程序猿工做方法等的探討和思考。tomcat

該書的內容不但有助於瞭解計算機編程的本質、互聯網行業的規則,還會幫助讀者瞭解咱們這個時代,迫使讀者獨立思考。該書的中文版是阮一峯博士翻譯的。翻譯的水準和書中的旁註都至關好。markdown


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

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

相關文章
相關標籤/搜索