系统软件推荐阅读列表
红色 是强烈推荐的重要著作。
1. Algorithms and Theory Computer Science
Introduction to the Theory of Computation (Michael Sipser)- Heuristic Search: Theory and Applications (Stefan Edelkamp and Stefan Schrödl)
- Combinatorial Optimization: Theory and Algorithms (Bernhard Korte and Jens Vygen)
2. Logic and Programming Language Foundations
- Logic in Computer Science: Modelling and Reasoning about Systems (Michael Huth and Mark Ryan)
- Software Foundations (Benjamin C. Pierce, et al.)
Volume I: Logic Foundations - Volume II: Programming Language Foundations
3. Programming Languages Practices, Tools, and Techniques
Find your own: C/C++, Rust, Python, Vim, Git, Tex, ... Read a lot of them! Examples:
- Manuals of GCC, GDB, binutils, ...; Architectural references and language specifications (Java Virtual Machine, ECMAScript, ...)
- The TeXbook (Donald E. Knuth)
- Is Parallel Programming Hard, And, If So, What Can You Do About It? (The "perfbook"; Paul E. McKenney Ed)
- Systems Performance: Enterprise and the Cloud (Brendan Gregg)
4. Classical Computer Systems
Computer Systems: A Programmer's Perspective (Randal E. Bryant and David R. O'Hallaron)- Computer Architecture: A Quantitative Approach (John Hennessy and David Patterson)
- Operating Systems: Three Easy Pieces (Remzi H. Arpaci-Dusseau and Andrea C. Arpaci-Dusseau)
5. Compilers
Crafting Interpreters (Robert Nystrom)
6. Software and Its Engineering
Software Abstractions: Logic, Language, and Analysis (The "Alloy Book"; Daniel Jackson)- Software Design for Flexibility: How to Avoid Programming Yourself into a Corner (Chris Hanson and Gerald Jay Sussman)
- Software Reliability Methods (Doron A. Peled)
7. Conducting Research
- The Craft of Research (Wayne C. Booth, et al.)
- 数学之英文写作 (汤涛、丁玖)