Justin Etheredge recently posted a question for the community on his site. I think this is a good thing to think about because my definition of a good developer is one who continually tries to be better at their craft. My suggestions may be very similar to others but I would love to hear feedback.
Read : the first suggestion I have is a bit obvious. I like to read books and blogs on programming – especially methodologies and architecture. Its hard to find good books becuase there seems to be an over saturation, many of which are not good. That being said, there are quite a few that I would still recommend : Head First Design Patterns, Don't Make Me Think (not really a programming book but important for anyone that writes applications with end-users) and Code Complete. Additionally I'm really looking foward to Beginning ASP.NET MVC by Simone and Keyvan. As for blogs, there are tons I subscribe to but a few I'll mention are Justin's, Jurgen Appelo's and Dustin Campbell's.
Share : I first started my site to help myself and hopefully others with programming topics. As I chose a subject to write about, I realized I did a lot more research than I would if it was just something I wanted to learn. Additionally, there was a lot of experience that I gained from the comments on the articles. Sharing information with a high level of transparency helps you become a better developer because you will get feedback on your work.
Set Goals : Set goals to learn new languages / techniques. I start off by reading blogs/books/articles then think of achievable pet project to use these new techniques on. The progress on the project can be used as the baseline for determining your progress. This is not saying you would be an expert in the new area but, in my opinion, is one of the best ways to learn.
There are tons of additional ways to become a better developer and I would love to hear your suggestions!