A few months ago, I read a really great article by Jason Rudolph on how to be a better developer http://jasonrudolph.com/blog/2011/08/09/programming-achievements-how-to-level-up-as-a-developer/ and it left a great impact on me. The impact mostly affected the way I think on how to improve programming skills because I didn’t took much action in relation to what it writes about.
That was so until recently, when I discovered increasingly popular job sites codeeval and interviewstreet. They are different from other job offering sites in means that they allow their users to participate in solving various challenges and earn achievements or job offers from great companies. In this way at the same time you’re becoming a better developer and can instantly evaluate how “good” you are based on how many challenges you solve or based on the offers you get. Isn’t that great? Even if you currently have a great job they are really great for practicing and who knows when you might need your achievements.
Update (Jan 09, 2013): Today I discovered https://www.hackerrank.com. A bit different concept but seems more interesting than previous two. I’ll definitely give it a shot.