Perchè con l’Intelligenza Artificiale dovresti imparare a programmare? Oggi voglio rispondere a questa domanda aiutandoti a creare un profilo che sia sempre richiesto sul mercato.
Ho voluto aprire l’articolo con un diretto riferimento all’Intelligenza Artificiale (d’ora in avanti AI) perchè oggi, più che mai, c’è una grandissima confusione per quanto riguarda questa professione e come questa viene “minacciata” dall’AI.
Sì hai letto bene, ho scritto che la tua carriera viene minacciata dalla presenza dell’AI, anche se allo stesso tempo ho messo questa parola tra virgolette nel tentativo di farti capire fin da subito che (fondamentalmente) non è affatto così.
Se sei andato recentemente su YouTube per guardare qualche tutorial rivolto alla programmazione, sono sicuro che tra i vari video che ti sono stati suggeriti avrai trovato alcuni content creators che parlavano di come questa o quella AI era in grado di costruire intere applicazioni attraverso l’uso di qualche prompt.
Certo, è possibile costruire delle applicazioni andando a interagire con qualche AI che è stata trainata (addestrata) per questo specifico scopo, ma chi dovrà mantenere l’applicazione in futuro?
TU!
Ecco perchè in questo articolo voglio farti riflettere sull’uso che fai dell’AI e aiutarti a capire che il mondo avrà sempre bisogno di sviluppatori con una grande conoscenza della propria materia.
L’AI non è affatto Intelligente
Partiamo subito chiarendo un’incomprensione proveniente dal termine stesso che identifica questa nuova “minaccia”: l’Intelligenza Artificiale non è affatto intelligente!
Ebbene sì, l’ho detto.
Ma non sono un folle che scrive queste parole soltanto perchè ho un odio profondo verso questo strumento, anzi tutto il contrario. Uso quotidianamente strumenti AI che mi aiutano nel mio lavoro, ma li uso con consapevolezza.
Da qualche anno a questa parte, questo nuovo termine ha innondato qualsiasi contenuto stiamo leggendo.
Giornalisti, programmatori, designer e anche altri professionisti che non appartengono direttamente all’ambito tecnologico, hanno iniziato a riempirsi la bocca con questo termine che promette mari e monti.
Intelligenza Artificiale.
Iniziamo ad analizzarlo seguendo la terminologia che usano in inglese.
Artificial
Artificiale, beh qua credo che ci sia proprio poco da discutere. Si tratta di qualcosa di artificiale perchè noi stessi, gli esseri umani, l’abbiamo creata. Non si tratta di qualcosa che si può trovare in natura!
Centinaia di matematici, scienziati e informatici hanno contribuito per anni alla sua realizzazione.
Sono stati sviluppati, e quindi non creati da madre natura, complessi algoritmi che vengono eseguiti su computer equipaggiati da schede grafiche incredibilmente potenti. Ma come suggerisce il nome, è sempre qualcosa creato dall’uomo e considerando la sua giovane età sicuramente non è affatto perfetta.
Intelligence
Eccoci però al punto vivo della questione, la truffa che è stata messa in atto nello stesso nome di questa tecnologia.
Questo strumento non è affatto intelligente. Certo, in molti casi è in grado di fornire risposte corrette. E il modo in cui lo fa, il tono che usa nella sue risposte, ci puó far pensare che effettivamente una qualche forma di intelligenza sia presente in questa cosa.
Cavolo, spesso non manca di condividere con noi approcci differenti e ci fa anche i complimenti quando troviamo un errore nelle sue risposte oppure argomentiamo perchè un approccio puó essere migliore di un altro.
Ma non si parla di intelligenza…
L’AI non è altro, come ho anticipato brevemente prima, che un insieme di algoritmi che sono stati studiati per predire la parola che deve essere utilizzata successivamente. Per quanto anche i modelli di AI più recenti ci vogliono far credere che sono in grado di pensare, la realtà dei fatti non è altro che un insieme di formule matematiche che gli permettono di predire (con grande accuratezza) la parola che viene successivamente.
Detta in parole povere, quello che fa oggi l’AI è prendere il prompt che gli diamo come input, scomporlo in token che gli permettono di capire (sarebbe meglio dire analizzare) quello che abbiamo scritto e costruire la risposta una parola alla volta andando a pescare il successivo significato più vicino che trova all’interno del suo database vettoriale.
Spiegata cosí magari può sembrare magia, ma come ho cercato di farti capire precedentemente non si tratta di alcuna magia e neanche di un evento naturale.
Tutto è stato programmato. Ed è per questo che ci sarà sempre bisogno di sviluppatori bravi.
Il “vibe coding” è più pericoloso di quel che pensi
Ho aperto una grande parentesi parlando del funzionamento dell’AI, ma come ho tenuto a precisare questo non è l’argomento che voglio trattare oggi.
Sicuro l’Intelligenza artificiale può fare grandi cose, e si tratta anche di uno strumento incredibilmente valido che ci può aiutare nel nostro lavoro, ma oggi stiamo parlando del perchè il mondo avrà sempre bisogno di bravi sviluppatori.
Ti ho detto che l’AI non è altro che un insieme di algoritmi che aiutano un computer a predire quale sia la risposta più adatta a uno specifico input.
Ma come fa ad essere in grado di rispondere?
La risposta è più semplice di quello che si possa pensare, viene allenata.
Nel nostro caso specifico, una AI in grado di scrivere codice al posto nostro, è stata allenata con milioni (se non miliardi) di righe di codice che si possono trovare quotidianamente all’interno di GitHub, articoli e lo stesso StackOverflow.
Mettiamo da parte le considerazioni legali di questa pratica. Se non lo sai molte aziende che distribuiscono AI sono state accusate di aver allenato i propri sistemi con contenuti che sono protetti ca copyright senza aver versato un singolo dollaro nelle tasce dei creatori. Il recente caso delle immagini create ispirandosi ai disegni dello Studio Ghibli ne è un chiaro esempio.
Ma come dicevo, io non sono un avvocato e non ho interesse a trattare questo argomento.
Invece ti sto parlando di come questa intelligenza artificiale viene allenata perchè la maggior parte del codice che si trova online è un codice non sicuro e poco performante.
Non sto dicendo che non si trovano esempi di codice di buona qualità. Quello che sto dicendo è che per ogni blocco di codice performante e sicuro che si trova online, se ne trovano altri 99 dove il codice scritto serviva soltanto in risposta allo specifico bisogno della domanda o del tutorial che veniva scritto.
Ma perché sto parlando di quantità di esempi?
Il motivo è semplice e si appoggia al punto precedente: perché l’AI non è in grado di pensare!
Tutto quello che è in grado di fare è, come già specificato, predire qualcosa. Quindi stiamo parlando di statistica, materia dove si assume che tanto è più presente un dato tanto incrementa la sua validità e quindi la possibilità di venir selezionato come risposta accettata.
Però questo puó portare a grossi errori, qua parlo di codice ma in una certa forma si potrebbe anche collegare alle fake news 😅
Il caso piú eclatante di quanto pericoloso sia il vibe coding è stato rappresentato dal seguente tweet dove il nostro leojr si vantava di come la sua app fosse stata costruita interamente con Cursor senza neanche aver scritto una singola riga di codice.

Il povero ragazzo però ha presto realizzato che quello che aveva appena creato era incredibilmente insicuro e dopo solo due giorni dalla pubblicazione di questo tweet, ha dovuto ammettere che il suo progetto si trovava sotto attacco.

Nonostante i vari tentativi fatti per risolvere il problema, sembre utilizzando il vibe coding visto che Leo non è un programmatore (come dichiara apertamente nei suoi messaggi), purtroppo dopo soli 5 giorni dall’annuncio del suo successo si trova costretto a dover chiudere l’applicazione.

Ho deciso di condividerti la triste storia del nostro Leo non per prendermi gioco di lui, la mia intenzione è esattamente l’opposto. Il mio tentativo è quello di aiutarti a fare quello che fanno tutti gli esseri umani: imparare dagli errori!
Farsi guidare ciecamente da un’Intelligenza artificiale è un approccio che presenta enormi rischi.
L’AI è un incredibile strumento che ci permette di velocizzare il nostro lavoro in modi che fino a qualche anno fa, anche mesi, era impensabile. Ma come ogni strumento dobbiamo imparare ad utilizzarlo. Dobbiamo usarlo con un senso critico che ci permette di capire quando le cose che sta facendo sono corrette e quando invece si sta incaponendo nel risolvere un problema che neanche esiste senza correggere quello che gli abbiamo chiesto.
Per sviluppare questo senso critico abbiamo una sola possibilità: avere delle solide fondamenta sulle quali appoggiarsi e costruire.
Costruisci le tue fondamenta
Il mio obiettivo con SkillsAndMore è sempre stato quello di aiutarti a comprendere la magia della programmazione. Ho pubblicato svariati articoli e corsi con l’unico obiettivo di aiutarti a colmare le lacune che molti tutorial online possono creare e fornirti tutti gli strumenti per proseguire nella tua carriera.
Parlo delle lacune che ti possono lasciare un semplice tutorial, nonostante anche io ne abbia scritti e tornerò a scriverne diversi, perchè l’obiettivo di un tutorial è quello di presentarti lo stretto numero di informazioni necessarie a raggiungere il risultato prefissato.
Stai seguendo un tutorial per la creazione di un contact form?
Molto probabilmente il creatore di tale risorsa si focalizzerà nella presentazione dei campi input
e button
, componenti essenziali per il corretto funzionamento di un form. Dato che si parla di un modulo di contatto, molto probabilmente ti presenterà anche l’attributo action
dell’elemento form
per permetterti di contattare un back-end e far inviare il messaggio collezionato attraverso un server mail ospitato da qualche parte.
Ma dubito fortemente che ti parlerà nel dettaglio anche di validazione, sanificazione e di tutti gli altri approcci di sicurezza e performance che devono essere tenuti in considerazione quando si parla di accettare dei dati da parte di un utente sconosciuto online.
Non gliene faccio una colpa, anche io quando scrivo tutorial ho come obiettivo quello di farti conoscere lo stretto essenziale per raggiungere il risultato proposto. Ma è normale che sia così. Il tutorial deve avere una lunghezza contenuta e non può espandere troppo il suo focus per trattare i tutti gli argomenti che lo riguardano, per quanto fondamentali.
Ecco perchè, dopo tanti anni, ho deciso di tornare a scrivere su questo blog.
Tutto questo parlare di AI e di vibe coding mi ha fatto realizzare più che mai l’importanza di avere delle solide basi sulle quali muovere i nostri passi. E dopo l’esperienza che ho maturato in questi anni, ed aver riconosciuto io stesso le lacune che avevo nella programmazione all’interno di ambiti enterprise, sento di avere le conoscenze adatte per tornare su queste pagine ed insegnarti qualcosa.
L’importanza di restare al passo con i tempi
All’interno di qualsiasi professione, restare al passo con i tempi è di fondamentale importanza per non essere sostituiti dal nuovo strumento, oppure da un profilo junior che è in grado di svolgere i nostri stessi task ma che viene pagato molto meno di noi.
Te lo sto scrivendo perché è la stessa cosa che ho fatto anche io, mi sono mantenuto aggiornato e sono stato in grado di mantenere la mia posizione di Senior anche se negli anni ho cambiato linguaggi di programmazione e aziende.
Ho costruito le mie fondamenta e le ho sfruttate per capire e sfruttare i nuovi strumenti che mi venivano messi a disposizione.
E questo è quello che voglio aiutarti a fare anche per la tua stessa carriera.
Non importa la tua età, soprattutto in questo settore, le novità che si possono imparare sono infinite. Ogni giorno esce un nuovo framework, un nuovo approccio o strumento che promette di semplificare il nostro lavoro o di svolgerlo più velocemente.
E se posso essere onesto con te, questo è proprio quello che mi piace nel mio lavoro!
Mi piace restare al passo con i tempi.
Ma negli anni ho capito che, pur avendo questa necessità, devo stare attento alla shiny object syndrome (che in italiano suona malissimo con la traduzione “sindrome dell’oggetto luccicante”), ma che significa semplicemente essere attirati dalla nuova cosa luccicante e fare di tutto per raggiugnerla.
È bello essere curiosi, essere curiosi in questo settore ti aiuta a non annoiarti mai. Ma al tempo stesso dobbiamo sempre capire e valutare se quello che stiamo scoprendo ha una qualche utilità nel nostro lavoro, se si tratta di una tecnologia troppo acerba per essere applicata e soprattutto se il tempo che dedicheremo nell’apprendimento non è tempo che togliamo dall’apprendere altre conoscenze più fondamentali.
Io l’ho scoperto sulla mia pelle quanto sia importante avere un percorso ben definito, restare focalizzati nell’apprendre le conoscenze fondamentali che ci permetteranno un domani di apprendere qualsiasi cosa nel modo più veloce possibile.
Lo so perchè fondamentalmente anche se ogni giorno esce qualcosa di nuovo, indipendentemente dal linguaggio o framework, tutto si basa sulle fondamenta.
Voglio concludere con un esempio molto semplice.
Ti ho parlato per tutto l’articolo di quanto l’AI possa essere uno strumento potente in grado di fornirti una marcia in più. Sai che la stessa potenza puó essere integrata nell’applicazione che stai sviluppando?
Sono sicuro che hai già visto diverse applicazioni che hanno integrato l’AI e che stanno pubblicizzando le nuove feature come se fosse la cosa più rivoluzionaria degli ultimi 50 anni.
Ma sai come si integra?
Nel 99,9% dei casi non si tratta altro di una REST API, una fetch
call che ci consente di contattare il server che ospita l’AI e di ottenere una risposta dall’input che gli è stato inviato.
Ecco perchè dico che avere delle solide fondamenta è importante.
Se conosci la struttura di una fetch
avrai bisogno di pochi secondi per strutturare la chiamata e iniziare a giocare con le risposte che otterrai. Sicuramente l’API che consulterai avrà i propri endpoint, probabilmente offrirà anche una SDK in grado di wrappare la fetch
e semplificare il tuo lavoro.
Ma sapendo che sempre di fetch
stiamo parlando, sarai in grado di approcciarti confidentemente e saprai anche come gestire alcune delle eccezioni ed errori che inevitabilmente incontrerai.
Ignorando invece la struttura, e il funzionamento di una fetch
call dovrai invece aprire MDN e spendere del tempo a studiarne il funzionamento e a scoprire anche le sue eccezioni.
Tornando al nostro Leo, se avesse avuto delle solide fondamenta non avrebbe lasciato le API Key in chiaro e avrebbe mantenuto al sicuro i suoi servizi. Almeno per quanto riguarda questo aspetto della sicurezza.
Lascia un commento