Room for improvement

Posted in: Thoughts, Red Horizon

I was going to start this post by saying something like 'I often complain about the number of hobbies I've accumulated', but to try back that up I did a Google site search for the words 'complain' or 'hobbies', and it turns out I really haven't complained about that at all. I guess I just thought about it a lot, or complained about it in my own head, which surprises me that I haven't made a blog post about it because the things I think about or complain about are quite often what I blog about - sometimes it feels like this blog is just one big online whine-fest punctuated by brain farts.

So I've got a bunch of hobbies. There. And as well as complaining about the number of them (in my head), I often feel bad that I can't dedicate the amount of time I would like to each of them, mainly because I have other hobbies that take up my time. (Seriously, I should just cut the number of interests I have in half and then I won't have anything to complain or feel bad about!)

One of those hobbies I've managed to find some time for recently is an old programming project, that 2D game engine for the classic Command & Conquer game, Red Alert, that I started back in 2006 which I entitled 'Red Horizon' (it even has a tab in the navigation bar of my site). That project hasn't seen any real activity since mid-2008.

Domo-kun, hiatus

For the coders out there: have you ever taken some time to look at the old work you did - the code you wrote from a couple of years back - and then eyed it with mild curiosity as you read it back and wondered, What the hell was I thinking? Yeah, I had that sort of moment when I went back to my Red Horizon code last month and tried to figure-out how to continue it.

It's only been 3 years since I last worked on it, yet in that time I've learned so much more about programming that re-reading my Red Horizon code causes me to scratch my head and occasionally brings some bile to my mouth. I mean, it's not terrible code, but over the course of the work project I've been assigned for almost 2 years now (went live this weekend, so yay that's over) I've been trying to hold a high standard to my own work. That standard clearly isn't present in Red Horizon.

I remember having this sort of talk with my university classmates in our final year. When we weren't studying or playing networked games of Tetris on the Unix machines, we once talked about taking a look at all the code we wrote in first-year and disbelieving that stuff was actually our own. What the hell was I thinking? would often come up, because what we put together as first-years just looked so crude, so 'beginner-ish', so the work of a newbie.

Of course, being work from our first year of university, that code was the work of newbies, but now, more than 5 years out of university, which itself was 4 years worth of programming, I can still look back at code I wrote 3 years ago and have a good old WTF moment.

I'm not really sure if that's a testament to how much I've learned or improved over the years, or how little I actually knew back then. If anything it's reminded me of another conversation I had with my friends at university - not the coders - where we discovered a pattern amongst ourselves in the attitudes we had towards our own fields of study: that as first-years we didn't know anything, as second-years we thought we knew everything, but in our final year (fourth for most of us) we realized that we knew very little.