husk.org / blog. chaff. occasional witterings.

2009-01-13

A Resolution For 2009

computing 23:18:07

I know that it's not quite the fresh new year any more, but I still have the metaphysical hangover from the new digit in the number. I never did properly finish doing any visualisation on my raw web output statistics for last year, and I've not properly written up my new year's resolutions either.

Anna Mondo thinks that it's a bad time for resolutions, and for health issues she's probably right- you need comfort. For programmers, though, new year feels like a good time to do things: it's dark and cold out, so the natural "hide at home" inclination is actually looked on with less scorn by the rest of world, and what better arbitrary turnover point is there?

So, what do I want to do? Over the last year I've definitely branched out; I've released code in languages that were new to me, letting JavaScript, Python and Ruby compete with Perl for my attention. I had a fairly productive end-of-year, complete with a lot of Flickr toys and an interview on their code site (which was a very pleasant surprise.) So, what do I need to change next year?

I think there are two ways to go. I agree with Giles Bowkett that new languages aren't the way to go, but I disagree with him that starting lots of new projects is. Instead, I'm taking some advice from Jonathan Rasmusson on how to become a better programmer: keep working on things.

His post, evidently, is from the point of view of a commercial freelancer, but some of the same lessons apply to personal projects. It's tempting to launch them, and then watch as the world notices, and move on, allowing others to take it further. I don't think I'm really happy with that, though. groupr, snaptrip and the two most recent Flickr API explorations all ended up with items left on their todo list, and it's poor form to leave them unfinished forever (even if they did reach a point where there was enough to publish them).

Beyond that, though, there's the worth of making sure your code is readable after a time, by returning to it, and the related skill of refactoring, as you go back and do things better. As Rasmusson says: "You basically miss out on all the great feedback that would tell you where you kicked butt, and where you screwed up. All of which would of course help you on your next project."

Of course, that doesn't entirely mean "no new projects". I'm only human, and anyway, there are a couple of things that I've left in half-finished pieces for so long that, to my mind, they almost count anyway. Nonetheless, I hope to go back and extend existing stuff too. Perhaps that's just something I should be doing anyway, but then, aren't most resolutions? Happy new year.

navigation.