~/il-codice-di-marco

La mentalità che ti rende un programmatore

Also available in: 🇮🇹 Italiano | 🇬🇧 English

Me lo sono chiesto tante volte.

Io mi definisco un programmatore a prescindere dal titolo di studio. Ho fatto una scuola tecnica, sì. Ho programmato da ragazzino su un Commodore 64 (e già solo questo, per chi c’era, dice molto). Ma non è quello che mi fa sentire “diverso”. Non è il linguaggio che uso, né quante righe di codice scrivo al giorno.

La domanda vera è: cos’è che mi distingue dagli altri? E ancora: perché non siamo tutti affascinati da questa cosa? Perché io passo gran parte del mio tempo davanti a un computer, mentre per altri è solo una scatola rumorosa?

L’origine: il Commodore 64

Ripensandoci, tutto è iniziato con un Commodore 64. Primi anni ’80, mio zio l’aveva comprato senza sapere bene cosa farci. Leggevamo il manuale insieme, cercando di capire quella scatola beige. E poi lo scoprimmo: il BASIC. Una rivelazione.

Potevi comandare il computer. Scrivevi delle parole, strane, criptiche, e la macchina faceva cose. Era magia pura. Mio zio iniziò a lanciarmi sfide: prima problemi matematici semplici, poi piccole applicazioni. Io passavo ore davanti a quello schermo verde fosforescente. Era come una droga.

Non era il risultato che mi piaceva. Era il processo. Il pensare: “come lo faccio fare?” Il provare, sbagliare, ricominciare. E quella scarica quando finalmente funzionava, quel READY lampeggiante che ti diceva “ok, puoi continuare”.

Da lì è diventata una necessità. Avere sfide. E quando non c’erano, inventarle. Creare problemi dove non esistevano, solo per il gusto di risolverli.

La curiosità che non si ferma mai

Forse è la curiosità. Quella quasi fastidiosa, che non ti lascia in pace. Vedere qualcosa che funziona e chiederti: “ok, ma come l’ha fatto?”. Aprire il codice di qualcun altro non per copiarlo, ma per capire che tipo di ragionamento c’è dietro. Pensare automaticamente: “io come l’avrei risolta, questa cosa?” anche quando non serve, anche quando nessuno te l’ha chiesto.

O forse è la capacità, o il bisogno, di costruire modelli mentali astratti. Di visualizzare qualcosa che non esiste fisicamente: flussi, stati, dati che si muovono, condizioni che cambiano. Roba invisibile, ma chiarissima nella testa. Come una macchina immaginaria che prende forma solo se la pensi nel modo giusto.

La memoria come mappa stradale

La cosa buffa è che non mi sento “bravo” in senso classico. Ho una pessima memoria. In matematica ormai sono una frana. Non ricordo a memoria formule, pattern, API.

Eppure sono qui. Continuo a scrivere codice. Continuo a risolvere problemi che spesso nessuno si era nemmeno posto.

La mia memoria funziona in modo strano. Non ricordo le API, non ricordo le funzioni. Ma ricordo il percorso. È come se il mio cervello registrasse una mappa: “qui ho provato questa strada, non funzionava, sono tornato indietro, ho svoltato là, mi sono fermato a guardare quel dettaglio”. Non memorizzo la destinazione, memorizzo i bivi che ho preso.

È per questo che posso risolvere lo stesso problema un anno dopo, anche se non ricordo esattamente cosa avevo fatto. Perché riconosco il paesaggio. So dove non andare. So quali domande farmi. La soluzione emerge quasi da sola, perché ho già quella mappa mentale.

Forse è questo che gli altri non capiscono. Pensano che programmare sia “sapere le cose”. Ma no. È saper trovare le cose. È avere una bussola interna che ti dice “in questa direzione c’è qualcosa”, anche se non sai ancora cosa.

L’elaborazione in background

E poi c’è l’errore. Che all’inizio è solo un fallimento. Lo guardi, non capisci, provi cose a caso. Niente. Allora chiudi tutto e vai a vivere la tua vita normale.

Ma il cervello non chiude. Continua a lavorarci sotto, in background, come un processo nascosto. Stai guardando un film, chiacchieri con gli amici, porti a spasso il cane. E all’improvviso, mentre magari stai parlando del meteo, ti fermi. Silenzio. Gli altri ti guardano, aspettano che finisci la frase. Ma tu non sei più lì. Sei tornato davanti al computer, nella tua testa, e stai vedendo la soluzione. Cerchi disperatamente di fissarla in memoria, di non perderla, almeno fino a quando non torni a casa e la puoi scrivere.

È forse questo che ci rende strani agli occhi degli altri? Non siamo mai completamente presenti. C’è sempre un pezzo di noi in un altro posto, un problema in sospeso in un angolo del cervello che continua a girare, a elaborare, ad aspettare il momento giusto per rivelare la soluzione.

Non è che lo scegliamo. È che non possiamo farne a meno.

Il masochismo costruttivo

Problemi che esistono solo perché qualcuno, io, ha deciso di guardarli abbastanza a lungo da farli emergere.

Forse essere programmatori non significa essere più intelligenti. Forse significa semplicemente non riuscire a smettere di fare domande. O non riuscire ad accettare che qualcosa “funzioni e basta”.

Forse siamo programmatori perché siamo anche masochisti. Vogliamo risolvere problemi che nessuno ci ha chiesto di risolvere. Se vediamo qualcosa di storto, di non lineare, ci dà fisicamente fastidio. Dobbiamo raddrizzarlo. Siamo maniaci dell’ordine logico.

E c’è una strana soddisfazione nel vedere qualcosa che funziona, anche se non l’abbiamo fatta tutta noi, anche se abbiamo solo capito come funziona. Come smontare un orologio per vedere gli ingranaggi. Non devi averlo costruito tu per apprezzare l’eleganza del meccanismo.

Quindi…

Quindi sì, forse essere programmatore è questo: avere una curiosità che non si ferma mai, una mente che elabora sempre in background, e quella necessità quasi compulsiva di capire, sistemare, ottimizzare. Anche quando sarebbe più semplice lasciare tutto com’è.

E allora torni lì. Al computer. Perché c’è ancora quella cosa che non quadra. Perché hai visto un modo per farlo meglio. Perché il cervello ha finalmente sputato fuori quella soluzione che cercava da giorni.

Non perché devi. Perché non puoi farne a meno.


Commenti