Everything I know about Python...

Learn to Write Pythonic Code!

Check out the book Writing Idiomatic Python!

Looking for Python Tutoring? Remote and local (NYC) slots still available! Email me at jeff@jeffknupp.com for more info.

You Need to Start a 'whizbang' Project Immediately

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.

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. 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 produce a 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 it.

Posted on by
comments powered by Disqus