~/il-codice-di-marco

The Mentality That Makes You a Programmer

Also available in: 🇮🇹 Italiano | 🇬🇧 English

I’ve asked myself this so many times.

I define myself as a programmer regardless of my educational background. Yes, I went to a technical school. I programmed as a kid on a Commodore 64 (and just that alone, for those who were there, says a lot). But that’s not what makes me feel “different”. It’s not the language I use, nor how many lines of code I write per day.

The real question is: what distinguishes me from others? And furthermore: why aren’t we all fascinated by this? Why do I spend most of my time in front of a computer, while for others it’s just a noisy box?

The Origin: The Commodore 64

Thinking back, it all started with a Commodore 64. Early ’80s, my uncle had bought it without really knowing what to do with it. We read the manual together, trying to understand that beige box. And then we discovered it: BASIC. A revelation.

You could command the computer. You wrote words, strange, cryptic ones, and the machine did things. It was pure magic. My uncle started giving me challenges: first simple math problems, then small applications. I spent hours in front of that phosphorescent green screen. It was like a drug.

It wasn’t the result I liked. It was the process. Thinking: “how do I make it do this?” Trying, failing, starting over. And that rush when it finally worked, that blinking READY telling you “ok, you can continue”.

From there it became a necessity. Having challenges. And when there weren’t any, inventing them. Creating problems where none existed, just for the pleasure of solving them.

The Curiosity That Never Stops

Maybe it’s the curiosity. That almost annoying kind that never leaves you alone. Seeing something that works and asking yourself: “ok, but how did they do it?”. Opening someone else’s code not to copy it, but to understand what kind of reasoning lies behind it. Automatically thinking: “how would I have solved this?” even when it’s not necessary, even when nobody asked you.

Or maybe it’s the ability, or the need, to build abstract mental models. To visualize something that doesn’t physically exist: flows, states, data moving around, changing conditions. Invisible stuff, but crystal clear in your head. Like an imaginary machine that takes shape only if you think about it the right way.

Memory as a Road Map

The funny thing is that I don’t feel “good” in the classic sense. I have terrible memory. I’m awful at math now. I don’t remember formulas, patterns, APIs by heart.

And yet here I am. I keep writing code. I keep solving problems that often nobody had even thought to ask.

My memory works in a strange way. I don’t remember APIs, I don’t remember functions. But I remember the path. It’s as if my brain records a map: “here I tried this road, it didn’t work, I went back, turned there, stopped to look at that detail”. I don’t memorize the destination, I memorize the turns I took.

That’s why I can solve the same problem a year later, even if I don’t remember exactly what I had done. Because I recognize the landscape. I know where not to go. I know what questions to ask myself. The solution emerges almost on its own, because I already have that mental map.

Maybe this is what others don’t understand. They think programming is “knowing things”. But no. It’s knowing how to find things. It’s having an internal compass that tells you “in this direction there’s something”, even if you don’t yet know what.

Background Processing

And then there’s the error. Which at first is just a failure. You look at it, don’t understand, try random things. Nothing. So you close everything and go live your normal life.

But the brain doesn’t close. It keeps working on it underneath, in the background, like a hidden process. You’re watching a movie, chatting with friends, walking the dog. And suddenly, while maybe you’re talking about the weather, you stop. Silence. Others look at you, waiting for you to finish the sentence. But you’re not there anymore. You’ve gone back in front of the computer, in your head, and you’re seeing the solution. You desperately try to fix it in memory, not to lose it, at least until you get home and can write it down.

Is this perhaps what makes us strange in others’ eyes? We’re never completely present. There’s always a piece of us somewhere else, a pending problem in a corner of the brain that keeps turning, processing, waiting for the right moment to reveal the solution.

It’s not that we choose it. It’s that we can’t help it.

Constructive Masochism

Problems that exist only because someone, me, decided to look at them long enough to make them emerge.

Maybe being a programmer doesn’t mean being smarter. Maybe it simply means not being able to stop asking questions. Or not being able to accept that something “just works”.

Maybe we’re programmers because we’re also masochists. We want to solve problems that nobody asked us to solve. If we see something crooked, non-linear, it physically bothers us. We have to straighten it. We’re maniacs of logical order.

And there’s a strange satisfaction in seeing something that works, even if we didn’t make it all ourselves, even if we just understood how it works. Like taking apart a clock to see the gears. You don’t have to have built it yourself to appreciate the elegance of the mechanism.

So…

So yes, maybe being a programmer is this: having a curiosity that never stops, a mind that always processes in the background, and that almost compulsive need to understand, fix, optimize. Even when it would be simpler to leave everything as it is.

And so you go back there. To the computer. Because there’s still that thing that doesn’t add up. Because you saw a way to do it better. Because the brain finally spit out that solution it had been looking for for days.

Not because you have to. Because you can’t help it.


This article was translated from Italian using AI.


Commenti