A curated collection of 66 computer science textbooks spanning algorithms, programming languages, machine learning, compilers, operating systems, software engineering, and more.
Whether you're a student building fundamentals, a developer preparing for interviews, or a researcher diving into ML and computer vision — this library gives you direct access to high-quality references across the full CS curriculum.
Didn't find what you need? Open an issue to request a book and it will be added.
| Book | Author(s) | Why It Matters |
|---|---|---|
| Introduction to Algorithms (3rd Ed.) | Cormen, Leiserson, Rivest & Stein | The "CLRS" — the definitive, encyclopedic algorithms textbook used in graduate programs worldwide. |
| Algorithms (4th Ed.) | Sedgewick & Wayne | Rigorous yet accessible. Strong Java-based examples and one of the best Pearson CS titles. |
| The Algorithm Design Manual | Steven Skiena | Practical algorithm design with real-world war stories. One of the best bridges between theory and application. |
| Cracking the Coding Interview | Gayle Laakmann McDowell | The industry-standard guide for technical interview preparation — covers patterns, not just problems. |
| Programming Collective Intelligence | Toby Segaran | Algorithms for filtering, searching, and learning from data — a gateway into data-driven thinking. |
| Book | Author(s) | Why It Matters |
|---|---|---|
| Let Us C | Yashavant Kanetkar | A classic entry point into C programming, widely used in university curricula. |
| Expert C Programming: Deep Secrets | Peter van der Linden | Goes beyond syntax into the subtle traps and internals of C that even experienced programmers miss. |
| C Expert Programming (Chinese Ed.) | Peter van der Linden | Chinese edition of the above — same content, broader accessibility. |
| Effective C++ | Scott Meyers | 55 specific ways to improve your C++ — the single most recommended C++ style guide. |
| Effective STL (CN Edition) | Scott Meyers | Targeted advice on using the Standard Template Library correctly and efficiently. |
| The C++ Standard Library (2nd Ed.) | Nicolai Josuttis | The authoritative reference for C++11 standard library components. |
| Modern C++ Design | Andrei Alexandrescu | Advanced template metaprogramming and policy-based design — not for beginners, but deeply influential. |
| Thinking in C++ Vol. 1 | Bruce Eckel | Teaches C++ from an OOP-first perspective with clear, gradual progression. |
| Thinking in C++ Vol. 2 | Bruce Eckel | Continues into advanced topics: multiple inheritance, exception handling, and design patterns. |
| Professional C++ | Marc Gregoire | Comprehensive, modern C++ guide covering C++11/14 features and professional practices. |
| C++ Cookbook | D. Ryan Stephens et al. | Recipe-style solutions to common C++ problems — great as a desk reference. |
| C++ GUI Programming with Qt 4 (2nd Ed.) | Blanchette & Summerfield | The go-to guide for building cross-platform GUIs with the Qt framework. |
| C++ Programming (Wiki Edition) | Community | Community-compiled C++ reference — useful as a quick-lookup companion. |
| Book | Author(s) | Why It Matters |
|---|---|---|
| Beginning C# 6.0 Programming | Benjamin Perkins et al. | Beginner-friendly introduction to C# with Visual Studio, covering language fundamentals and .NET. |
| Illustrated C# 2010 | Daniel Solis | Visually rich C# guide — great for learners who benefit from diagrams and illustrations. |
| Professional C# 2008 | Christian Nagel et al. | In-depth coverage of C# 3.0 and the .NET framework for professional developers. |
| Moving to Microsoft Visual Studio 2010 | — | Practical migration guide for developers transitioning to the VS 2010 ecosystem. |
| Book | Author(s) | Why It Matters |
|---|---|---|
| Java: The Complete Reference (9th Ed.) | Herbert Schildt | Encyclopedic Java reference covering the language, libraries, and ecosystem end to end. |
| OCA/OCP Java SE 7 Study Guide | Sierra & Bates | Certification-focused but excellent for deeply understanding Java semantics and gotchas. |
| Beginning Java 7 | Jeff Friesen | Thorough introduction to Java 7 features, ideal for developers new to the language. |
| Teach Yourself Java in 21 Days | Laura Lemay & Charles Perkins | Structured, day-by-day Java learning path — a classic self-paced intro. |
| Book | Author(s) | Why It Matters |
|---|---|---|
| Head First Python (2nd Ed.) | Paul Barry | Visual, beginner-friendly Python introduction using the Head First pedagogical approach. |
| Learning Python (5th Ed.) | Mark Lutz | The most comprehensive Python tutorial in print — covers Python 2 and 3 in depth. |
| Core Python Programming | Wesley Chun | Solid intermediate Python reference with good coverage of the standard library. |
| Python Cookbook (3rd Ed.) | David Beazley & Brian K. Jones | Advanced recipes for Python 3 — the book experienced Python developers keep on their desk. |
| Python for Data Analysis | Wes McKinney | The definitive guide to pandas, NumPy, and data wrangling in Python — written by the creator of pandas. |
| Python Network Programming | — | Covers socket programming, protocols, and building networked applications in Python. |
| Book | Author(s) | Why It Matters |
|---|---|---|
| CSS | — | Core reference for styling and layout on the web. |
| Book | Author(s) | Why It Matters |
|---|---|---|
| Database System Concepts (6th Ed.) | Silberschatz, Korth & Sudarshan | The gold-standard academic textbook on relational databases, transactions, and query processing. |
| Database Systems | Navathe | Comprehensive coverage of database design, ER modeling, normalization, and SQL. |
| Fundamentals of Data Engineering | Reis & Housley | A modern take on the data engineering lifecycle — pipelines, storage, orchestration, and more. |
| Book | Author(s) | Why It Matters |
|---|---|---|
| Deep Learning | Goodfellow, Bengio & Courville | The "DL Bible" — covers theory from linear algebra to GANs. Essential for anyone in deep learning. |
| Pattern Recognition and Machine Learning | Christopher Bishop | Rigorous Bayesian treatment of ML — the go-to for understanding probabilistic models. |
| The Elements of Statistical Learning | Hastie, Tibshirani & Friedman | The statistical perspective on ML — dense but indispensable for data scientists. |
| Machine Learning: An Algorithmic Perspective (2nd Ed.) | Stephen Marsland | Practical, code-oriented introduction to ML algorithms with Python examples. |
| Machine Learning in Action | Peter Harrington | Hands-on ML with working code — great for learning by building. |
| Computer Vision: Algorithms and Applications | Richard Szeliski | The standard CV textbook — from image formation to 3D reconstruction and recognition. |
| Multiple View Geometry in Computer Vision | Hartley & Zisserman | The mathematical foundation of multi-view 3D vision — essential for robotics and AR. |
| Speech and Language Processing | Jurafsky & Martin | The definitive NLP textbook — from regex to transformers, covering the full language processing stack. |
| Book | Author(s) | Why It Matters |
|---|---|---|
| Compilers: Principles, Techniques, and Tools (2nd Ed.) | Aho, Lam, Sethi & Ullman | The "Dragon Book" — the most widely used compiler textbook in CS education. |
| Compiler Construction: Principles and Practice | Kenneth Louden | A more accessible alternative to the Dragon Book, with clear examples and exercises. |
| Engineering a Compiler (2nd Ed.) | Cooper & Torczon | Modern compiler engineering with strong coverage of optimization and code generation. |
| Parsing Techniques | Grune & Jacobs | Deep dive into parsing theory — context-free grammars, LL, LR, and beyond. |
| Book | Author(s) | Why It Matters |
|---|---|---|
| Computer Systems: A Programmer's Perspective (2nd Ed.) | Bryant & O'Hallaron | Bridges the gap between hardware and software — the best "how computers actually work" book. |
| Modern Operating Systems (4th Ed.) | Andrew Tanenbaum | Clear, well-structured OS textbook from the creator of MINIX. |
| Operating System Concepts (8th Ed.) | Silberschatz, Galvin & Gagne | Another gold-standard OS textbook — thorough treatment of processes, memory, and file systems. |
| Operating Systems (6th Ed.) | William Stallings | Strong coverage of process management, security, and distributed systems. |
| System Programming | — | Low-level systems programming concepts — essential for understanding how software meets hardware. |
| Professional Assembly Language | Richard Blum | Practical guide to x86 assembly — invaluable for understanding what compilers actually produce. |
| CUDA by Example | Jason Sanders & Edward Kandrot | Hands-on GPU programming with CUDA — the entry point for parallel computing on NVIDIA hardware. |
| Computer Networking and the Internet (5th Ed.) | Douglas Comer | Covers networking from physical layer to application protocols with clarity and depth. |
| Book | Author(s) | Why It Matters |
|---|---|---|
| Code Complete (2nd Ed.) | Steve McConnell | The most comprehensive guide to software construction — variable naming to integration testing. |
| The Pragmatic Programmer | David Thomas & Andrew Hunt | The definitive guide to thinking like a professional developer — DRY, automation, and craft. |
| The Art of Readable Code | Boswell & Foucher | Short, opinionated, and incredibly practical — teaches you to write code humans can actually read. |
| Design Patterns: Elements of Reusable OO Software | Gamma, Helm, Johnson & Vlissides | The "Gang of Four" book — the origin of the design patterns movement. |
| An Introduction to Design Patterns | — | Lighter introduction to design patterns for those not ready for the GoF book. |
| Design Patterns by Example | Garrett Mitchener | Pattern explanations driven by concrete code examples rather than abstract UML. |
| Software Engineering | Ian Sommerville | One of the most widely used SE textbooks — requirements, design, testing, and project management. |
| Software Engineering: A Practitioner's Approach | Roger Pressman | Process-oriented SE reference with strong coverage of agile, QA, and software metrics. |
| Object-Oriented Software Engineering | Bernd Bruegge & Allen Dutoit | OO analysis and design with UML, use cases, and real project case studies. |
| Book | Author(s) | Why It Matters |
|---|---|---|
| Introduction to Computer Theory | Daniel Cohen | Accessible introduction to automata, formal languages, and computability. |
| Theory of Computation | Peter Linz | Covers finite automata, context-free grammars, Turing machines, and undecidability with rigor. |
Just starting out in CS?
Let Us C|Head First Python|The Pragmatic Programmer|Code Complete|Cracking the Coding Interview
Going deep on algorithms?
Introduction to Algorithms (CLRS)|Algorithm Design Manual|Algorithms (Sedgewick)|Programming Collective Intelligence
Mastering C++?
Effective C++|The C++ Standard Library|Modern C++ Design|Thinking in C++ Vol. 1 & 2
Preparing for systems-level work?
Computer Systems (Bryant & O'Hallaron)|Modern Operating Systems (Tanenbaum)|System Programming|Professional Assembly Language
Focused on backend / data?
Database System Concepts|Fundamentals of Data Engineering|Python for Data Analysis|Computer Networking
Breaking into machine learning?
Pattern Recognition and ML (Bishop)|Deep Learning (Goodfellow)|Machine Learning in Action|Elements of Statistical Learning
Understanding compilers?
Dragon Book (Aho et al.)|Engineering a Compiler|Parsing Techniques
Going deep on theory?
Introduction to Computer Theory (Cohen)|Theory of Computation (Linz)|Algorithm Design Manual
Contributions are welcome. To add a book:
- Fork this repository
- Add the PDF to the root directory
- Update this README with the book details in the appropriate category
- Open a pull request
Please ensure you have the right to distribute any material you contribute.
This repository is intended for educational purposes. All books remain the intellectual property of their respective authors and publishers. If you are an author or publisher and would like a title removed, please open an issue.