+1. Also, Rapid Development, by McConnell[0]. I would say that it's even better than Code Complete.
It would be considered "quaint," these days, but Writing Solid Code[1], by Steve Maguire, was a seminal book in my education. I still use many of the techniques he mentioned.
And I cannot say enough about The Design of Everyday Things, by Don Norman[2]. That book changed my life. I would consider it required reading, for anyone that develops anything that will be used by other humans.
Krug's "Don't Make Me Think", while more UI / UX is a solid compliment to "Everyday Things."