Software craftsmanship

My latest commit on a Python TDAmeritrade API wrapper.

That purple MERGED button gives me one of the most satisfying feelings imaginable. As someone who’s been playing with code for well over three decades, seeing my contributions made part of a project that others and myself use brings me a lot of joy.

I’ve always enjoyed learning how to make computers do things, from the time I was four or five and playing video games on my dad’s IBM PC/2. When I was in fourth grade we did some computer labs with BASIC, and just something like creating an infinite PRINT loop was a great source of amusement. The advent of the web brought HTML, CSS and Javascript skills, tinkering with WordPress, Wikis, and other open source projects taught me PHP. There was a problem though.

All of my dabbling was just playing upon the surface of a giant pond. The more I experimented, the more I realized that I was missing something, conceptually. I started getting stuck. My projects would eventually get too big to work, to complex for me to refactor. I became discouraged, and kept to support roles, helping end users and building and deploying business networks.

Twenty plus years of being “the computer guy” will take a toll on anyone. I suffered from the symptoms of burnout without recognizing the cause. I began to feel a sort of contempt for the people who I was supposed to be helping. It became harder for me to exercise the type of patience needed to deal with older people, unaccustomed as someone my age or younger is to technology. And it became harder for me to maintain the demeanor needed for someone in that role. So I started checking out, and saying no.

It was frustration that drove me back to school. The realization that my self-paced learning had hit a wall, and that I needed some help to get to the next level if my skills were ever to match my ambitions. The other part was seeing job applications with degree requirements, and being unable to get callbacks for the jobs that I wanted. Now, I realize that a lot of it was the lack of challenge. Looking back, I think I had probably grown a bit complacent, arrogant even, unhappy with the direction my career was going, and unchallenged in the ways that I needed.

So the past few years of school has been very fulfilling. The curriculum wasn’t quite what I expected, or as comprehensive as what I think is needed in today’s IT world, but I’ve managed to run with it. Despite starting numerous projects over the past few years, I still haven’t delivered anything that I would consider finished, but the programs I’m building now are a step up from the things I was making a few years ago.

Programming is ultimately a creative art. Having abandoned my musical aspirations several years ago in favor of job stability, perhaps I’ve been craving that outlet in a way that hasn’t been fulfilled. And building software systems, or as in the case above, contributing to an existing project, making it a little bit better, commit by commit, gives me the same sense of craftsmanship that songwriting did.

Leave a Reply

Your email address will not be published. Required fields are marked *