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:
-
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.
-
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.
-
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.
-
Java Concurrency in Practice: Finally really understand concurrency. My takeaway: Always prefer read-only objects! They’ll never break concurrency.
-
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.
-
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.
-
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.
Slides and Cheat Sheets
Binary content I produce that I want to share with the world.
- Apache Kafka Presentation Slides: Associated with my Apache Kafka Introduction