Programmazione, intelligenza artificiale e la riscoperta di una passione

Ho cominciato a programmare a sei anni. Non a copiare listati a caso: capivo cosa stavo facendo. BASIC sul Commodore 64, poi GW-BASIC, Pascal, qualcosa di COBOL, Visual Basic. Ho costruito da zero un gestionale in PHP per il mio internet point. So cosa e’ un ciclo for. So cosa e’ una variabile, una funzione, un array.

Non sono uno che ha scoperto la programmazione adesso.

Sono uno che non ha mai smesso di pensare come un programmatore, ma che a un certo punto ha smesso di scrivere codice. E il motivo e’ abbastanza preciso.

Il problema non e’ la logica. La logica ce l’ho. Ho aiutato programmatori professionisti a ragionare sui loro problemi piu’ volte – non scrivendo codice, ma ragionandoci insieme, trovando alternative, individuando dove la soluzione si inceppava. E’ quello che fa un analista. Una figura che oggi non esiste quasi piu’ come ruolo separato, ma che serve eccome.

Il mio problema e’ la memoria.

La sintassi di un linguaggio non la puoi ricavare dal ragionamento. Non puoi dedurre come si scrive un ciclo in Python se non lo hai mai imparato – devi saperlo. Un comando e’ quello, non piu’ o meno quello. Una virgola al posto sbagliata e il codice non gira. Io ho una difficolta’ concreta nel memorizzare cose che non posso ragionare – le devo rifare migliaia di volte, o costruirle su una logica che le rende inevitabili. La sintassi non funziona cosi’. Devi saperla e basta.

Poi c’e’ il tempo.

Quello manca sempre: il lavoro, la casa, la spesa, vivere in generale. Imparare un linguaggio nuovo da zero richiede ore che non ho, e la motivazione si scontra continuamente con la lista delle cose da fare.

Il terzo muro e’ il setup.

Ogni volta che ho provato a riprendere a programmare – e ci ho provato piu’ volte – mi sono arenato prima ancora di scrivere una riga di codice. Installare l’SDK. Configurare l’ambiente. Scoprire che manca una dipendenza. Installarla. Scoprire che manca altro. Impiegare due ore a far partire il programma “Hello World”. A quel punto la voglia e’ gia’ sparita. Voglio programmare, non configurare ambienti di sviluppo.

Poi e’ arrivata l’intelligenza artificiale. Specificatamente: Claude, un modello di Anthropic.

E ha tolto tutti e tre i muri.

Non devo ricordare la sintassi perche’ non scrivo il codice. Non devo configurare niente perche’ non installo SDK. Descrivo il problema, ragiono sulla logica, definisco cosa voglio ottenere – quello che so fare – e il codice lo produce Claude. Il mio ruolo e’ quello dell’analista: capire il problema, trovare la soluzione logica, verificare che il risultato sia quello giusto, individuare quando e perche’ qualcosa non funziona.

Non e’ magia e non e’ banale.

L’intelligenza artificiale ha dei limiti, e accettarlo richiede un processo. Non capisce sempre alla prima. A volte interpreta in modo diverso da quello che intendevi, produce qualcosa di tecnicamente corretto ma logicamente sbagliato, oppure – e questo e’ il caso piu’ frustrante – perde il filo, esce dalla logica che stava seguendo e va per la sua strada come se niente fosse. Quando succede, e succede, le esclamazioni che ne derivano non sono riportabili in un contesto pubblico. Chi ha lavorato con strumenti complessi capira’.

La soluzione non e’ aspettarsi che l’IA sia infallibile. La soluzione e’ usare la propria logica per blindarla.

Nel tempo ho imparato a costruire regole, vincoli, sistemi di controllo che guidano il comportamento dell’IA prima ancora che inizi a lavorare. Definire esattamente cosa deve fare e cosa non deve fare. Stabilire convenzioni che deve rispettare sempre. Prevedere i casi in cui potrebbe sbarellare e chiudere quella porta in anticipo. In pratica: usare la capacita’ analitica per contenere e indirizzare la capacita’ esecutiva. Non la sostituisci, la governi.

E’ un equilibrio che si costruisce nel tempo, sbagliando, correggendo, affinando. Ma quando funziona, funziona bene.

Devi sapere cosa vuoi. Devi essere preciso. Devi capire quando il risultato e’ sbagliato e sapere spiegare perche’. Un utente che non capisce nulla di programmazione otterrebbe risultati mediocri. Io ottengo quello che voglio – con qualche esclamazione colorita lungo la strada, ma questo fa parte del processo.

In questi mesi ho costruito una serie di script che uso davvero:

– CamWatchdog: controlla che le webcam di sorveglianza salvino regolarmente i file e mi avvisa via Gmail se smettono.
– Turni: scarica i turni dal portale aziendale e li sincronizza su Google Calendar, aggiornando anche il calcolo dello stipendio.
– SocialFeed: monitora la pagina Facebook di un autore specifico e notifica i nuovi post via email.
– DesktopCleaner: mantiene il desktop in ordine automaticamente.
– Plotter FDM: converte immagini in G-code per il mio plotter a filamento.
– ConversioneVideoAuto: converte i video tramite HandBrake non appena li rileva.
– BackupMensiliVideoAuto: quando voglio, esegue il backup dei video della dashcam su hard disk esterno.
– SyncToFTP: sincronizza tutto su FTP, comprime, rimuove i dati sensibili e genera la pagina che state leggendo.

E altri in corso, perche’ una volta che il meccanismo funziona le idee non mancano.

Perche’ ho aggiunto anche quella: una pagina Script sul sito, raggiungibile dal menu, con tutti questi strumenti disponibili per il download. Non e’ software commerciale. Sono strumenti nati per risolvere problemi miei: funzionali, con qualche limitazione voluta, qualche passaggio manuale lasciato intenzionalmente, grafica essenziale. Non sono prodotti rifiniti – sono soluzioni. Se servono anche a qualcun altro, meglio cosi’.

La passione per creare, automatizzare, risolvere problemi non e’ mai sparita. Non era sopita. Era bloccata da due ostacoli pratici che adesso non ci sono piu’.

Ci ho messo vent’anni a trovare il modo giusto per programmare. Ma ci sono arrivato.


NasoSan