Il vero programmatore
(This post is also available in English, change the language in the top-right corner to read it / Questo post è disponibile anche in Inglese, cambia la lingua in alto a destra per leggerlo)
Cos’è un vero programmatore? Faccio questo mestiere da trent’anni tondi tondi e pensavo di saperlo. Ieri però al Codemotion di Roma ho sentito questo “Chi usa i framework non è un vero programmatore”. Forse era solo una battuta provocatoria. Forse. O forse la nostra professione, come molte altre, soffre di una forma di elitismo per il quale il proprio modo di fare il programmatore è l’unico degno.
Quella frase l’ha detta uno dei programmatori più talentuosi che abbiamo in Italia, uno che se dice “questa cosa andrebbe fatta così” puoi solo che annuire e farla in quel modo perché è quasi sicuramente il modo migliore.
Eppure non credo che su cosa sia un vero programmatore sarei d’accordo con lui.
Cosa fa un programmatore in concreto? Scrive soluzioni in un linguaggio comprensibile sia a lui che alla macchina. Che il linguaggio sia Assembly, C, Typescript, PHP o Erlang poco importa, alla fine il codice o fa quello che deve fare o non lo fa.
Certo, è essenziale conoscere la teoria della programmazione, capire perché e come determinate tecnologie sono usate ma non è che implementare da zero un quick-sort invece che usare la funzione di sort di array di un framework ti elevi di rango.
“Non reinventare la ruota” diceva il mio professore di informatica delle superiori mentre ci insegnava Pascal, C e l’assembly x86.
La frase “chi usa X non è un vero programmatore” l’ho sentita la prima volta negli anni ‘80 riferita a chi non usava (o usava poco) le istruzioni poke nel basic del Commodore64. Da allora l’ho sentita tante altre volte, tante altre X, chi usa C++ invece che C, chi usa un IDE invece che Vim, chi usa Windows invece che Linux, ecc.
È un po’ una caratteristica del nostro mestiere, siamo settari, ci piace quello che facciamo e come lo facciamo e spesso tendiamo a essere ciecamente critici con chi fa il nostro lavoro in modo diverso dal nostro.
Se ci pensate però è come dire “se non ti sai cuocere i mattoni da solo non sei un vero muratore” o “se usi le bombolette spray non sei un vero artista”, magari ditelo a Banksy.
Anche questa è una provocazione, è ovvio che non tutti i graffitari sono artisti ma non tutti non significa nessuno.

Dragona davanti ad un McDonald, c’è del genio
Mi sento però di condividere il consiglio che ha dato per i junior “studiate i fondamentali”, ma non per diventare veri programmatori ma perché vi aiuteranno a fare meglio il vostro lavoro. Non vi capiterà mai, probabilmente, di dover implementare un insertion sort, un database engine da zero, il reverse di un albero binario ma sapere perché e come certe scelte tecniche e certi algoritmi sono nati può solo che farvi fare meglio il lavoro di programmatore. Vero o falso.
p.s. non ho fatto nomi perché la frase mi serviva solo per alcune considerazioni personali senza l’intento di voler aprire una discussione o una polemica