I’m not a programmer. Plug me into a terminal and likely the only thing that you could wrench out of me is hello world
. I can hack things together in the browser and I can certainly mask my contempt for Typescript for a day or two but there’s a hard limit for sure.
Maybe I’m too scattershot for serious programming, too uninterested in the details of ternary operators or callbacks or how events bubble up in the browser. I like the philosophy behind programming, behind the DOM, behind software in general (one of my favorite novels is still Close to the Machine by Ellen Ullman) but the act of fine programming or engineering is something beyond me.
And yet! I am deeply jealous of programmers and the freedom their skills afford them. When they see a problem they can just fix it! I am often upset by this when I watch them tackle an impossible task with sheer will power or when I watch an engineer sit in front of unhinged spaghetti-like systems and slowly dig us all out of it.
Oh to right the world, one semicolon at a time!
When I sit down to code I only want to hack things together. I don’t care about linting, I don’t care about perfect logic or reusability. I simply want to test my ideas and explain them to someone who might make them better. Coding as prototyping, etc.
So I’d say I can “program” to some degree but I certainly can’t “engineer” anything.
Although, there is this other type of coding that I reckon I have a knack for: understanding the thirty thousand foot view of a code base, quickly grokking when duplicates exist and when a component needs to be sent to the final ring of Hell. I can’t perform the task of good “engineering” but I can see bad, sloppy, lazy or rushed work almost immediately. Which is kinda weird! It’s like being able to understand a language without being able to speak it.
I say all this because I’ve been spending the last few weeks returning to code for the first time in years, refactoring all our icons at Retool, and I’d forgotten what it feels like to be lost in a giant codebase. There’s warm comfort to be found in untangling the UI layer of a big web application.
Plus, I’d forgotten what it feels like not to ask permission for changes and instead make pull requests and break things and not ask for forgiveness because the UI can be better, it must be better. There’s a momentum to this sort of work that I crave deep down in my bones because it doesn’t rely on meetings or six months of quarterly planning or going up the chain of command.
And what I love most about shuffling code around is that every day there’s progress, every day there’s a tiny degree of success you can point to.
One semicolon at a time.