The Pragmatic Programmer
I just finished it.
If you program for a living, read this book. It will save you many headaches. This should assigned to every computer science student; it just lays out the real world problems and proposes practical solutions to software engineering. While reading the book, I have noticed that some of my work has become much better now that I know how to be aware of what I’m doing, what mistakes I’m making, and how to keep code in shape.
There’s still much more I need to learn, though.