As we enter 2013, I've been thinking about the idea of resolutions and if I really have any. The problem with resolutions is that if I label them as such, I tend to not want to do them, since they become obligatory burden. But then after further reflection, when it comes to programming, is it something that I ever find to be obligatory?
I'm not a genius
"It's not something I must do but something I want to do..." --- James Fixx
Let me just clear something up: I am not a genius programmer. I didn't start programming when I was 5. I don't love math, and in fact I dropped out of calculus when I was a senior in high school. I do, however, have a profound interest in making a computer read and print commands I type to it. I've been programming since high school and have worked hard over the years to improve this, I guess it could be called a craft, by using sheer will power. Using most trusted tool of trial and error, I've been able to take this passion and develop it into a professional career of manipulating and coercing bits to bend to my will. As I try something, fail, and recalibrate every day, like an onion, I add another layer of knowledge of what it means to program.
I love to run
This brings me to the other thing I love to do: run. I really love to run. However, I am very slow. I've been running off and on now for about 5 years. I don't run for competition. Did I mention already that I'm a slow runner? But what's amazing about running is that regardless of how fast you are, it's the journey that is the most important part of a run (or a trot in my case). To me, it's the sense of accomplishment to see how far you were able to push yourself. I love the self-induced trance I find myself in just by listening to rhythmic sound of my feet hitting the pavement. This meditative state is quite pleasant, and it allows me to do my best thinking. Something about running is both cathartic and stimulating to my mind.
And the point is?
Much like slowly trotting up a hill and looking back at the distance I've traveled, it's the same when I've spent time working on a programming problem to pleasantly discover after the toil how simple the answer was. The problem was in fact so simple that it was beautiful and maybe even elegant. Solving the problem might have taken me longer than I expected, but the satisfaction I get from working through these mind puzzles keeps me returning back to this misogynistic art called programming.
2013 and beyond
As I continue down the road for 2013, these are the things I must not do, but what I want to do:
Contribute more to the Lucy code base
Become a better C programmer.
Program something in D.
Learn a new algorithm and do something neat with it.
Brew lots of beer.
Continue running, stick to good ole trial and error.
No obligatory resolutions from me for 2013. Carry on.