This is a compilation of my personal favorite technical books
General reading for every developer
- Clean code, Robert Martin
- Clean architecture, Robert Martin
- The pragmatic programmer, Andrew Hunt
- Extreme Programming Explained: Embrace Change, Erich Gamma
- Refactoring: improving the design of existing code, Martin Fowler
- Code Complete: A Practical Handbook of Software Construction 2e, Steve McConnell
- Introduction to Algorithms 3e, Cormen
- Nonviolent Communication: A Language of Life, Marshall Rosenberg
Computer Systems
- Operating systems 9e, Stallings
- Computer organization and architecture 10e, Stallings
- Computer Architecture: a quantitative approach 6e, Patterson
- Computer Organization and Design RISC-V, Patterson
- Operating system concepts 10e, Silberschatz
- Distributed systems: principles and paradigms 3e, Tanenbaum
- Foundations of modern networking, Stallings
- Computer networking 8e, Kurose
- Distributed systems: concepts and design 5e, Coulouris
- Real-time systems: design principles for distributed embedded applications, Kopetz
- Hard real time computing systems 3e, Buttazzo
- Structured Computer Organization 6e, Tanenbaum
- Modern Operating Systems 4e, Tanenbaum
C/C++
- The Ansi-C Programming Language 2e, Dennis Ritchie
- C in a Nutshell: The Definitive Reference, Peter Prinz and Tony Crawford
- The C++ Programming Language 5th edition, Bjarne Stroustrup
- A Tour of C++, Bjarne Stroustrup
Introduction to Embedded Programming
- Make AVR Programming: Learning to Write Software for Hardware, Elliot Williams
Performance Analysis and Data Visualization
- Storytelling with data, Cole Nussbaumer Knaflic
- The big book of dashboards, Andy Cotgreave, Jeffrey Shaffer, and Steve Wexler