The Real Programmer
(This post is also available in Italian, change the language in the top-right corner to read it / Questo post รจ disponibile anche in Italiano, cambia la lingua in alto a destra per leggerlo)
What is a real programmer? I’ve been doing this job for thirty years and I thought I knew. But then at Codemotion Roma I heard this: “Those who use frameworks are not real programmers”. Maybe it was just a provocative joke. Maybe. Or maybe our profession, like many others, suffers from a form of elitism where one’s own way of doing programming is the only worthy one.
That line was said by one of the most talented programmers we have in Italy. Someone who, when they say “this should be done this way”, you can only nod and do it that way, because it almost certainly is the best approach.
And yet, on the question of what a real programmer is, I don’t think I’d agree with him.
What does a programmer actually do? They write solutions in a language that both they and the machine can understand. Whether that language is Assembly, C, TypeScript, PHP or Erlang matters little. In the end, the code either does what it’s supposed to or it doesn’t.
Of course, it’s essential to understand the theory of programming, to grasp why and how certain technologies are used. But implementing a quick-sort from scratch instead of using an array sort function from a framework doesn’t put you on a higher level.
“Don’t reinvent the wheel” my high school computer science teacher used to say, as he taught us Pascal, C and x86 assembly.
The phrase “those who use X are not real programmers” I first heard in the ’80s, directed at those who didn’t use (or barely used) poke instructions in Commodore 64 BASIC. Since then I’ve heard it many times, with many other Xs: those who use C++ instead of C, those who use an IDE instead of Vim, those who use Windows instead of Linux, and so on.
It’s something of a trait of our profession. We’re tribal. We love what we do and how we do it, and we often tend to be blindly critical of those who do our job differently.
If you think about it, though, it’s like saying “if you can’t fire your own bricks you’re not a real mason” or “if you use spray cans you’re not a real artist”. Maybe go say that to Banksy.
That’s a provocation too, of course. Obviously not every graffiti writer is an artist, but ’not all’ doesn’t mean ’none’..

Dragona in front of a McDonald’s (there’s some genius here)
I do feel like sharing the advice given to juniors: “study the fundamentals”. Not to become real programmers, but because it will help you do your job better. You will probably never have to implement an insertion sort, a database engine from scratch, or the reversal of a binary tree, but knowing why and how certain technical choices and algorithms came to be can only make you better at your job as a programmer. Real or otherwise.
p.s. I haven’t named anyone because I only needed that phrase as a starting point for some personal reflections, with no intention of opening a debate or controversy.