Books
Below is a list of textbooks which I personally think deserve the name of standard in several subareas related to computer science as of January 2, 2020. Please pardon me if some links are unavailable.
| # | Subarea | Title | Author | Year | Link |
|---|---|---|---|---|---|
| 1 | Theory of Computation | Introduction to the Theory of Computation, 3rd Edition | Michael Sipser | 2012 | link |
| 2 | Theory of Computation | Computational Complexity: A Modern Approach | Sanjeev Arora and Boaz Barak | 2009 | link |
| 3 | Data Structures and Algorithms | Introduction to Algorithms, 3rd Edition | Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein | 2009 | link |
| 4 | Data Structures and Algorithms | Algorithm Design | Jon Kleinberg and Éva Tardos | 2005 | link |
| 5 | Automata and Languagues | Introduction to Automata Theory, Languages, and Computation, 3rd Edition | John E. Hopcroft, Rajeev Motwani, and Jeffrey D. Ullman | 2006 | link |
| 6 | Programming Languages | Types and Programming Languages | Benjamin C. Pierce | 2002 | link |
| 7 | Hardware | Computer Organization and Design, 5th Edition | David A. Patterson and John L. Hennessy | 2013 | link |
| 8 | Computer Systems | Principles of Computer System Design: An Introduction | Jerome H. Saltzer and M. Frans Kaashoek | 2009 | link |
| 9 | Computer Systems | Computer Architecture: A Quantitative Approach, 6th Edition | John L. Hennessy and David A. Patterson | 2017 | link |
| 10 | Operating Systems | Operating System Concepts, 10th Edition | Avi Silberschatz, Peter Baer Galvin, and Greg Gagne | 2018 | link |
| 11 | Network | Computer Networking: A Top-Down Approach, 7th Edition | James F. Kurose and Keith W. Ross | 2017 | link |
| 12 | Compilers | Compilers: Principles, Techniques, and Tools, 2nd Edition | Alfred V. Aho, Monica S. Lam, Ravi Sethi, and Jeffrey D. Ullman | 2006 | link |
| 13 | Databases | Database Systems: The Complete Book, 2nd Edition | Hector Garcia-Molina, Jeffrey D. Ullman, and Jennifer Wildom | 2008 | link |
| 14 | Distributed Systems | Distributed Systems: Concepts and Design, 5th Edition | George Coulouris, Jean Dollimore, Tim Kindberg, and Gordon Blair | 2011 | link |
| 15 | Artificial Intelligence | Artificial Intelligence: A Modern Approach, 3rd Edition | Stuart Russell and Peter Norvig | 2009 | link |
| 16 | Logic | Language, Proof and Logic | Jon Barwise and John Etchemendy | 2002 | link |
| 17 | Knowledge Representation and Reasoning | Knowledge Representation and Reasoning | Ronald J. Brachman and Hector J. Levesque | 2004 | link |
| 18 | Linear Algebra | Introduction to Linear Algebra, 5th Edition | Gilbert Strang | 2016 | link |
| 19 | Optimization | Numerical Optimization, 2nd Edition | Jorge Nocedal and Stephen Wright | 2006 | link |
| 20 | Optimization | Convex Optimization | Stephen Boyd and Lieven Vandenberghe | 2004 | link |
| 21 | Machine Learning | Pattern Recognition and Machine Learning | Christopher M. Bishop | 2007 | link |
| 22 | Machine Learning | Probabilistic Graphical Models: Principles and Techniques | Daphne Koller and Nir Friedman | 2009 | link |
| 23 | Machine Learning | Deep Learning | Ian Goodfellow, Yoshua Bengio, and Aaron Courville | 2016 | link |
| 24 | Natural Language Processing | Speech and Language Processing, 2nd Edition | Daniel Jurafsky and James H. Martin | 2008 | link |
| 25 | Natural Language Processing | Introduction to Natural Language Processing | Jacob Eisenstein | 2019 | link |
| 26 | Information Retrieval | Introduction to Information Retrieval | Christopher D. Manning, Prabhakar Raghavan, and Hinrich Schütze | 2008 | link |
| 27 | Data Mining | Introduction to Data Mining, 2nd Edition | Pang-Ning Tan, Michael Steinbach, Anuj Karpatne, and Vipin Kumar | 2018 | link |
| 28 | Software Engineering | Software Engineering: A Practitioner's Approach, 8th Edition | Roger Pressman and Bruce Maxim | 2014 | link |