Sometime in the last month or so, I realized that at some point, I had pretty much stopped writing code on my own time. There are a lot of reasons for this: very busy time at my day job, three very energetic children, ongoing house renovations, electronic distractions, and other day-to-day preoccupations. But it was a shock to me to look back and realize that the only code I’d written recently was either for work or for Monotask.
The thing is that I define myself as a programmer, and not so much as a dad, husband, gamer, or a do-it-yourselfer. I am all of those things, and I would say that being a family man is (by far) my top priority; but when I introduce myself, I start with “programmer” (or some variation, which is probably a good topic for a future post).
And to me, being a programmer means writing code on your own time. It means learning a new programming language every year. It means being curious about the way software works, reading others’ code, tinkering with new technologies. It means not being able to sleep until you’ve solved a particular problem that’s been burning in your mind. It means having half a dozen side projects in various stages of completion, and hopefully even a healthy selection of public repositories on GitHub.
Of course there are programmers who don’t fit this description, but this is the kind of programmer I think I am. But it’s not the kind of programmer I’ve been lately.
So I’m going to do something about it. Starting today.
Here’s my n-step plan:
Uninstall Skyrim. I mean, c’mon, I finished it a long time ago. I don’t need to spend any more time in Tamriel right now.
Set up a nice, clean, shiny new development environment. For me, this is a fresh install of Linux Mint 12, which I’ve never tried (I’ve been an Ubuntu user for many years). If it’s new and interesting, I’ll want to tinker with it, and that, in turn, will give me ideas.
Start this blog. To write about programming, you have to think about programming, which makes you a better programmer. The blog platform is Octopress (and therefore Jekyll), which I’ve never tried, so I’ll want to tinker with it, and… well, you get the idea. I’m not going to pressure myself to post to it, but occasionally I’ll want to, and here it will be.
Beef up my GitHub profile. There must be something I’ve written in the past year that’s worth sharing. I know everyone is dying to see my AbstractBaseProviderFactoryObserverFactory. And any new tinkering I do needs to go up on GitHub as well.
Read more programming books. I’m reading Code Complete at the moment, but there are dozens of books out there I’d like to read. Again, thinking about programming makes you a better programmer.
Start learning a new language. So far, I’ve flirted with functional languages but have never gotten very fluent in one. I think I’ll go through SICP and learn me some Scheme.
So that’s the plan. It’s time I became a programmer again.