Bookcase
To read:
General
- SICP
- The Pragmatic Programmer by David Thomas and Andrew Hunt
- Modern Software Engineering by David Farley
Good Practices
- Clean Code by Robert Martin
- Head First Design Patterns by Eric Freeman
- Refactoring by Martin Fowler
Data Structures and Algorithms
- Grokking algorithms by Aditya Bhargava
- Introduction to Algorithms by Thomas H. Cormen, CHarles E. Leiserson, Ronald L. Rivest, Clifford Stein
Data
- Designing Data-Intesive Applications by Martin Kleppman
- Learning SQL by Alan Beaulieu
Testing
- Growing OO Software by Tests by Steve Freeman and Nat Pryce
- Unit Testing Principles, Practices, and Patterns by Vladimir Khorikov
- The Art of Unit Testing by Roy Osherove
- TDD by Example by Kent Beck
Software Architecture
- Fundamentals Of Software Architecture by Mark Richards and Neil Ford
- Clean Architecture by Robert Martin
- Software Architecture The Hard Parts by Neal Ford, Mark Richards, Pramod Sadalage, and Zhamak Dehghani
- Domain Driven Design Quickly by Abel Avram
- A Philosophy of Software Design by John Ousterhout
Distributed Systems
- Understanding Distributed Systems by Robert Vitillo
DevOps
- DevOps Handbook by Gene Kim, Patrick Debois, John Willis, and Jez Humble
- Continuous Delivery by Jez Humble and David Farley
- Accelerate by Nicole Forsgren, Jez Humble, and Gene Kim
Machine Learning
- The Hundred-Page Machine Learning Book by Andriy Burkov
Tech-Specific
- C# in Depth by Jon Skeet