There are a lot of ways to improve yourself as a software developer. Things such as McConnell's Professional Software Development to reading code samples at CodeProject.com. Ultimately it probably boils down to what goal you have when you say that you want to improver yourself as a software developer.
More and more, I find that when I say that, I'm not talking about learning a new programming language or how to do something fancier in one of the languages I already know. When I say that, I mean: "How can I learn to better solve the problems I face."
To me, being a developer is less about cranking out code as it is creating a solution to a problem.
And I think this is a failure of the 'programming' degrees that colleges are producing. They stress programming mechanics of solving problems. The stress syntax over learning how to figure out just which problem needs to be solved.
Right now, other programming blogs are discussing asking programmers "fizzbuzz" or simple coding questions during interviews as a means to weed out those who cannot code. I'm of two minds about this. I can see where this would be a useful tool from the company's perspective but I have to wonder about the human element. A lot of programmers are geeks more comfortable with their computers than with meeting new people. For them, going on an interview is a stressful thing and they could have simply panicked when pressed to do something - much the same way that some children have a hard time taking tests.