I'm a big fan of almost anything from the Pragmatic Bookshelf, but these two really helped drive the point home for me:
The Pragmatic Programmer: From Journeyman to Master. This ages really well. I'd recommend it to any developer.
Pragmatic Unit Testing in C# with NUnit, 2nd Edition. Don't let the title scare you. The concepts are pretty language agnostic, even with the C# examples.