Confessions of a Mediocre Programmer


I cannot call myself a true computer scientist, even though that’s what my bachelor’s degree proclaims. I’m just an asp.net web page builder. Not even a very good one. I’m not really familiar with web standards, beyond “thou shalt not use tables for layout, except when thou must, and then thou shalt wince inwardly and curse under thy breath while doing it.” Everything I know, I learned in one of only 2 ways. Maybe I “learned” it in a terribly lax computer science classes at a liberal arts college. Or maybe I picked it up at my first and thus far only job: taking other people’s horrendously built, table-layout asp.net pages and making them do something slightly or completely different, in a possibly better way, at least to the extent of removing 13 layers of nested and completely unnecessary <asp:Table> tags.

Some days I feel like a programmer. For the past six months I’ve been working with 4 articulated computer monitors, and I already feel like I cannot live without them. I need enough real estate to keep 15 windows open at once — it’s no longer a topic for debate. I have 3 tokusatsu figures displayed on my desk to prove that I’m a nerd. (If anyone at my workplace knew what Kamen Rider was, they’d know I was beyond Star Wars and Doctor Who, and into the realms of true dorkery. They don’t, so I assume anyone who sees them is just baffled into silence, because remarkably I’ve never had anyone ask about them.)

Most days I don’t feel like a programmer. I don’t have programming side projects or learn new languages on my own time. I barely touch my desktop at home, because after spending all day typing and clicking, the last thing I want to do is spend all night typing and clicking.

Here’s a confession: I like programming, but I’m not deeply in love with it. I don’t eat, sleep, and breathe code, nor do I actively participate in the Culture. Due to a combination of a strong work ethic and a penchant for problem-solving, I’m not the least effective programmer in the world; nevertheless, I am an impostor who chose a CS degree because everything else sounded too dull, too hard, or too useless.

For myself, personally, this state is a victory of sorts. I walked into my first CS class six years ago knowing almost nothing about coding, having never written even so much as a working “Hello World” in any language. Now here I am with 4 articulated computer monitors and a basic knowledge of how coding works and what it can do. I proved to myself that I wasn’t wrong when I thought, “You know, writing code sounds kind of interesting and different. I bet I wouldn’t be bad at that.” Yet I struggle to find value in the direction I’m plodding.

Everything I read, everyone I talk to, and every personal standard of success to which I’ve ever held myself tells me that I am failing. The common wisdom seems to be that a programmer who doesn’t have full commitment and obsession can never be a good programmer. I’m slinging more terrible code at the spaghetti soup of terrible code that is The Internet. I’m just knowledgeable enough to be dangerous. The pressure to be passionate rises around me and threatens to drown me.

But it’s not all misery. I know my little team here at work appreciates me. My closest coworker and I have learned a lot from one another, and my boss at least appreciates that I’ve significantly increased the output volume of the team and freed up more of his time for administrative tasks. But I don’t have much to offer besides output volume. My company could have hired someone with a wider skill set and a greater enthusiasm for new web technologies and new ways of doing things. Someone who would challenge the status quo instead of just trying to catch up to it, someone who would impress and go beyond, rather than just struggling to fill the space allotted.

The thing is: in reality, they might have preferred to, but they couldn’t have. This little company has nothing to offer a young web programmer of true skill and passion. They jumped on me when I sent my resume, and despite a mediocre performance in interviews, they hired me on the spot because I was friendly and entry-level passable and also the only candidate on the horizon.

So what does this mean? Most likely, it means that as a mediocre programmer, I’m right where I ought to be. I’m doing more good overall for this company than bad, and I’m certainly more helpful than nobody. As a mediocre programmer, that might be the best possible use of my skills, such as they are. The moderate demands of this job actually fit my moderate enthusiasm for it fairly accurately.

Here’s another confession: I could go from mediocre programmer to good programmer if I made the commitment, but I don’t want to. This isn’t my life’s final and ultimate calling, and I know that. Until another life direction surfaces, I’ll just keep filling my slot with a sense of appreciation for the talents of my more obsessed colleagues. A good programmer might look down his nose, but then, he might be glad when I’m his user someday, and I know enough to respect the effort he invested.