The Pragmatic Programmer
The Pragmatic Programmer is a must read for anyone who plans to invest time in building software. I initially purchased this book in 2003 at Barnes & Noble in New York the afternoon before I moved to Seattle. Honestly, I think it's one of the best books I've ever read in the topic of software construction (and I say software construction because that is the perspective of the book). It provides a ton of real world examples of better ways to approach the problems involved with building software. From specification to design, prototyping, construction, testing, and even documentation there are real world solutions provided as a guide line for a better way of solving issues that arise in software development.
At the time, many of the topics covered in the book weren't really new to me, having a strong background in the better code building open source communities. But I was glad to see a book that finally covered these sorts of topics, and did it from a high level, and in such a broad sweeping fasion. And even with the topics not being new, the perspective was fresh, so I definitely cannot say I didn't learn alot from this book. I wish they would make it required reading for CS students, because I don't know how many highly educated people I've worked with that obviously had yet to learn most of the lessons outlined in this book.
If you're a career engineer, developer, or a serious hobbiest and you haven't been in the industry over a decade, or even if you have, this is a good read. In addition to being full of great information, it's a nice light read with somewhat humorus and story-like analogies. This gives the book the ability to have a target audience of all shapes and sizes of people who build software. I highly recommend it.