I struggle with the identity of “programmer”.

I have been writing code professionally on-and-off for almost a decade, but I’ve never the “canonical” titles: programmer, developer, software engineer. I’m good at programming and I enjoy it. In fact I find it almost addicting, when I go a while without writing code I find myself looking for excuses to do it. And because the skill is relatively scarce, when I think about how to have the most impact with my career, finding a high-impact organization and then being a programmer there stacks up pretty well to many of my other options.

But there’s something about the identity that sits uneasy with me. Jonathan Edwards captured some of this:

Programming sucks because we like it that way. It entertains us with puzzles; it affirms our differences from the outgroup; it rewards us with power and wealth. Enough. I am now an anti-programmer.

https://alarmingdevelopment.org/?p=1263</footer> </blockquote>

Programming is a kind of elitism: we have these enormously powerful machines that are extremely difficult to use well. If you have mastered the arcana you are secure economically, you have a leg up. You are above the API.

But there’s another angle to all this. Programming is rarely an end to itself. It’s a means, just a highly abstracted and universal one. Being a programmer is saying that you don’t care much about the underlying issue, the work and its impact on the world. What you care about is the tools you use. This seems to me fundamentally wrong. Falling in love with tools, with the “meta” of a problem, can be dangerous.

Yes, craftsmanship is a virtue.

Yes, comparative advantage leads to greater efficiency.

Yes, a flexible set of skills can allow you to adapt to new problems as they come along.

This has been the story of most of my career so far.

The danger is that sometimes you come across a problem that your existing tools can’t solve. And you’ve identified so strongly with your identity as a programmer, or a data scientist, that you hesitate to shed that skin and become someone new because the problem demands it, to live your own hero’s journey.

I am trying to do that now, and it’s a struggle. I like writing code, I like investigating data. As Chris once said to me: “I’m addicted to flow.” But sometimes, maybe, we need to do more.