In questo periodo mi sono letto un bel
libro in cui si spazia tra filosofia, aritmetica e soprattutto sulla logica, un excursus sulle problematiche che si sono posti i più grandi logici e matematici nel tempo fino ad arrivare a Turing. Già ci pensavo da tempo, ma ora il fuocherello che avevo in me si è riacceso e vorrei proprio darmi una chance da autodidatta in ambito programmazione - probabilmente Java o Pithon.
Il libro l'ho finito di leggere proprio ieri, da un mese sono qui con la scimmia che mi urla "compra questo maledetto
testo didattico e immergiti nel mondo della programmazione! Cosa stai aspettando?" tuttavia, nemmeno farlo apposta, proprio ora ho appena letto che il king di Nvidia abbia sganciato una bella torta in faccia ai programmatori (qui il
link all'articolo su Tom's).
Io vorrei un parere di coloro che magari fanno i programmatori per lavoro da anni, secondo voi l'IA sostituirà veramente da qui a qualche anno gran parte del lavoro dei programmatori?
Sembra un testo interessante il primo che hai linkato.
Comunque la domanda che poni è molto più complicata di come sembra, e una risposta univoca non esiste secondo me. Bisogna considerare diversi aspetti e i diversi settori nei quali la programmazione è utilizzata.
Per contestualizzare.
Esiste la programmazione web, esiste quella desktop (sicuramente pesa molto meno dell'altra), esiste quella embedded e in generale del mondo IoT.
Quella web è composta da due mondi, il front end e il backend. Il primo è spesso "scripting", ma di fatto ci si trova a programmare in JavaScript (usando frameworks, il più gettonato è React), c'è poi la parte grafica (semplifico) HTML e CSS (e a braccetto UI/UX).
Il secondo è quello che non si vede di un sito o un software web, è tutto codice che gira lato server. E' quello che contiene la vera e propria logica dell'applicazione e che comunica con i vari servizi, spesso fa uso di API, qualche volta legge/produce files di vario tipo (XML, CSV etc). Ci sono i microservizi, e c'è poi la parte riguardante il database e le varie cache (eg. Redis, per fare un nome).
Se mi chiedi "in questo campo che rischi ci sono?" Vedo sicuramente molto più a rischio la parte front end nell'immediato futuro (immediato è un pò vago, magari è 1 anno, magari 5 o 6... dipende da come evolveranno gli strumenti attualmente disponibili). Questo perchè, specie nella produzione di un layout, è decisamente più semplice. Esistono già ora tools per generare interi siti statici facendo uso dell'IA.
Il backend è un pò più complicato, visto ciò con cui si interfaccia (database, cache, API (che sono documentate su siti esterni,
esempio stupido, Stripe) etc etc).
Non conosco il mondo IoT, ma in questo caso si ha a che fare con la parte più elettronica o comunque con una miriade di dispositivi diversi e conoscenze specifiche, che portano anche a un certo livello di ottimizzazione di quello che si scrive (sul web, nelle applicazioni / siti normali... è tutt'altra cosa).
I sistemi operativi, per esempio, sono un altro campo molto delicato: al momento non ci vedrei bene una IA che si occupa di aspetti più low level.
Se quindi il tuo timore è "studio una cosa che non mi servirà più", ti direi di studiarla se ti interessa. Quando il mondo informatico sarà in crisi temo che per gli altri settori le cose saranno anche peggio.
Sicuramente ci saranno alcuni campi che verranno fortemente ridotti, penso si tenderà ancora di più alla specializzazione. L'ideale forse è intraprendere un percorso più vicino al mondo "IA" (che è un pò improprio come termine, ma è per capirci).
Già ora comunque ci sono strumenti che aiutano a scrivere codici e parti di codici, e probabilmente il più noto è
Github Copilot. Se usato con cognizione di causa aiuta; se usato agli inizi o lo si lascia fare troppo... temo porti a rinco*******si; smetti di pensare anche a problemi che sono un minimo sfidanti, tanto basta un commento e ci pensa lui (ormai penso non serva nemmeno più commentare molto).
Io non faccio più esattamente il programmatore ora, mi occupo di supporto avanzato. Per farla breve spaziamo da container, cluster, software che crashano, kernel che crasha etc etc e il nostro compito è capire il motivo e risolverlo. Mi sento abbastanza al sicuro, per così dire. ChatGPT al momento non è un grantissimo problema, almeno non quella free: ho provato ad usarla per farmi spiegare cose delle quali ne sapevo poco, e mi sono accorto che mi sparava un sacco di cavolate. In altri campi o settori di cui sopra... le cose possono essere differenti (se ti fai aiutare per scrivere codice in React, tanto per fare un esempio).