目錄:java
最近在網上看了一個很是好的帖子《程序員一輩子必讀的書》(個人騰訊微博上有分享該貼子連接,有興趣就點擊進去看看吧),該貼的第一個張圖片是一個雷達圖, 這張圖是由ThoughtWorks(全球軟件設計與定製領域的領袖級企業)的資深人士提供的,它將程序員要讀的書分爲四個類別,每一個類別又分爲初級、進階和高級讀物,並用黃色三角形點出了強烈推薦閱讀的書籍。四個類別包括:程序員
相信這張圖會幫助到不少迷茫的職業人,由於好書就像明燈同樣會照亮咱們的方向,那些大師級的人物將他們的經驗分享給咱們,真的有如浴春風的感受。有時候會很感慨國外有那麼多厲害的技術做家寫了那麼多好的做品,而國產技術書籍中的好書真算得上是百裏挑一。有時候也會問本身,能不能作一個技術做家呢,我想個人修煉還遠遠不夠。
雖然不可以本身寫一本好書,可是仍是很願意把本身的讀書心得跟你們一塊兒分享,雷達圖上的書我讀過的約有1/3,下面就把讀這1/3的心得跟你們分享。算法
這本書最初出中文譯本的時候,它的名字叫《務實的程序員》,而這本書也正像它書名的副標題那樣,是一本帶領程序員從小工成爲行業專家的著做。這本書裏有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中列出了一些做者推薦閱讀的計算機書籍,這些書籍正好也出如今了咱們給的這個必讀書籍的列表中,真的是英雄所見略同(就算我臭美了一次哈)設計模式
還有不少好書可能由於選擇標準的不一樣在雷達圖中雖然沒有出現,可是仍然值得每一個程序員去閱讀,這些好書包括:api
除此以外,由於本身作了很長時間的Java程序員,有一些Java方面的好書能夠推薦給你們markdown
若是你之前不是計算機相關專業又想轉型從事軟件行業,那麼我推薦先看一些專業氣質養成類書籍,固然最入的書就是《計算機導論》或《計算機文化》啦,我把這類書也作了一個列表。架構
若是你但願從零基礎開始作一個Java程序員,那麼我建議的這些書的閱讀順序是這樣的:
1. Computer Concepts / Foundations of Computer Science
2. The C Programming Language
3. Core Java (Vol. 1 & Vol. 2) / Introduction to Java Programming
4. MySQL Crash Course
5. Servlet & JSP: A Tutorial / Head First Servlets & JSP
6. Design Patterns / Java與模式 / Design Patterns Explained
7. Java Persistence with Hibernate / Hibernate in Action
8. Spring in Action
9. Algorithms
10. POJOs in Action併發
轉自:http://blog.csdn.net/jackfrued/article/details/44456495app