給新手程序員和學生的書籍推薦

畢業六年,專職從事開發三年,如今回想一下當年上學的時光,以爲在學習程序開發的道路上走了很多彎路,當時真是缺乏一個指路人。html

如今基本脫離了新手區成爲了避免那麼新的手,爲了避免讓後來人重蹈覆轍,推薦一些書籍給你們,這些書都是畢業後看過的(絕大部分是從事開發工做三年來看的)、有意義的好書,附本弱B的簡評前端

 

排名不分前後程序員

 

與特定語言不相關的書

1. 《代碼整潔之道》(英文名:Clean Code,下同)算法

學會語法後第一本該看的書!設計模式

它會告訴你原先在學校課本上那些int a, bc;/*啊,白癡!*/ int funA();之類的寫法是多麼的荒謬!數據結構

固然在看的過程當中會有許多不明白的地方,把這些不明白的地方當成你繼續前進的路標架構

 

2. 《重構:改善既有代碼的設計》(Refactoring: Improving the Design of Existing Code)app

許多書裏都會提到這本書,它會告訴你如何去寫易讀易懂的代碼ide

 

3. 《程序員修煉之道》(The Pragmatic Programmer)單元測試

坊間給這本書起的別號爲:代碼小全,以對應那本著名的《代碼大全》。不過我既然看太小的了就沒再看大的。

整本書描述了程序員的哲學、程序員應具有的技能、程序員應有的工做態度,可就是沒詳細地告訴你怎麼去作到這些。

書中的80多條提示字字真言!書中有許多有趣的類比,破窗戶和煮青蛙理論深得人心

 

4. 《敏捷軟件開發:原則、模式與實踐》(Agile Software Development: Principles, Patterns, and Practices)

本書文獻編號爲PPP或PPP02(Java、C++版)、PPP05(C#版),因此我一般親切的稱它爲:3P

這是一本名爲講敏捷,實爲講OOD和OOP的、極爲面向實際應用的好書。

MarkIV咖啡機那一章的抽象過程使人歎爲觀止,並且本書還深刻淺出地講解了最經常使用的設計模式。有人認爲3P上講的設計模式與GoF相比不全,可是3P裏講的的確是最經常使用的,其它未出現的3P中的DP基本都不怎麼用。

本書的C#版增長了UML講解,一樣是面向實際應用,把龐大的UML體系中最有可能用到的數種圖形單獨拿出來說解,未講到的部分讀者根本不用去管它們了

3P這書還有一個神奇的地方:當你水平不夠的時候,你會以爲這書超級簡單;當你水平增加以後,你會以爲本書處處是坑,許多一句話帶過去的東西蘊含了驚人的智慧。因此,本書絕對不是那種讀一次就扔掉的書。

 

5. 《企業應用架構模式》(Patterns of Enterprise Application Architecture,簡稱PoEAA)

這本書有些尷尬,由於當你水平和經驗足夠的時候,PoEAA上講的東西你全明白,甚至都明白它們應該怎麼應用,在哪些場景下應用;但是當你水平不夠(或者沒遇到實際場景)的時候,你是萬萬不可能看得懂這本書的。

總之,若是遇到了實際的問題能夠稍微參考一下PoEAA吧。

 

6. 《xUnit Test Pattern》

先說一句:千萬不要去買本書的中文版!除非你想打擊你對漢語水平掌握程度的信心!

本書教你如何寫單元測試,說的粗鄙一點:你TMD就應該照這本書的要求來寫單元測試!

若是你正在使用TDD開發,若是你正在寫單元測試卻遇到了如下的狀況:單元測試運行速度慢、單元測試有時能跑過有時跑不過、單元測試不可維護等等問題,來看這本書吧

 

7. 《深刻理解計算機系統》(Computer Systems: A Programmer's Perspective,簡稱CSAPP)

若是你是學生、若是你有許多空閒時間、若是你是一名C/C++開發者,請完整的閱讀本書!

若是你從事其它方面的開發,請參考老趙的書評

本書講的不深,可是講的面卻很廣,它可讓你明白許多計算機系統的基礎知識。(比方說IEEE浮點數看似奇怪的Round邏輯的緣由等)

 

8. 《離散數學及其應用》(Discrete Mathematics and Its Applications)

若是你是學生或者你有許多空閒時間而且你想學習算法,本書是引路者。

這本書不只僅講的是離散數學,還包括機率論等學習算法的必備知識。

若是你是學生,僅僅是想經過離散數學的考試,那麼《離散數學導學》(Discrete Mathematics by Example)更適合你

 

9. 《算法導論》(Introduction to Algorithms,簡稱CLRS)

首先我要說:CLRS不難,真的!尤爲是在拋開全部數學證實部分以後!(其實要看懂全部的數學證實部分也不難,不過要先多學一些數學方面的知識。本弱B不是學數學的也同樣對着公開課視頻把本書前1/3的數學部分弄明白了80%)

你徹底能夠用這本書來學習數據結構,你也徹底能夠用這本書算法研究部分介紹的算法來解決實際問題!若是你的目標是M$、Google等大公司,本書更是必讀的課本!

 

與特定語言相關的書

       C#(純C#,不包括ASP.Net、Win Form、WPF等)

        1. 入門:《C#本質論》(Essential C#)

    C#入門必讀,超級簡單超級傻瓜

 

        2. 提升:《深刻理解C#》(C# in Depth)、《CLR via C#》

    建議首先閱讀《深刻理解C#》,固然,你要寫高效率和C#代碼,《CLR via C#》也是必讀的,就比如你想寫高效率的C/C++代碼,彙編也是你必學的同樣

 

       JavaScript

        1. JavaScript高級程序設計(Professional JavaScript for Web Developers)

    JavaScript入門必備。若是你不是一名專業的前端開發人員,那麼你不須要買犀牛書(JavaScript權威指南,JavaScript: The Definitive Guide)了,犀牛書坑太多了

 

        2. JavaScript語言精粹(JavaScript: The Good Parts)

    JSON的發明人Douglas Crockford的書,字裏行間透露着「你TMD就該這麼用JavaScript」的霸氣!

 

        3. 編寫可維護的JavaScript(Maintainable JavaScript)

    告訴你如何在網頁上正確地使用JavaScript操做DOM

相關文章
相關標籤/搜索