列一下我所認爲的,你面試微軟前必須要讀的十本書:
- Code: The Hidden Language of Computer Hardware and Software (《編碼的奧祕》)
- Computer System: A Programmer’s Perspective (《深入理解計算機系統》) / Windows via C/C++ (《Windows核心編程》 / 《程序員的自我修養》
- Code Complete 2(《代碼大全》)/ The Pragmatic Programmer (《程序員修煉之道》,我也把這本書稱爲《代碼小全》)
- Programming Pearls (《編程珠璣》) / Algorithms / Algorithm Design / 《編程之美》
- The C Programming Language
- The C++ Programming Language / Programming: Principles and Practice Using C++ / Accelerated C++
- The Structure and Interpretation of Computer Programs (《計算機程序的構造和解釋》)
- Clean Code / Implementation Patterns
- Design Patterns (《設計模式》) / Agile Software Development, Principles, Patterns, and Practices
- Refactoring (《重構》)
(注:1. 以上同一條目下用“/”隔開的表示任選,當然你也可以都讀了,相信我,時間是足夠的。2. 讀這些書並不意味着逐字逐句從第一頁讀到最後一頁——當然你也可以這麼做。怎麼是聰明高效的讀法,可以參考我之前寫的關於如何閱讀和查找/鑑別書籍/資料的博文)
注意:以上是我個人認爲你面試微軟開發職位前必須要讀的10本書,它不代表我的僱主的觀點。它也只是一個初步的書單,肯定會受到我個人經驗和眼界的限制。歡迎大家提意見。
此外,IT不同子領域的必讀書單可能千差萬別,所以在發佈之前我把這篇文章發給了一些朋友,他們給出了自己的書單(你是不是能看到一些有趣的共同點呢):
雲風(中國遊戲編程先行者,前網易遊戲部門資深程序員,簡悅創始人):
如果面試,我會挑以下的我自己讀過的書,讓人選擇他也讀過的部分,再瞭解他對這些書的理解。這些書其實本質上就是兩類,對所面對的東西(程序語言也好,操作系統也好,底層設施也好)本身的理解程度。以及另一類:對設計思想和原則的理解:
- C++編程思想
- Effective C++
- 深度探索C++對象模型
- C++語言的設計和演化
- C專家編程
- C陷阱與缺陷
- C語言接口與實現
- Lua程序設計
- Linkers and Loaders
- COM本質論
- Windows核心編程
- 深入解析Windows操作系統
- 程序員修煉之道
- 代碼大全
- UNIX編程藝術
- 設計模式
- 代碼優化:有效使用內存
- 深入理解計算機系統
- 深入理解LINUX內核
- TCP/IP 詳解
馮大輝(丁香園CTO,貝塔咖啡創始人):
- 軟件隨想錄
- 黑客與畫家
- 重來
- UNIX編程藝術
- 編程人生
洪強寧(豆瓣技術總監):
StackOverflow上有一個程序員必讀書單帖子,這裏僅列出top10,更多參考這裏。
- Code Complete 2
- The Mythical Man-Month (《人月神話》)
- Code: The Hidden Language of Computer Hardware and Software (《編碼的奧祕》)
- TAOCP (不解釋)
- The Pragmatic Programmer (《程序員修煉之道》)
- Design Patterns (《設計模式》)
- The Structure and Interpretation of Computer Programs (《計算機程序的構造和解釋》)
- Refactoring (《重構》)
- The C Programming Language
- Introduction to Algorithms (《算法導論》)
鄭昀(窩窩團研發副總裁):
- 工程師入門:
- Code Complete 2
- 程序員修煉之道
- 深入理解計算機系統
- 工程師升級:
- 設計模式
- 重構——改善既有代碼的設計
- 工程師轉型:
- 快速軟件開發——有效控制與完成進度計劃
- 人月神話
- IT項目管理那些事兒
- 軟件隨想錄
- 最後期限
- 走出軟件作坊