从刘未鹏的博客里面看到一篇文章《怎样花两年时间去面试一个人》,里面列举了几个书单。
基本上,你不可能在两年时间内读完所有这些书(我觉得TAOCP就够看两年以上的),但是你可以在两年时间内尽可能多的阅读(我觉得大概能看10-20本),然后看看两年之后你会找到一个什么样的工作。
- Code: The Hidden Language of Computer Hardware and Software (《编码的奥秘》)
- Computer System: A Programmer’s Approach (《深入理解计算机系统》)
- Code Complete 2(《代码大全》)
- The Structure and Interpretation of Computer Programs (《计算机程序的构造和解释》)
- Computer Architecture: A Quantitative Approach
- Linkers and Loaders
- Compilers (龙书)
- TAOCP (不解释)
- 《程序员的自我修养》
- 《编程之美》
- Introduction to Algorithms (《算法导论》)
- Algorithms (by Sanjoy Dasgupta, Christos Papadimitriou and Umesh Vazirani)
- Algorithm Design
- Data Structure and Algorithms
- 深入理解LINUX内核
- UNIX编程艺术
- The Design of the UNIX Operating System
- Windows核心编程
- 深入解析Windows操作系统
- Windows via C/C++ (《Windows核心编程》
- 代码优化:有效使用内存
- Lua程序设计
- The C Programming Language
- C专家编程
- C陷阱与缺陷
- C语言接口与实现
- The C++ Programming Language
- Programming: Principles and Practice Using C++
- Accelerated C++
- C++编程思想
- Effective C++
- 深度探索C++对象模型
- C++语言的设计和演化
- The Pragmatic Programmer (《程序员修炼之道》,我也把这本书称为《代码小全》)
- Programming Pearls (《编程珠玑》)
- Clean Code
- Design Patterns (《设计模式》)
- Implementation Patterns
- Refactoring (《重构》)
- Agile Software Development, Principles, Patterns, and Practices
- TCP/IP 详解
- COM本质论
- 软件随想录
- 黑客与画家
- 重来
- 编程人生
- The Mythical Man-Month (《人月神话》)
- Flow
- Outliers (why hard work and luck are both important)