I have a confession. One of the core things about who I am is that I consider myself a programmer. And yet, for over four years now, I haven’t done any programming outside of work.
It’s true! It’s shameful! My excuse is a lack of time. But that’s a terrible excuse. It’s one of those things I can’t really explain. Programming makes me feel so good and yet I haven’t done any programming on my own.
Well, I changed that. A buddy and I were talking about making a game – perhaps even starting a company to do so. Finally last weekend I proposed that we meet up and start programming. Neither of us has much experience with this, but I think we’re both excellent programmers. So the first thing was just to start getting experience making a game. We decided on a tower defense-style game, and a game framework (Love2D). It uses a language I hadn’t tried before (Lua). And to be honest, I’ve rarely done much graphics programming or games. So, just getting started was a challenge.
After the first 4-5 hours, I was really enjoying myself. I had some basic competency in the language, and before I went to sleep I realized “hey, I have enough knowledge now to make a tetris clone!” So, that’s what I did. Only took a few hours of puzzling to get it working, with menu, all the keys and everything. Then, as I was cooking dinner, I thought to myself “Hey, you know what would be cool? Trying to make Conway’s Game of Life in under an hour!” I like Game of Life, it’s a very simple sort of program that leads to interesting emergent phenomena. And, lo and behold, I was able to write a decent version in about half an hour. Then, another half an hour to add different game speeds, pausing, and different grid sizes.
I’ll be honest, I was really happy with these experiments. It was rejuvenating – I felt like I did about programming way back when I was in high school. That there’s just a whole world of things you can create and mold exactly how you want. Things you care about, rather than things you do for grades or work. I’d also been really down on my programming abilities. Because, although I consider myself a good programmer, and most people I work with agree, I suffer from a startling lack of diversity in experience. All the cool projects I see other programmers doing, I know nothing about! I was really scared that making Tetris would be difficult, when in fact it was really, really simple.
At this point, I’ve probably spent about 15 hours programming in this environment (love2d/lua, editing in vim). And I feel wonderful. I’ve got a playable tower defense game, and I’m comfortable making pretty much any sort of feature change to the game at this point.
Maybe this is pretty specific. But I think generally people become unintentionally confined in their jobs, as though they were wearing a straitjacket. They end up creating nothing. But creating anything is rewarding and refreshing.