Code complete is mandatory reading for all coders. It doesn't preach, necessarily about how to code, it peaches about how not to code. As it's not language specific, it is by nature is about the appoach, the process and the constructs of writing good, solid code. Some of the Coding Horrors are hysterical...of course, I don't get out much.
Every few years I pull out my old ragged-edged copy and just peruse. And each time I do, I find new lessons and reclaim old one's.
“The goal is to minimize the amount of a program you have to think about at any one time. You might think of this as mental juggling—the more mental balls the program requires you to keep in the air at once, the more likely you'll drop one of the balls, leading to a design or coding error.”