Coding is only one aspect to professional programming. My job requires me to code, but it also requires me to do other things for extended periods – sometimes days or weeks go by when I'm not just coding.
I fear letting hard-won programming skills atrophy while I sit in meetings, draw architecture diagrams and annotate requirements. (Not to mention I don't trust people to write requirements who don't understand the code.)
I can't just read books and magazines about coding. I'm involved in some open source projects in my free time, and stackoverflow and friends help a bit, because I get the opportunity to help people solve their programming problems without micromanaging, but neither of these are terribly structured, so it's tempting to work first on the problems I can solve easily.
I guess what I'd like to find is a structured set of exercises (don't care what language or environment) that…
- …I can do periodically
- …has some kind of time requirement so I can tell if I've been goofing off
- …has some kind of scoring so I can tell if I'm making mistakes
Is there such a thing? What would you do to keep your skills fresh?