4 min read

Beginner Again

There is a version of this story that is clean and motivating. This is not that version, this is the one with imposter syndrome, slow progress, and the strange feeling of being experienced and a complete beginner at the same time.
A developer sitting at a desk late at night, head resting on one hand, staring at a monitor filled with code with a frustrated expression.

From all the stories similar to mine, that I read online, I don't remember reading one where they mention the hardest parts of learning to code later in life.

The content out there tends to go one of two ways: Either it is aggressively motivational, full of people who pivoted at 50 and landed a senior developer job in a few months; Or it is cautionary, quietly implying that if you did not start before 20 you have probably missed your window. Which, given that there are teenagers shipping apps today without writing a single line of code themselves, feels increasingly absurd as a benchmark. Both framings are useless to me, because I think neither of them is totally honest.

The imposter syndrome is real, and it is specific

It is not the generic kind you read about in self-help articles. Not the vague feeling of not belonging. It is more precise than that, and stranger.

I spent fifteen years becoming the best I could at something. Architectural design, architectural visualization, creating real things for real people in the physical world, with real consequences. I know how to think through complex problems, how to navigate constraints that contradict each other, how to communicate ideas to people who see them in a completely different way. That level of experience is still there, it didn't vanish when I decided to change direction.

But none of it helps when the code I write throws an error I do not yet know how to identify and solve.

And that is exactly where the imposter syndrome gets strange. It is not about doubting your intelligence or capacity to solve problems. It is about knowing what competence feels like, and not feeling it anymore, and not knowing how long the gap is going to last. There is no clean resolution to that feeling, you just have to sit with it for a while, which is harder than it sounds when you are used to being the person in the room who knows what they are doing.

The pace problem

When you learn something in your twenties (or before), you are usually surrounded by other people learning it at the same time. Shared ignorance is normalized, and nobody knows what they are doing, so not knowing feels like the expected state of things.

At 42, that context is completely gone. The people teaching courses have been doing this for two decades, and some of them are even younger than me. The documentation assumes a baseline I do not have yet, the forums are full of people for whom the thing I am stuck on is so self-evident that they struggle to understand what the question even is. Nobody is unkind about it, it is just that the most of the infrastructure of learning something new is built for people who are already partially inside it. Getting in from the outside, later, requires a different kind of patience than I was expecting. The kind where you have to make peace with not knowing things that feel like they should be obvious by now.

I am still building that patience. Some days I have it, other days I can't even think about it.

The strangest part: context switching

This one surprised me the most.

Architecture builds a very particular way of thinking: spatial, relational, always aware of how one decision ripples into every adjacent one. You hold a lot of contradictory constraints in your head simultaneously and find the path through them. It is truly complex cognitive work, and it took years to develop.

Programming asks for something similar but oriented in a completely different direction. The logic is sequential in a way that spatial thinking is not. The constraints are precise in a way that physical constraints never quite are. The feedback loop is immediate but brutally literal. The computer does exactly what I tell it to do, which sounds helpful right up until I realize that what I told it and what I actually meant are two very different things.

So I am not starting from zero in terms of how I think, but I am starting from zero in terms of how this kind of thinking is expressed, and translating between those two things is its own skill. It takes longer than I expected, probably longer than most people would admit to.

Why I keep going

None of this is a reason to stop or simply give up. The discomfort is real, but it is not a signal that something is wrong. If anything, it is the opposite. Things that matter tend to be uncomfortable at the beginning. And things that do not, tend to feel easy immediately and stop feeling interesting soon after.

The goal was never to land a job at some tech company. It is to build my own things, on my own terms, and put them into the world as a solo developer. No hiring manager at the end of this road, just complete ownership of what I make, which honestly sounds better.

So yes, I'm 42 and started learning how to code a few months ago. Sometimes I'm frustrated, and I regularly sit in front of things I do not fully (or completely) understand yet. I am also thinking more clearly than I have in years, and having lots of ideas for projects I really want to build. This by itself is already a win in my book. And writing about the process is also helping me during this new journey. All this combined is more than enough to keep going.

May The Code Be With You! 🚀