If I could only recommend one book that every software engineer must read it would NOT be The Pragmatic Programmer: From Journeyman to Master, but to be fair I’m not sure what it would be. I will say that when you graduate with a B.S. in Computer Science your university should send you a copy of this book.
Basically what this book does is tackle the problems that every programmer will face on every project, these same problems are rarely mentioned in undergraduate software engineering courses. An example of the greatness of this text can be illustrated by simply randomly opening it. The book is arranged in short easy to read sections, I just opened to section 35 on “Evil Wizards”. Most sections include at least one tip that summarizes the advise from the section. The tip for section 35 is “Don’t Use Wizard Code You Don’t Understand”. Those with some experience will see the virtue of this advise immediately, however I remember a day in the spring of 2003 when I would have asked why. Well you see my dear recent graduate the code that the wizard generates is eventually going to be an integral part of your application, so the wizards code will become your code. Would you just bang on the keyboard and not bother to understand the code you wrote? This would be the equivalent of not understanding generated code.
You’ll eventually learn everything in this book by working in the field, but it’s a little easier to just read the book and start being more pragmatic. I encountered this book after having a bit of experience, so there were many sections where I valued the advice given a great deal having already struggled with similar problems myself. This is the rare book in our field that captures a vast amount of high level experience, has lasting value beyond the most recent technology fad, and is just plain fun to read. For those with a Safari account it is available online, but this is a nice book to have on your bookshelf. Though I must admit I keep mine beside my easy chair, it only makes it to the bookshelf on cleaning day. Overall, I’d rate this book 5 beers.