Looking back at my career and life as a programmer, there were plenty of different ways I improved my programming skills - reading code, writing code, reading books, listening to podcasts, watching screencasts and more.

My question is: What is the most effective thing you have done that improved your programming skills? What would you recommend to others that want to improve?

I do expect varied answers here and no single "one size fits all" answer - I would like to know what worked for different people.

In no specific order...


Working with people far smarter than myself
Always listening to what others have to say, regardless if they're junior, intermediate, senior or guru.  job title doesn't mean anything.
Learning other frameworks/languages, and seeing how they do things, and compare that to stuff that I already know
Reading about patterns, best practices, and then examining my old stuff and applying those patterns where necessary
Pair programming
Disagreeing with everything Joel says. ;)

