Books I want to read, intend to read, am putting off reading, am reading, am taking a break from reading, am finishing, have finished, or desperately want to have finished.
- Introducing MLOps, by Mark Treveil et al.
- The Art of Doing Science and Engineering: Learning to Learning, by Richard W. Hamming
- Grokking Machine Learning, by Luis Serrano
- Build an Orchestrator in Go (From Scratch), by Tim Boring
- Artificial Life: A Report from the Frontier Where Computers Meet Biology, by Steven Levy (⭐⭐⭐⭐⭐)
- The Alignment Problem: Machine Learning and Human Values, by Brian Christian (⭐⭐⭐⭐⭐)
- Man's Search for Meaning, by Victor E. Frankl (⭐⭐⭐⭐⭐)
- Sapiens: A Brief History of Humankind, by Yuval Noah Harari (⭐⭐⭐⭐⭐)
- Recoding America: Why Government Is Failing in the Digital Age and How We Can Do Better, by Jennifer Pahlka (⭐⭐⭐⭐⭐)
- The Eternal Frontier, by Tim Flannery (⭐⭐⭐⭐⭐)
- Thinking in Systems: A Primer, by Donella Meadows (⭐⭐⭐⭐⭐)
- Platform Engineering, by Camille Fournier and Ian Nowland (⭐⭐⭐⭐⭐)
- A Philosophy of Software Design, by John Ousterhout (⭐⭐⭐)
- 99 Bottles of OOP, by Sandi Metz (⭐⭐⭐⭐⭐)
- Crafting Interpreters, by Robert Nystrom (⭐⭐⭐⭐⭐)
- An Elegant Puzzle: Systems of Engineering Management, by Will Larson (⭐⭐⭐⭐⭐)
- ML & AI
- Learn Generative AI With PyTorch
- Machine Learning Production Systems
- Machine Learning Engineering in Action
- Managing Machine Learning Projects
- Machine Learning Algorithms in Depth
- Architecting Data and Machine Learning Platforms
- Natural Language Processing in Action
- Inside Deep Learning
- Grokking Machine Learning
- Multiagent Systems
- Prediction, Learning, and Games
- Grokking Deep Learning
- AI at the Edge
- ML & AI Philosophy
- The Alignment Problem
- Artificial Intelligence
- I Am a Strange Loop
- Superconvergence
- Superintelligence
- Machine Learning Systems
- Designing Machine Learning Systems
- Machine Learning Design Patterns
- MLOps
- Introducing MLOps
- Practical MLOps
- Frontend Development
- The Road to React
- Data Structures and Algorithms
- Introduction to Algorithms
- Advanced Algorithms and Data Structures
- The Algorithm Design Manual
- Algorithms + Data Structures = Programs
- The Art of Computer Programming 1: Fundamental Algorithms
- The Art of Computer Programming 2: Seminumerical Algorithms
- The Art of Computer Programming 3: Sorting and Searching
- The Art of Computer Programming 4A: Combinatorial Algorithms, Part 1
- The Art of Computer Programming 4B: Combinatorial Algorithms, Part 2
- Concrete Mathematics
- ML Projects
- Build a Large Language Model (From Scratch)
- Neural Networks from Scratch in Python
- General Projects
- Learning Processing
- The Nature of Code
- The Ray Tracer Challenge
- Mazes for Programmers
- GOFAI / Game AI
- Paradigms of Artificial Intelligence Programming
- AI for Game Developers
- AI for Games
- Design Patterns
- Elemental Design Patterns
- Design Patterns
- Data-Oriented Programming
- Data-Oriented Programming
- System Design
- Grokking relational Database Design
- Designing Cloud Data Platforms
- Learning Domain-Driven Design
- Domain-Driven Design
- Design It!
- Structure and Interpretation of Computer Programs
- How to Design Programs
- Designing Data-Intensive Applications
- Software Architecture
- Fundamentals of Software Architecture
- Software Architecture: The Hard Parts
- UNIX and Networking
- UNIX Network Programming
- The Design of the UNIX Operating System
- HTTP: The Definitive Guide
- High Performance Browser Networking
- WebSocket
- Learning HTTP/2
- Internet Core Protocols
- Legacy Software and Refactoring
- Righting Software
- Software Mistakes and Tradeoffs
- Five Lines of Code
- Refactoring
- Working Effectively With Legacy Code
- Game Engines
- Game Engine Architecture
- Game Design
- Pattern Language for Game Design
- Situational Game Design
- Level Design
- Introduction to Game Systems Design
- Challenges for Game Designers
- Swords & Circuitry
- MUD Game Programming
- Level Up!
- An Architectural Approach to Level Design
- Video Game Level Design
- A Theory of Fun for Game Design
- The Game Design Reader
- Story and Simulations for Serious Games
- The Art of Game Design
- Designing Games
- Procedural Storytelling in Game Design
- Procedural Generation in Game Design
- Game Feel
- Advanced Game Design
- Believable Characters for Computer Games
- Tricks of the Game Programming Gurus
- Data Structures and Algorithms for Game Developers
- Game Case Studies
- DOOM
- Wolfenstein
- Observability
- Observability Engineering
- Interviewing
- Machine Learning System Design Interview
- System Design Interview
- System Design Interview, Vol. 2
- Hacking the System Design Interview
- Cracking the Coding Interview
- Software Engineering
- The Effective Engineer
- Modern Software Engineering
- Staff Engineer
- Game Development
- Unity in Action
- Game Programming Patterns
- Programming Game AI by Example
- Simulation and Event Modeling for Game Developers
- Programming as Craft
- Programming Pearls
- Clean Code
- Code Complete
- A Philosophy of Software Design
- Practices of an Agile Developer
- Hacker's Delight
- Mathematics
- Calculus: Early Transcendentals
- How to Prove It
- How to Solve It
- The Annotated Turing
- Platform Engineering
- Platform Engineering
- High Performance Computing
- High Performance Computing
- Systems Performance
- Parallel and High Performance Computing
- Systems Thinking
- Learning Systems Thinking
- Thinking in Systems
- Systems of Engineering Management
- Automated Testing
- xUnit Test Patterns
- BDD in Action
- Modern Game Testing
- Growing Object-Oriented Software, Guided by Tests
- Test-Driven Development
- Lessons Learned in Software Testing
- Effective Software Testing
- Unit Testing
- Project Management
- Essential Scrum
- Agile Retrospectives
- Scrum Mastery
- Retrospective Antipatterns
- Nonviolent Communication
- Agile Metrics in Action
- Fixing Your Scrum
- Peopleware
- The Goal
- Waltzing With Bears
- User Story Mapping
- Software Estimation Without Guessing
- Software Estimation
- DevOps Methodology
- Operations Anti-Patterns, DevOps Solutions
- Infrastructure as Code
- Terraform in Action
- Accelerate
- The DevOps Handbook
- The Unicorn Project
- The Phoenix Project
- APIs
- API Security in Action
- Hacking APIs
- Microservices
- Microservices Patterns
- Microservices Security in Action
- Microservices in Action
- Building Event-Driven Microservices
- Microservices Up and Running
- Kubernetes
- Hacking Kubernetes
- Kubernetes Best Practices
- Core Kubernetes
- Production Kubernetes
- Cloud Native DevOps With Kubernetes
- Certified Kubernetes Administrator (CKA) Study Guide
- Security / Hacking
- Black Hat Go
- Defensive Security Handbook
- Languages
- Rust
- Effective Rust
- Rust Atomics and Locks
- Command-Line Rust
- Hands-on Rust
- Zero to Production in Rust
- Programming Rust
- Python
- Fluent Python
- The Big Book of Small Python Projects
- Effective Python
- Python Workout
- Miscellaneous
- Clojure for the Brave and True
- The AWK Programming Language
- Land of LISP
- Seven Languages in Seven Weeks
- Learn You Some Erlang for Great Good
- Go
- 100 Go Mistakes and How to Avoid Them
- Go in Action
- The Go Programming Language
- Rust
- Complexity Science
- Chaos
- The Embodied Mind
- Mind in Life*
- Foundational Papers in Complexity Science, Vol 1
- Foundational Papers in Complexity Science, Vol 2
- Foundational Papers in Complexity Science, Vol 3
- Foundational Papers in Complexity Science, Vol 4
- History, Big History, and Metahistory
- Worlds Hidden in Plain Sight
- Complexity: A Guided Tour, by Melanie Mitchell
- Enactivism
- Action in Perception
- GraphQL
- GraphQL in Action
- Miscellaneous
- The Federalist Papers
- Meditations and Other Classics of Stoic Philosophy
- The Art of Doing Science and Engineering
- When Einstein Walked With Gödel
- How to Invent Everything
- The Skeptic's Guide to the Future
- Unflattening
- Scale
- CODE
- Technology Strategy Patterns
- The Healthy Programmer