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

b5pp 9年前發布 | 31K 次閱讀 程序員

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

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

程序員必讀書籍的雷達圖

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

Code Complete 《代碼大全》

這里寫圖片描述

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

這里寫圖片描述

Clean Code 《代碼整潔之道》

這里寫圖片描述

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

這里寫圖片描述

這本書最初出中文譯本的時候,它的名字叫《務實的程序員》,而這本書也正像它書名的副標題那樣,是一本帶領程序員從小工成為行業專家的著作。這本書里有70個Tip(指點、提示),這些Tip都是短小精煉的句子,但都是大師們編程經驗的總結和沉淀。因此不管什么時候看這本書,也不管你翻到第幾頁,總會發現這樣的Tip,而它們也會讓你有醍醐灌頂的感覺。下面分享了這本書部分的Tip:

  • Tip8: Invest Regularly in Your Knowledge Portfolio (定期為你的知識資產投資)
  • Tip9: Critically Analyze What You Read and Hear (批判的分析你讀到的和聽到的)
  • Tip10: It’s Both What You Say and the Way You Say It (你說什么和你怎樣說同樣重要)
  • Tip11: DRY - Don’t Repeat Yourself (不要重復自己)
  • Tip13: Eliminate Effects Between Unrelated Things (消除無關事物之間的影響)
  • Tip18: Estimate to Avoid Surprises (通過估計來避免意外發生)
  • Tip20: Keep Knowledge in Plain Text (用純文本保存知識)
  • Tip23: Always Use Source Code Control (總是使用源碼控制)
  • Tip27: Don’t Assume It - Prove It (不要假定要證明)
  • Tip29: Write Code That Writes Code (用代碼生成代碼)
  • Tip31: Design with Contracts (按照契約設計)
  • Tip33: If It Can’t Happen, Use Assertion to Ensure That It Won’t (用斷言確保不能發生的不發生)
  • Tip38: Put Abstraction in Code, Details in Metadata (將抽象置于代碼,細節置于元數據)
  • Tip39: Analyze Workflow to Improve Concurrency (分析工作流以改善并發性)
  • Tip42: Separate Views from Models (讓視圖和模型分離)
  • Tip63: Coding Ain’t Done ‘Til All the Tests Run (測試不通過編碼不停止)
  • Tip69: Gently Exceed Your User’s Expectations (超出用戶期望一點點就好)

除此之外,該書中有很多名人名言以及很多經驗的分享,例如:“不要讓調試改變了被調試系統的行為”、“異常盡量不被作為程序正常流程的一部分來使用”、“要有始有終,分配資源的程序也應當釋放它”、“最大的弱點是害怕暴露弱點”等等。 當然,這本書也包括了對契約式編程、解耦合、重構、算法效率、測試等內容的探討。 
老實說,整本書的內容都很棒,附錄也不例外,附錄A中列出了一些作者推薦閱讀的計算機書籍,這些書籍正好也出現在了我們給的這個必讀書籍的列表中,真的是英雄所見略同(就算我臭美了一次哈)

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語言程序設計》

這里寫圖片描述

The Mythical Man-Month 《人月神話》

這里寫圖片描述

Hackers and Painters 《黑客與畫家》

這里寫圖片描述

The Art of Computer Programming 《計算機程序設計藝術》

這里寫圖片描述這里寫圖片描述這里寫圖片描述這里寫圖片描述

Introduction to Algorithms 《算法導論》

這里寫圖片描述

Object-Oriented Analysis and Design with Applications 《面向對象分析與設計》

這里寫圖片描述

除此之外,因為自己做了很長時間的Java程序員,有一些Java方面的好書可以推薦給大家

Thinking in Java 《Java編程思想》

這里寫圖片描述

Effective Java

這里寫圖片描述

Java與模式

這里寫圖片描述

The Well-Grounded Java Developer 《Java程序員修煉之道》

這里寫圖片描述

POJOs in Action

這里寫圖片描述

如果你以前不是計算機相關專業又想轉型從事軟件行業,那么我推薦先看一些專業氣質養成類書籍,當然最入的書就是《計算機導論》或《計算機文化》啦,我把這類書也做了一個列表。

Computer Concepts 《計算機文化》

這里寫圖片描述

如果你希望從零基礎開始做一個Java程序員,那么我建議的這些書的閱讀順序是這樣的:

說明:讀書心得我只有一點點寫上去了,先給個目錄吧 :)

來自:http://blog.csdn.net/jackfrued/article/details/44456495

 本文由用戶 b5pp 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!