I read DOT NET Curry on a regular basis. One of the things that I think is really important to understand is object orientated design and the SOLID principles originally documented by Uncle Bob Martin.
I’m not going to repeat what has been said by others, this blog will focus on some (hopefully) well thought out examples, but this post links to some of the resources I have found interesting. There is a wealth of information on DOT NET Curry.
Why should you care about SOLID principles? Isn’t it just something else to remember? The main thing in my mind is that it changes your way of thinking away from the existing code into more about what the code should be doing. Also having more objects, but better named, shorter and simpler with less dependencies really is a breath of fresh air – it makes a system really reliable and easy to maintain if you can read the code. In my view, all developers should study SOLID principles to understand just how readable your code could be, before you decide if you should use this or not. Code readability, whatever methods you use, is very important. If your code is readable enough, you can spot many of your remaining bugs just by reading it.
For those new to object orientated design, I highly recommend Head First Object Orientated Analysis and Design on my Software Architecture and Design Books page.