Mi viene talvolta richiesto di raccontare come ho fatto i miei primi passi nel mondo della programmazione, ma rispondere in maniera sintetica risulta arduo. Per dirla tutta, non ho mai fatto una scelta cosciente di avvicinarmi alla programmazione, in quanto ho iniziato ad apprendere senza neanche rendermene conto.
Ricordo il giorno in cui i miei genitori mi comprarono il mio primo computer. Era il 14 dicembre del 1985, avevo 12 anni e non potevo sapere in anticipo che quel famoso Commodore 64, di cui vedevo la pubblicità in televisione, mi avrebbe accompagnato per tutta la vita, cambiandomi e salvandomi letteralmente l’esistenza.
Forse ero emozionato o forse no, questo non lo ricordo, però so di certo che ero curioso di conoscere quel nuovo oggetto elettronico. Ricordo il pomeriggio in cui andammo a comprarlo, ricordo alcune frasi che mi venivano rivolte – andiamo a comprare il “giocattolo” -, l’atmosfera natalizia, le luci di quel grande negozio Anni Ottanta, ricordo cosa feci la prima sera quando lo accesi per la prima volta.
In quei giorni trascorrevo intere ore ad espolarlo, a capire come funzionava e a scoprire cosa potevo fare con esso.
Insieme al Commodore 64 c’era una cassetta con un gioco tratto da un film cult distribuito nel 1984 – che avevo già visto e amato -, entrato nella storia del cinema di quegli anni: Ghostbusters. Allora non potevo sapere che molti anni dopo Ghostbusters, David Crane e Activision sarebbero diventati gioco, programmatore e software house iconici dell’informatica di quel tempo.
Il Commodore 64 era un computer molto popolare in quegli anni. Nel 1985 erano passati solo tre anni dalla sua distribuzione ed era forse il computer più utilizzato in tutto il mondo, soprattutto in àmbito domestico. Aveva una CPU MOS Technology 6510 a 1,02 MHz, 64 KB di RAM e una grafica molto avanzata per l’epoca, che poteva visualizzare fino a 16 colori. Era anche dotato di due porte joystick e di un’uscita video. Per la memorizzazione dei giochi e dei programmi si potevano utilizzare i floppy disk o le audiocassette. Era possibile programmare utilizzando il Basic o l’Assembler (oggi Assembly). La mia dotazione consisteva in un corpo macchina, il vecchio modello oggi chiamato “biscottone”, un datassette, un joystick e un monitor a fosfori verdi.
L’informatica di quegli anni era tutta in divenire e io avevo appena iniziato a parlare una nuova lingua, quella dei computer. Ora conosco la storia di quell’epoca, conosco il fermento culturale e tecnologico che animava il mondo. Dal mio punto di vista di dodicenne tutto viaggiava molto veloce, quel mondo era sempre più presente nella mia vita quotidiana. Col senno di poi, riconosco di avere vissuto l’epoca d’oro dell’informatica. D’oro non per il capitale economico che i maggiori attori dell’epoca guadagnavano – il vero boom economico dell’informatica e dell’elettronica sarebbe arrivato negli Anni Novanta -, ma per la crescita culturale che si respirava ovunque ci fosse una tecnologia o dei raggruppamenti di homines technologici. Con quel “giocattolo” avevo appena iniziato a costruire il mio capitale tecnologico che avrei impiegato nel resto della vita.
Ero curioso di capire come funzionavano i computer e come fossero programmati. Così mi misi a imparare il linguaggio Basic, leggendo il manuale di quel piccolo gioiello elettronico. La cosa che più mi piaceva era sperimentare e creare cose nuove. È utile rievocare alla memoria quegli anni, per comprendere meglio il distacco tra la realtà quotidiana che vivevo in casa e la passione che cresceva per quella macchina. Le persone a me attorno non capivano che quelle “cose” che creavo per me erano concrete conquiste, mentre per loro erano solo immagini senza “valore”. Il computer per me era lo strumento perfetto per dare sfogo alla mia fantasia, perché mi permetteva di testare le mie idee in modo rapido ed efficace. Così, in quei mesi continuavo ad imparare e ad ampliare le mie conoscenze, fino a quando compresi che il Basic non mi bastava più, che c’era un linguaggio ben più potente: il linguaggio macchina del microprocessore 6510.
I manuali di Jackson Libri sono stati una risorsa inestimabile per me. Non c’era internet all’epoca e per avere informazioni sul Commodore 64 e sulla programmazione ero obbligato ad acquistare manuali per corrispondenza, oltre che sperimentare autonomamente. Erano libri di notevole complessità, ma ero così appassionato che non mi importava. Leggevo tutto ciò che potevo trovare e acquisivo nozioni che metterebbero in difficoltà tutt’ora anche un adulto.
Se ritrovassi i miei vecchi compiti in classe di italiano della scuola media, sicuramente ci ritroverei scritta tutta la passione di cui ero preda. Molti anni dopo ho reincontrato l’insegnante che ancora si ricordava dei miei compiti in classe, in cui in qualche modo il mio “64” aveva sempre un posto d’onore o una citazione.
Oggi, quarant’anni dopo, il Commodore 64 è diventato un’icona della cultura popolare e un oggetto di culto per gli appassionati di informatica. Sono stato uno di quei ragazzi fortunati che hanno avuto la possibilità di sperimentare con esso, ho avuto l’opportunità di imparare dal migliore computer dell’epoca e di sviluppare le mie abilità tecniche e logiche in un ambiente che ha valorizzato la mia creatività.
Ma sono andato anche oltre, ho imparato a creare grafica digitale di buon livello, producendo animazioni di sprites (oggetti grafici programmabili che potevano essere mossi e posizionati indipendentemente dallo sfondo del display) e fondali, ho creato giochi e molte utilities per la creazione di grafici, ho programmato in un linguaggio ora diventato leggenda: Assembler. Fatto sta che solo dopo ho saputo che ero andato oltre, che stavo realizzando cose eccezionali, che avevo a tutti gli effetti adottato una lingua incomprensibile ai più.
Riesco un poco a far capire come ho iniziato a programmare? Per esempio, in quegli anni in libreria vendevano dei libri che contenevano programmi per Commodore 64. Insieme a un amico passavamo interi pomeriggi a ricopiare i listati sul Commodore. Io dettavo e lui scriveva, lui dettava e io scrivevo, fino a completare il listato e a eseguire il programma. Però a volte il programma dava errore, a causa nostra o a causa proprio del codice scritto male.
Per caso questo piccolo passo ha indotto chi mi legge a pensare che la programmazione sia copiare il listato di qualcun altro? Suvvia, un po’ di elasticità creativa. A dodici anni avevo scoperto la programmazione imparando a risolvere problemi, a pensare in modo logico e a scrivere codice per eseguire determinate azioni.
Oggi, questo processo è conosciuto come pensiero computazionale, un concetto che si riferisce alla capacità di risolvere problemi attraverso un approccio logico e strutturato, tipico del processo di sviluppo software. All’epoca, senza un insegnante che mi guidasse, non capivo che ciò che stavo facendo era effettivamente programmazione. Con quel “gioco” ho imparato ad affrontare le sfide, a identificare le soluzioni e ad eseguire il codice per portare a termine i miei progetti. Ecco perché oggi il pensiero computazionale è diventato un concetto fondamentale nell’educazione informatica, perché aiuta a sviluppare una mentalità analitica che può essere applicata in molti contesti diversi.
Programmare non si limita solo alla scrittura del codice. Si tratta di un processo che richiede anche una buona dose di creatività, ingegno e intuizione. I veri programmatori sanno che il codice non è l’unico strumento a disposizione e che un linguaggio di programmazione è solo uno strumento tra tanti altri.
L’esperienza con il Commodore 64 mi ha insegnato che la programmazione è un processo creativo che richiede abilità tecniche, pensiero critico e passione per la tecnologia. La mia determinazione e la mia creatività mi hanno permesso di superare le sfide che ho incontrato lungo la strada.
A 22 anni, quando ho perso la vista, ho potuto riprendere la mia vita in mano solo quando ho ripreso a programmare attraverso una sintesi vocale, perché si trattava pur sempre del mio capitale tecnologico ed emozionale che subito dopo essere diventato cieco pensavo di avere perso per sempre.
Me la cavo bene anche in tante altre cose, ma programmare è la mia arte. Anche perché programmare è anche il tempo che ho dedicato a farlo, sottraendo quel tempo ad altre attività dell’adolescenza che avrei potuto fare al suo posto.
Penso che ognuno debba coltivare il proprio talento, qualunque esso sia. Il talento va coltivato sin da bambini, perché iniziando da adulti si potrà essere solo dei buoni dilettanti o dei mediocri professionisti, indipendentemente dalla certificazione di studio in proprio possesso, ma mai dei veri artisti. Ognuno di noi ha una serie di abilità uniche e di talenti naturali che possono essere sviluppati e utilizzati per il nostro benessere personale e per quello degli altri. Coltivare il proprio talento significa dedicare tempo ed energie alla pratica, all’apprendimento e al miglioramento costante delle abilità che ci sono più congeniali. Solo attraverso la pratica e l’impegno costante si possono raggiungere grandi risultati e realizzare il proprio pieno potenziale. In questo caso, pratica include anche e soprattutto l’accrescimento delle proprie abilità mentali e culturali. E questo può anche portare a una maggiore realizzazione personale.
Quando siamo in grado di sfruttare al meglio le nostre abilità, ci sentiamo più sicuri e soddisfatti delle nostre capacità e possiamo raggiungere maggiori traguardi nella vita, soprattutto tendenti al raggiungimento della felicità e della solidarietà.
Vedo molte persone che dedicano il proprio tempo a interessi effimeri, passando dall’uno all’altro quando si scontrano con la complessità di ognuno di essi. È indubbio che anche i passatempi abbiano anche una propria utilità, intrinseca ed estrinseca, e il punto è essere consapevoli degli obiettivi per cui si praticano. Spesso ciò che una persona di talento compie con facilità può sembrare semplice o naturale agli occhi degli altri, ma in realtà dietro a quel talento ci sono anni di studio, ricerca e dedizione. Le persone di talento che hanno raggiunto grandi traguardi, spesso hanno dedicato gran parte della loro vita a coltivare le proprie abilità e a perfezionare le loro tecniche. Questo processo richiede una grande quantità di tempo, energia, impegno e perseveranza.
Ho quasi cinquanta anni e quando comincio a programmare torno ad essere un ragazzino, perdo completamente la cognizione del tempo. È come se mi immergessi in un mare di luce fatto di conoscenza, prendessi i costrutti là presenti e li riorganizzassi in nuove creazioni.
Certo che mi manca la dimensione visiva del tutto, è una parte molto importante di tutto il sistema. Ma c’è soluzione a questo? A 22 anni mi sarei potuto arrestare al centro della strada, come un animaletto impaurito dai fari di un’automobile, in attesa che la vita mi travolgesse? Dall’età di dodici anni non ho mai lasciato l’informatica e la programmazione. Sono grato ai miei genitori per avermi lasciato libero di fare ciò che volevo. Oggi sono un programmatore, una professione che si sovrappone quasi perfettamente al mio talento naturale. Programmare non significa solo scrivere un codice, quella è proprio una delle ultime fasi. Molte persone hanno l’idea che la cosa più importante sia semplicemente scrivere codice in un determinato linguaggio di programmazione. Ma in realtà, voglio ribadirlo, la programmazione è un processo molto più ampio e complesso. Ad esempio, un programmatore dev’essere in grado di analizzare e risolvere problemi complessi, progettare soluzioni efficaci e saper testare il software per garantire la sua affidabilità e sicurezza. Ma programmare è ancora altro: è talento, è passione, è l’unione spirituale tra programmatore, creazione e “software” creato. E la disabilità visiva non limiterà mai la mia creatività!