There is a directory on my computer that I value more highly than all others.
It lives under
~/code/github_code/, which, if you knew my standard directory scheme,
lets you know it's the GitHub repo of a personal project. Curiously, though,
it's not an actual repo. In fact, the directory itself is empty at the moment
(which is why I currently value it so much).
The directory's name is
whizbang is currently less a project and more an idea. It will contain a
project at some point, however, and the project it will contain
will be considered my mangum opus, one that delights and amazes. It will
represent the culmination of all I have learned and done as a programmer.
But it's currently empty.
And that's fine.
whizbang is a reminder to myself to try to tackle the really hard
problems. I want to make software that seems like magic. Software that makes
other developers stop and say, "Wow. I wonder how he did that?" Most software
projects are created to solve rather pedestrian problems, and that's
understandable. Programming languages, of course, are just tools. Most
paintbrushes did not paint the Sistine Chapel. Most typewriters did not
produce Moby Dick.
But at least one did, and that's why the
whizbang directory exists on my
computer (in fact, on all machines I control). I may use programming to make a
living, but that doesn't excuse me from trying to use it to make a masterpiece.
And the emptiness of
whizbang is a message to myself: the clock is ticking.
whizbang hasn't always been empty. At one time, it held the code for
sandman (see also
here). It also once held the contents of Writing
Idiomatic Python. While
those projects have both proven successful, they've also clearly shown
themselves not to be
whizbang is something greater.
Sure, there's more than a little hubris at work here. Who am I, after all, to
think myself even capable of producing something so profound. The short
answer is that I have to at least believe I'm capable of doing so, otherwise I'm
resigning myself to a career of mediocrity. I may not, in fact, be able to
whizbang worthy project. That doesn't mean I shouldn't try.
Over the last few years I transformed my life. At age 28, I was utterly alone, having just broken up with a long time girlfriend, working a job I hated, and totally anonymous in the programming world. Today, I'm married (to a woman I don't deserve) with a wonderful daughter and another child on the way, I'm working at a job I love, and I enjoy a certain amount of recognition in the Python community. All of that happened because I willed it to. I just decided one day, "All right, I'm going to change this." And I did.
That showed me that success and happiness in life aren't things that are just
given to you; you have to work for them. If you do work for them, however,
they're eminently attainable. This gives me hope for
whizbang. If the past
five years have shown me anything its that the willingness to work hard for
something counts for a surprisingly large amount. And I'm willing to work.
In the meantime,
whizbang sits empty. But it's the fact that the directory
exists at all that is most important. You need to push yourself. You need to
believe you're capable of greatness. And, most importantly, you need to believe
that the hard problems can be solved, and that you're just the person to do