I attended my second local MSDN Event this year and while I was more interested in last month's agenda of new features in Visual Studio 2008, this month's session on IIS 7, ASP.NET 2.0 Application Services, and Security was pretty informative and touched on a few things I've been curious about, so they're always worthwhile to go even if the main agenda's subject doesn't interest you too much. If you're in the Fort Worth, TX area, I highly recommend you attend these events so that Microsoft will know that hey, there's .NET developers west of Dallas too! Besides, Zain is always good for a few laughs as well and he also gave a shout out to one of my favorite books, Head First Design Patterns.
If you're not familiar with the Head First series, they take a different tack than most other books in getting you to actually LEARN the material. Using a combination of humor, casual conversational tone, and offbeat images, they're not as dry as most other technical books and so you're not forced to focus all your energy trying to concentrate on the material, it comes easily.
Since we're on the topic of books, another book I enjoyed was Applying Domain-Driven Design and Patterns: With Examples in C# and .NET. This was my first foray into Domain Driven Design (DDD) and was a pretty big paradigm shift for me. My mindset had always been that "data is king" and so I had been developing from the database up. While most of the apps I do nowadays don't necessarily need the complexity of a full domain model, I find alot of the DDD concepts beneficial and so I try to incorporate some of the DDD practices such as focusing on persistent ignorant objects so I can delay working with the persistence layer as long as possible and using a ubiquitous language. I also just recently bought a copy of the Eric Evan's original DDD tome I'm hoping to start reading soon. The C# book I thought was a little light on the details of the why's and how's of DDD, so I wanted to go straight to the source.
I think I've rambled long enough, I'll end my post with a link to a great series of articles : Foundations of Programming. Karl pretty much nails it on the head in the first article and all the things he mentions are things I've been incorporating into my own development practices the past few years. These are concepts that transcend languages and make you a better "programmer" period, and not just a better ".NET programmer".