Programmare nel 2024 serve ancora?

Pubblicità
Nel frattempo mi è appena arrivato il libro che volevo per imparare Java (questo), chissà come mi troverò...
Me la son sempre cavata egregiamente in matematica/logica/grammatica, la meticolosità ce l'ho nel sangue da quando ero all'asilo, a lavoro iterizzo/schematizzo buona parte delle procedure con una naturalità estrema (ne ho bisogno sennò sto male con me stesso 😅), ho anche una laurea triennale in ingegneria industriale, per quanto sia diversa dall'ambito informatico almeno ho una base solida in materie scientifiche. Poi qualche settimana fa, in una tranquilla serata fra amici, uno di questi mi ha chiesto "come fai proprio tu a non essere un informatico??", diciamo che tale richiesta l'ho accolta come una sorta di sfida con me stesso. Spero che tutto ciò mi aiuti nello studio di Java, nel caso vi farò sapere più avanti :)
 
Almeno per quanto riguarda la versione pubblica di ChatGpt, non la considero in grado di programmare autonomamente.
E' un grande assistente, spesso più veloce di google, spesso con informazioni non facilmente trovabili su google. Sicuramente aiuta molto nella vita per comodità e performance, come anche CoPilot e affini.

Ma più di una volta dice una cosa e ne scrive un'altra, o il codice che scrive necessita di modifiche per funzionare, o non è l'approccio migliore architetturalmente, a volte si perde alcuni piccoli pezzi: insomma, ora come ora fa riflettere ma non mi sembra autonoma, c'è da capire quanto velocemente e come si evolverà, e se si portanno inserire accortezze per controllare i risultati, magari in accoppiata con una seconda IA.

Il punto è che per com'è il modello di intelligenza artificiale, effettua predizioni (in genere corrette) su quello che scrive basandosi sugli esempi, ma in genere viene mantenuto un livello di tollerabilità agli errori negli esempi iniziali per avere un modello più adattabile e generico, anche se èuò sbagliare, piuttosto che un modello estremamente specifico che non è però in grado di spaziare. Poi sui livelli di chatgpt parliamo id modelli molto più copmlessi, ma in ogni caso, per com'è fatta, da sola non è in grado di riconoscere i propri errori, e per una questione di probabilità può perfettamente introdurre errori, insomma non è perfetta.

Poi non sono assolutamente contro la sua invenzione, come ho detto è uno strumento straordinario già così per come è.
Da programmatore spero di poter continuare a lavorare in simbiosi più che essere sostituito, ma la AI non le sviluppo certamente io, e non sono nemmeno certo di quanto sia sensato limitarle, quindi staremo a vedere.

Lasco un divertente esempio recente girato su internet, ma ne è pieno

1710107789738.webp
 
Ultima modifica:
Credo la tua sia una delle domande "esistenziali" che ci si pone da tantissimi anni: specializzarsi in questo campo porterà dei frutti o rischio di studiare qualcosa che non sta al passo coi tempi?
Credo che ognuno di noi debba parlare per il proprio campo di competenza: non voglio esprimere giudizi o frasi fatte su cose che non mi competono e per questo ti espongo la mia esperienza: non devo venderti nulla nè convincerti xD

Lavoro da un decennio nella programmazione informatica e sono attualmente ad un livello che definisco decente: sviluppo, coordino, faccio colloqui e corsi di formazione sulle tecnologie che implemento e "mi offro" come technical leader, ossia colui che sa risolvere problemi e se anche non lo ha mai studiato prima ci si mette al volo e lo studia in breve tempo per implementarlo sin da subito.

In questo campo posso darti il mio parere: nell'azienda dove lavoro abbiamo sfruttato tutte le varie AI (microsoft, openai, google..) per arrivare a scriverne una nostra. a cosa serve? toglie lavoro ad altri?
Banalmente serve per l'esecuzione di task che anche un troglodita a cui si fa un corso di 3 settimane saprebbe fare! Boilerplate, documentazione, copia-incolla dal primo tutorial online e task simili che possono essere prodotti con pattern ricorrenti (trova la frase, o il pezzo di codice che fa questo e scrivi di conseguenza una certa frase/indentazione del foglio).
Non vado nei dettagli ma ora come ora l'azienda, con questo prodotto alla mano, non ha intenzione di ridurre l'organico, anzi sto facendo ancora colloqui per assunzioni su larga scala!
Questo per vari motivi:
  1. l' AI non è ancora affidabile e seppur lo fosse non assicura mai un risultato accurato al 100% che vada anche di pari passo con le molteplici richieste di business che fa il cliente. le manca e le mancherà sempre quel tocco che solo un essere provvisto di emozioni può fornire
  2. Per lo stesso motivo summenzionato non potrà mai sostituirsi ai creativi
  3. Qualora le aziende decidessero di soppiantare gli sviluppatori incompetenti in favore dell'AI, questo porterebbe ad una rivalutazione del mercato che farebbe subito diventare lo sviluppatore mid un senior ed uno sviluppatore senior un dio! come negli anni 80 e 90 gli stipendi medi per questo lavoro salirebbero.
  4. le logiche da implementare per determinati campi o occasioni non possono essere astratte da un AI: che ne può mai capire l'AI del trading o del cashpooling o di altre faccende che, tra l'altro, il cliente spiega male??
  5. l'AI necessita di input molto precisi e scrupolosi, e nonostante questi genera quasi sempre output differente (anche a parità di input). questo perchè, come dicevamo ai primi punti, la precisione e la scelta della soluzione più corretta è SEMPRE opinabile -> se è opinabile non è adatto ad un'AI.

Tutto ciò porterà alla creazione di nuove figure professionali che si occuperanno di perfezionare questi tool, evolverli per elaborare nuovi tipi di dati, perfezionare il linguaggio con cui si comunica con essi e tante altre cose.
L'automobile ha tolto lavoro ai cocchieri, ma ha introdotto (tra le tante altre cose) uno dei business più potenti al mondo che è il petrolio.

Ti consiglio, se vuoi proseguire nella tua scelta di formazione, di scegliere bene l'ambito in cui programmare: DispatchCode ti ha dato una splendida intro ma sappi che ci sono anche altri ambiti.. scegli prima cosa ti piace, poi cerca le tecnologie associate ad esso e verifica infine la richiesta sul mercato:
esempio:
-sviluppatore di videogiochi in C++
-sviluppatore di siti web in python
 
Per la mia esperienza dipende da vari fattori. Io per esempio sono full stack, in svariate occasioni mi è capitato di usare l'ai sia come aiuto sia di integrarla in un chatbot con un contesto specifico (multipli file pdf con medesima struttura ma informazioni diverse).

Usata come aiuto può dare una mano per velocizzare la scrittura di codice, cercare bug, tradurre codice da un linguaggio all'altro, trasformare un file csv in codice sql per velocizzare inserimenti nei database, tradurre file con stringhe per applicazioni multilingua, questi sono solo esempi ma in varie occasioni mi è tornata particolarmente utile non come mio sostituto ma come strumento per essere più produttivo.

Poi dipende anche dalla natura dell'azienda per cui lavori, c'è chi vede l'ai come strumento per ridurre il personale e aumentare i profitti, e c'è chi la vede come strumento per aumentare la produttività.
 
Banalmente serve per l'esecuzione di task che anche un troglodita a cui si fa un corso di 3 settimane saprebbe fare! Boilerplate, documentazione, copia-incolla dal primo tutorial online e task simili che possono essere prodotti con pattern ricorrenti (trova la frase, o il pezzo di codice che fa questo e scrivi di conseguenza una certa frase/indentazione del foglio).
Hai praticamente descritto quello che bene o male farebbe un neolaureato al suo primo anno di esperienza.
 
sono due modi diversi per descrivere esattamente la stessa cosa eh...
Oddio, ridurre il personale o aumentare la produttività. Non mi sembra proprio la stessa cosa 🤨

Cerco di essere più specifico: se parlo di velocizzare delle task con degli automatismi potrei ridurre lo stress del personale e di conseguenza anche il numero di errori.
Questo utilizzo mi sembra diverso rispetto ad usare l'aumento di produttività per ridurre il personale mantenendo così lo stesso livello di stress.
 
Oddio, ridurre il personale o aumentare la produttività. Non mi sembra proprio la stessa cosa 🤨
Se fai 100 con 10 dipendenti perché prima ne avevi 20 per fare 100 ma con l' IA ne bastano 10
Oppure se ogni dipendente passa da 5 a 10 di produttività, cambia la forma ma non la pratica
 
L'AI attualmente ancora non è pronta per sostituire al 100% l'uomo.
Ora come ora serve solamente a velocizzare la produttività. Io la uso spesso. Ad esempio, se devo convertire qualcosa da un linguaggio ad un altro, gli passo il file e me lo traduce. In questo modo recupero molto tempo per fare altro.

Sicuramente in futuro l'AI sarà in grado di scrivere un intero progetto (attualmente già lo fa ma non è perfetta).
Io credo che una posizione futura sarà quella di scrivere e ottimizzare i prompt per una AI.

Se arriviamo ad un punto in cui l'hai può fare tutto da sola, spererei che i governi applicherebbero qualche legge per fare in modo che l'AI non vada a sostituire completamente l'uomo.
 
L'AI attualmente ancora non è pronta per sostituire al 100% l'uomo.
Ora come ora serve solamente a velocizzare la produttività. Io la uso spesso. Ad esempio, se devo convertire qualcosa da un linguaggio ad un altro, gli passo il file e me lo traduce. In questo modo recupero molto tempo per fare altro.

Sicuramente in futuro l'AI sarà in grado di scrivere un intero progetto (attualmente già lo fa ma non è perfetta).
Io credo che una posizione futura sarà quella di scrivere e ottimizzare i prompt per una AI.

Se arriviamo ad un punto in cui l'hai può fare tutto da sola, spererei che i governi applicherebbero qualche legge per fare in modo che l'AI non vada a sostituire completamente l'uomo.

Il punto è: sara mai pronta? I modelli di ML attuali sono modelli predittivi, l'uomo no. Ti spara fuori qualcosa che il più probabilmente è giusto secondo lei in base a innumerevoli esempi. Questi esempi non sono necessariamente sempre esempi corretti, specie se allenati su basi molto ampie.

L'uomo non è un modello predittivo, possiede una memoria e lavora con quella. E' in grado di memorizzare gli errori, e imparare da essi. Se per un certo livello il modello può essere guidato in maniera simile, non è in grado di ragionare completamente. Gli manca una base di assiomi da cui partire, su algoritmi che la programmazione classica esegue senza errori, l'IA è invece in grado di sbagliare.
Tu mi dirai, anche l'uomo sbaglia, vero, però ha capacità di problem solving, è in grado di trovare il problema e correggerlo definitivamente. I modelli con cui ho interagito spesso hanno difficoltà anche solo a capire il problema, figuriamoci a risolverlo.

Almeno per quanto riguarda ChatGPT poi, ha il vizio di ripetersi e di assumere che roba completamente sbagliata o non funzionante sia corretta. In un mondo di mercato non è sostenibile. Dovrebbe crescere in continuazione in teoria, ma ormai è qualche anno e ancora mi va in loop spesso.

Secondo me Machine Learning e Generative AI sono utili strumenti e un'ottima base ma servirà un modello più espanso per avvicinarsi all'uomo. Per il momento è Google ma più conveniente, in grado di manipolare il contenuto, e di dare risposte sbagliate.
 
D'accordo l'IA non è perfetta ora e forse non lo sarà mai.
Eppure la si vuole (o la si è) introdotta nella guida completamente autonoma.
Ora immaginatevi un IA che può sbagliare che ha il controllo totale del vostro mezzo.
Eh ma anche l'uomo fa gli incidenti alla guida....
 
Allora io sono un dev nudo e crudo, Full Stack per l'esattezza, di cui conosco si e no almeno tra backend e frontend circa 10/15 linguaggi.
Da .net (Core, Ajax, C#, Visual Basic) a Java FX e Spring Boot, Python con Flask, sto iniziando a guardare Golang etc.
L'IA al momento non è in grado di rimpiazzarci e credo che non riuscirà per lo meno a farlo.
Riuscirà probabilmente ad agevolare alcune cose, dove ora sbaglia e anche parecchio.
Esempio se chiedi a CHAT.GPT o COPILOT qualcosa su React (spesso e volentieri ti da qualcosa di funzionante ma scritto male) o scritto con paradigmi sbagliati.
Ad esempio fare le componenti :any in typescript (cosa sbagliata) altrimenti cosa lo hanno inventato a fare? tanto vale usare javascript dove l'any è contemplato.

Oppure lato SpringBoot ogni tanto per il BE non è aggiornato alle linee guida di Spring 3, e ti suggerisce cose di Spring 2 oramai deprecate.
Ergo almeno per i prox 30 anni siamo saldi sul nostro lavoro, può essere solo uno strumento in mano per aiutare.
Chiaro se lo usi per farti suggerire tutto, non ha senso fare il programmatore.
L'IA deve essere uno strumento di aiuto, abusarne, ed usarla male non farà mai di te un programmatore
 
Io penso che saper programmare serva a prescindere, perché è un ottimo esercizio per la mente, lavoro o non lavoro, IA o non IA.

C'è chi si diverte con l'enigmistica, chi con le arti, chi con la fisica, non hanno smesso di giocare a scacchi solo perché è stato dimostrato che un computer può battere qualunque grande campione.

Quindi non vedo perché non imparare a programmare e divertirsi a risolvere problemi con la programmazione
 
Pubblicità
Pubblicità
Indietro
Top