Closed. This question is This question is off-topic . It is not currently accepting answers. Want to improve this question? Update the question so it's on-topic for Software Engineering Stack Exchange. Closed 5 years ago. Improve this question

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?