Committing to the craft of programming
Fear, among other things, has so far held me back from trying to get really good at it. What do I do?
Some housekeeping before the actual post: Hello, reader! I’m switching my publishing schedule to two free posts and two paid posts per month (so free subscribers get two posts a month while paying subscribers get four). To get the full experience and unlock paid posts, please consider becoming a paying subscriber. Paying subscribers get more vulnerable posts like this one, but also more assertive ones like the recent one where I shared tips on how to move abroad for work. There’s more good stuff to come and I look forward to seeing you on the inside. Thank you for considering!
//
Last week we had an internal company summit for the RND wing (Research and Development, under which Engineering sits). One of the highlights for me was a panel discussion among three Distinguished Engineers: Jeremiah Brazeau, Mike Shaver, and Duncan Davidson (public information).
I won't divulge the contents of the discussion, and I don't think I need to because my point is, throughout that session, I caught myself asking this question a lot: will I ever rise to this level of impact at any business?
Each time, following a line of what I think is logical reasoning, I came to the answer "no." The main reason I could think of? Lack of commitment to the craft. Doctors wear scrubs, engineers wear hard hats, and soldiers wear uniforms. Those artefacts, practical they may be, also have a psychological effect on the wearer. I am a doctor. I am an engineer. I am a soldier.
I have so far been hesitant, maybe even reluctant, to wear the hoodie. I happen to be programming at my day job, but don't call me a programmer. I am not a programmer.
In this post, I want to introspect why this is the case. Why have I not decided to commit to the identity of a programmer and pursue excellence in the craft of programming?
Fear is the big deterrence
The main answer, after looking at every corner of my mind and heart, is that I'm afraid of failing to rise to the level that I'd expect myself to once I've gone all-in and said "I am a programmer."

It's like that guy in that movie who is afraid to commit to a relationship with a person that he knows he likes but isn't sure is "the one." Just drawing this comparison makes me nauseous. What bullshit!, I hear myself screaming to myself. Love is eighty percent nurtured.
Is the guy's problem that he believes that "the one" is out there and he needs to keep searching the 7 billion human population for that person, holding out for a better outcome?
Or is that the symptom of a deeper problem, perhaps, say, that he's afraid of opening up fully to this person because he may get humiliated, chastised, and not loved back?
The more I think about this nauseating fictional guy in a movie, the more I acknowledge that chief among my reasons for not fully assuming the professional identity of a programmer is simply the fear of finding out that I may not actually be that good at it. Arriving at the excruciating state of unrequited love.
Me: I am a programmer! Hear me roar!!!
Bystander: Hears meow. Walks away.
Me: ???
The insidious thing about this mode of operation, this sitting on the fence, is that even though I can bounce quickly between "Hey yeah, I know this thing! I'm a programmer!" and "Oh what are you talking about? I have no idea and that's okay cos I'm not a programmer - bye!" -- the pointy edge of a piece of the fence is slowly piercing my ass and I know that this is ultimately not a way to live one's life.
Is there any doubt that every great programmer the world has ever seen has committed themselves to excellence in the craft?
Gaps in knowledge
Okay, let's talk facts. Does the current state of my career suggest that I may be bad at programming? Frankly, if you look on paper, it doesn't seem so. I'm employed at a big tech company as a Senior Software Engineer, right?
But the reality is messier. I find it entirely plausible that I lucked out into this position. It wasn't difficult to research online what kinds of questions you might get asked during an interview with a big tech company and to prepare specifically to answer those well. The true litmus test is whether someone, once they're hired, can contribute meaningfully to the business.
Here is where I admit that at the moment, I'm not sure I'm contributing as meaningfully as other Senior Software Engineers in my team.