I have a great interest in helping decent programmers become good programmers. I think it's partly because I remember my own beginnings and I empathize. I wasted a lot of time getting to where I am now, and honestly, I don't want people to make the same mistakes. For too long I focused on the what and not the why, but about 9 years or so ago, I learned that it's the principles that count. Now, I readily admit that I am not the greatest coder in the world, but I will say that I do expend a whole lot of effort at being a good one. Part of what I do is read books.
There are many books that I recommend for programmers to read. My list actually needs a little updating, but all in all, it is still a pretty good list. However, it is a little overwhelming. If I had to pair my recommended reading down to a small list, I think it would go something like this this:
1. Agile Principles, Patterns, and Practices in C# - At the minimum, every programmer needs to understand concepts like Single Responsibility, Open-Closed Principle, Liskov Substitution, Interface Segregation, and Dependency Inversion. This is the book that explains all of this and much more. If these concepts are new to you, you can read about them here.
2. Refactoring - I can't believe I waited so long to read this book. It is one of my favorites. This book will teach you how to structure your code and make it more readable. Like the first book, it will change your thinking process around class design and method structure.
3. Clean Code - I am currently reading this now. When I first bought the book, I thought it would be a regurgitation of books #1 and #2 (on this list). I'm sorry folks, but if you don't know it by now, I can confirm it: Uncle Bob does not disappoint. The chapter on methods is alone worth the purchase price of the book. This is one of the best programming books I have read in a while...and trust me here, I have read some really good books this past year.
At this point, I think, you can worry about patterns, domain-driven design, unit testing and all the other stuff because you will have a good foundation (or at least an understand of what a good foundation is).
If you have a short list, please post it up. I would love to see it.