Coding is not life

I’m a software developer, by trade. I’ve been programming for about 20 years now. It started when I taught myself BASIC so I could create games for my TI-86 graphic calculator, much to my high school calculus teacher’s chagrin. Over the years I’ve become a pretty damn good engineer.

I got a Ph.D. in Electrical Engineering, I’ve presented at at least a dozen conferences, I’ve played an important role at three separate startups, I created a popular open source Raspberry Pi robotics library, and I’m a fairly influential person in the Node.js project. Now I don’t say this to brag, rather I tell you this so you will listen when I say:

Making coding your entire life is to miss the point of life.

I started this piece with “I am an engineer, by trade.” This phrasing was intentional, even if it is a more recent development. I am not an engineer to the very fiber of my being, nor do I want to be. The thought scares me, if I’m being honest.

This may be a side effect of the perspective shift I’ve gone through since I left Texas and transformed into the person I am today. This shift leading to a disdain for the ordinary, that recognition and understanding of the “hopeless emptiness” that is life in much of the U.S. No matter. Our understanding of the world, while informed by it, is not predicated on our path to that point of understanding. And here’s what I understand completely:

“Coding is life” is a fucked up ideology.

So why the dismissal of “coding is life?” (now that I have some of you up in arms). I’ve seen where this leads. Hell I’ve experienced where it leads.

When you devote your life to coding, your personal identity becomes intertwined with the technology your using. You might be thinking, “what’s wrong with that?” Indeed, a lot of developers aspire to have their identity intertwined with technology. They shout “I am a Node.js developer!” or “I am a Rails developer!” or “I am a Haskell developer!” as if this informs everything about them. And maybe it does inform everything about them.

Aye, but here’s the rub. Technology is fleeting, and our lives are long. When I was born, C++ hadn’t been invented yet, which predates virtually every other language in use today by at least a decade. I’m not even particularly old either. I am most likely not even half way through my life yet.

If the invention of every language in use today except C was invented in the first half of my life, along with GUIs, cell phones, the Internet, what will be invented in the second half? It boggles the mind. So think about what this means if you base your identity on a specific technology, as so many engineers do.

Your identity will be obsolete in a fraction of your life. That flame war you fought so valiantly in? Forgotten in the blink of an eye. What is the best programming language? The best framework? The best server stack? The best programming paradigm? Doesn’t matter, because it will all be forgotten. There are more important things to spend our energy on, to wrap our identities in.

Basing your identity on technology doesn’t just harm us as individuals. It hurts our industry as a whole. When your identity is wrapped up in a technology, critiques of that technology become critiques of you. I think this is the root of flame wars. The source of so much abuse and harassment online. The reason so many people don’t want to get involved in open source, or gaming, or tech events.

Technology as identity creates vitriol and violence.

So let’s refocus our lives. Let’s drop the technology identity and realize that it’s just a tool. A tool used to do our jobs. And that our jobs are just that: jobs, not life.

Let’s instead wrap our identities in something grander. Let’s expand our understanding of the human condition. Work to improve it. Get involved in the arts. Strive to make ourselves better people.

Because coding is not life.

People are life.