They can be about coding, design, best practices, etc but they must all be related to software development. When deciding, please take into account reading style, depth of content and influence they had on your career.
My top 5 (in no particular order)
- Bruce Eckel → Thinking in C++. C++ is complex but Bruce made it simple with a great reading style and clear, specific explanations. I didn’t really understand C++ until I read this book.
- Russ Olsen → Design Patterns in Ruby. Simply, the book that made Ruby click for me. Great structure, examples and explanations of how Ruby makes us think differently. Makes you grok design patterns and Ruby at the same time!
- Joel Spolsky → Joel on Software. I’ve been following Joel’s blog for most of its lifetime and some of his essays, brought together in this book (“the law of leaky abstractions”, “Javaschools”, etc ) really defined me as a programmer. His “can your language do that?” article was what pushed me to try Ruby.
- Douglas Crockford → JavaScript, the Good Parts. The book that convinced me that there’s more to JavaScript than design flaws and bad syntax
- Brian Kernighan & Dennis Richie → The C Programming Language. A dry, content-heavy book that -as a coding beginner- had to slog through at least five or six times before I could absorb it. It does one thing and does it exceptionally well: teaches you all you need to know about the C programming language in a series of detailed, structured exercises.