The book that has helped me most in doing exactly what you are saying is The Pragmatic Programmer by Andrew Hunt and David Thomas. It is not language specific and has made me a much better programmer.
"Nothing is sure but death and taxes" I say combine the two and its death to all taxes!