1) The Mythical Man month
3) The Pragmatic Programmer
3) Code Complete.
The thing about these books, well atleast 1 and 3 is that when they were written they broke new ground. Or if that phrase bother you, they were the first mainstream publications that brought their core ideas to developers.
Reading these books early in your career will help cement these best practices.
Reading these books after you've been a practicing programmer means,IMHO, that the return you get from reading them goes way way down.
You'll find that you've already learned all/most? of what they are trying to teach.
You'll find yourself getting frustrated that they are preaching what you already know as common sense and first principles.
Or put another way, I'm not sure there is much that someone who has programmed for 5-10 years can get out of those books that they haven't picked up somewhere else already or learned the hard way.
Code Complete: http://codecourse.sourceforge.net/materials/Code-Complete-A-...
Definitely check out "The Pragmatic Programmer"! There's definitely some good nuggets in there that helped me. Distinguishing full-blown prototypes vs. prototypical kernels that can be productionized, a.k.a. tracer bullet prototyping, is one.
This rejuvinated my interest and productivity for reading that book.