A curated, comprehensive collection of essential books for software developers, engineers, and architects.
This repository serves as a personal and collaborative knowledge base, housing some of the most influential and foundational texts in computer science, software design, and agile methodologies.
- Architecture & System Design
- Design Patterns & Principles
- Clean Code & Craftsmanship
- Methodologies & Testing (Agile/TDD)
- Programming Languages & Technologies
- Foundational Computer Science
- Networking
Books focused on high-level system structures, distributed systems, and architectural patterns.
- Clean Architecture: A Craftsman's Guide to Software Structure and Design - Robert C. Martin
- Designing Data-Intensive Applications - Martin Kleppmann
- Domain-Driven Design: Tackling Complexity in the Heart of Software - Eric Evans
- Software Architecture in Practice (4th Edition) - Len Bass, Paul Clements, Rick Kazman
Resources for solving common software design problems using proven patterns.
- Design Patterns: Elements of Reusable Object-Oriented Software (GoF) - Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides
- Head First Design Patterns (2nd Edition) - Eric Freeman, Elisabeth Robson
- Dependency Injection Principles, Practices, and Patterns - Steven van Deursen, Mark Seemann
- Hands-On Design Patterns with Swift - Paco L. Perez
Guides on writing readable, maintainable, and elegant code.
- Clean Code: A Handbook of Agile Software Craftsmanship - Robert C. Martin
- The Pragmatic Programmer: Your Journey to Mastery - David Thomas, Andrew Hunt
- Refactoring: Improving the Design of Existing Code - Martin Fowler
- Five Lines of Code: How and when to refactor - Christian Clausen
- Software Design Decoded: 66 Ways Experts Think - Marian Petre, André van der Hoek
Books covering modern software development lifecycles, extreme programming, and test-driven approaches.
- Test-Driven Development: By Example - Kent Beck
- Growing Object-Oriented Software, Guided by Tests - Steve Freeman, Nat Pryce
- Agile Software Development: Principles, Patterns, and Practices - Robert C. Martin
- Extreme Programming Explained: Embrace Change (2nd Edition) - Kent Beck
- Use-Case 2.0 - Ivar Jacobson, Ian Spence, Kurt Bittner
- The Essentials of Modern Software Engineering - Ivar Jacobson, Harold "Bud" Lawson, Pan-Wei Ng, Paul E. McMahon, Michael Goedicke
Deep dives into specific languages and modern infrastructure.
- Fluent Python (2nd Edition) - Luciano Ramalho
- Learning Python (6th Edition) - Mark Lutz
- Kubernetes Patterns - Bilgin Ibryam, Roland Huß
- Learning Python (5th Edition) - Mark Lutz
- Software Engineering (10th Edition) - Ian Sommerville
- Guide to the Software Engineering Body of Knowledge (SWEBOK V4) - IEEE Computer Society
Timeless classics focusing on the core paradigms of programming and object-oriented analysis.
- Structure and Interpretation of Computer Programs (SICP) - Harold Abelson, Gerald Jay Sussman, Julie Sussman
- Object-Oriented Software Construction - Bertrand Meyer
- Object-Oriented Analysis and Design with Applications (3rd Edition) - Grady Booch
- Computer Networking: A Top-Down Approach (7th Edition Global) - Kurose
- Computer Networks: A Systems Approach - Larry L. Peterson
If you have a book recommendation or would like to contribute to this repository:
- Fork the repository.
- Add your book (PDF/EPUB format preferred).
- Update the
README.mdto include the book in the appropriate category. - Open a Pull Request!
Disclaimer: This repository is intended for educational purposes and personal reference.