The Pragmatic Programmer
Duly considered a classic in programming - amazing read, really entertaining, easy-to-read and educational.
Even though it was written probably more than twenty years ago, it is surprisingly timeless. Best practies remained about the same - some of these are already integrated into a modern development workflow (eg. I don’t think any project lacks tests and version control these days), so you don’t have to worry about those, but it’s still good to read why those are crucial in the first place.
The little stories and metaphores are spot on and fun at the same time - the story of stone soup and the boiled frog, plus the broken windows effect, leave some food for thought.
Especially important reminders for me were Decoupling and the Law of Demeter, Orthogonality, avoiding Coding by Coincidence, The Evils of Duplication and It’s All in Writing.