Books can be a tricky thing for programmers: Unless the subject matter is fairly evergreen and established (like algorithms), the constant churn of what constitutes "current knowledge" can makes books seem like an unattractive, or even useless, resource for programmers. But there are some books I want to talk about today that I think every software developer should have within arm's reach!
Gayle Laakman McDowell's Cracking the Coding Interview may be the 800lb gorilla in terms of data structures/algorithm interview prep, but I honestly think that Aditya Bhargava's Grokking Algorithms is a much better place to start. GA will provide you with a friendly and clear introduction to algorithmic techniques as recursion, dynamic programming, various sorting methods, etc. This might be too elementary for folks with a computer science degree, but this is an ideal introduction to the world of algorithms for newer developers
Steve McConnell's Code Complete covers a wide array of topics related to general programming and software engineering. This book is especially valuable for newer devs when it comes to getting to know the landscape of software engineering and moving your "unknown unknowns" to "known unknowns".
Steve Krug's Don't Make Me Think, Revisited is essential reading for any developer who designs or works with UIs in any way, shape, or form. Krug lays out what you should be doing to build friction-free UI, and provides a thoughtful framework for you to utilize to approach building for the user first and foremost.
Andy Hunt and Dave Thomas's The Pragmatic Programmer lays out a practical framework to building software in terms of personal attitude, approach, flexibility, etc. The way to think about this is that if Code Complete introduces the landscape of writing software, TPP provides guidance as to how to best navigate that landscape.
Git is one of the most important tools that a developer needs to know, and it can get pretty hairy from time to time. Because os this, I think that every developer could benefit from having a paper copy of Scott Chacon's Pro Git on hand. And yes, it is available for free online, but having it in your hands is faster and more immediate.