摘自《怎樣花兩年時間去面試一個人》中列出的書單
http://mindhacks.cn/2011/11/04/how-to-interview-a-person-for-two-years/
你面試微軟前必須要讀的十本書:
- 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項目管理那些事兒
- 軟體随想錄
- 最後期限
- 走出軟體作坊
- 你的燈亮着嗎?——發現問題的真正所在
張峥(微軟亞洲研究院副院長):
- Algorithms (by Sanjoy Dasgupta, Christos Papadimitriou and Umesh Vazirani)
- Data Structure and Algorithms
- The C Programming Language
- The Design of the UNIX Operating System
- Compilers (龍書)
- Computer Architecture: A Quantitative Approach
- Flow
- Outliers (why hard work and luck are both important)
鄒欣(MSRA創新工程中心首席研發經理):
關于創新的書籍(http://book.douban.com/doulist/1253169/):
- The Myths of Innovation
- The Innovator’s Dilemma
- The Innovator’s Solution
- Crossing the Chasm
- Inside Intuit
- 盛田昭夫
- 傑克·韋爾奇自傳
- 夢斷代碼
- Innovation
- 浪潮之巅