Book Recommendations

Let’s forget the standard recommendations “Clean Code”, “Pragmatic Programmer” etc. Everybody knows them. Here’s a list of books I found truly enriching, and possibly underrated:

  1. Designing Data-Intensive Applications: You will understand practically every database after reading this book. You will understand why there are different types of databases, how they work with and store data, and which kinds of databases to pick in which situation. Designing Data-Intensive Applications Book cover

  2. Practical vim: This book made vim click with me and saved me so much time! After reading it and some practice, you can login to any machine and feel right at home. Rarely there’s a need for an IDE, except for code formatting and debugging. Practical vim Book Cover

  3. The Code Book: You will understand practically every encryption method, including its weaknesses, after reading this book. Starting with historic ciphers and building up to modern RSA. One of my all-time favorites. The Code Book Cover

  4. Java Concurrency in Practice: Finally really understand concurrency. My takeaway: Always prefer read-only objects! They’ll never break concurrency. Java Concurrency in Practice Book Cover

  5. The C Programming Language: A complete book on C, including practice exercises. If you follow the exercises, you can build Linux command line applications to pipe data into after just 1-2 hours. Everything else is just syntactic details. The C Programming Language Book Cover

  6. Hacking: The Art of Exploitation: This one is a tedious read, but you’re going to understand the connection between code, compilers, assembler, machine language, memory very well. Hacking: The Art of Exploitation Book Cover

  7. Java Performance: The Definitive Guide: Understand why your application performs poorly. If your code is slower than C, it’s likely your fault.Java is fast. Very fast. Java Performance: The Definitive Guide Book Cover

Slides and Cheat Sheets

Binary content I produce that I want to share with the world.