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


畢業六年,專職從事開發三年,現在回想一下當年上學的時光,覺得在學習程序開發的道路上走了不少彎路,當時真是缺少一個指路人。

現在基本脫離了新手區成為了不那么新的手,為了不讓后來人重蹈覆轍,推薦一些書籍給大家,這些書都是畢業后看過的(絕大部分是從事開發工作三年來看的)、有意義的好書,附本弱B的簡評

 

排名不分先后

 

與特定語言不相關的書

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

學會語法后第一本該看的書!

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

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

 

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

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

 

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM