Abbracciare, non STERMINARE
Negli ultimi 12 mesi, sembra che ogni altro termine di moda nel settore tecnologico abbia parlato di "abbracciare l'IA" per scrivere codice, risolvere problemi, rispondere a domande e fare qualsiasi cosa al di fuori del giocare con il tuo gatto. È evidente che questo ha sviluppato due diversi campi di ingegneri del software all'inizio della carriera: AI Maximalists e AI Doomsayers. I massimalisti, ovvero i vibe coder, che ho incontrato sono diventati esperti di prompt engineering, mentre i doomsayers che ho incontrato sono rimasti esasperati ogni singola volta che ho suggerito la programmazione in coppia con ChatGPT.
Trascorro molto tempo a fare da mentore a ingegneri junior sia a livello professionale che extra-lavorativo, facendo volontariato con laureati dei bootcamp e programmatori agli inizi della loro carriera, e le volte in cui mi è stato chiesto più o meno "l'intelligenza artificiale mi ruberà il lavoro" sono ormai troppe per poterle contare.
Quindi, sì, Virginia, ti dirò che l'intelligenza artificiale sta arrivando per rubarti il lavoro, almeno per quanto riguarda le tue aspettative riguardo al tuo lavoro.
Ora tocca a te adattare le tue tecniche e i tuoi approcci per sfruttare le utilità LLM come parte fondamentale della tua catena di strumenti per risolvere i problemi.
Finché farai questo, i robot non ti STERMINERANNO.
La ridefinizione dell'ingegnere junior
Il concetto di cosa sia un Junior Engineer è stato un obiettivo mutevole negli ultimi due anni, poiché la codifica AI è diventata più efficiente, più intelligente e più intuitiva. Dato il contesto, LLM e modelli di ragionamento come Sonnet + ChatGPT possono immergersi in una base di codice, creare comprensione e rispondere a domande in modo sfumato, efficace e chiaro.
Ma non è questo che fa un ingegnere junior?
In genere, un Junior Software Engineer è considerato un programmatore più ingenuo in un'azienda tecnologica. Ha appena iniziato la sua carriera, quindi trascorre molto tempo a imparare, che si tratti di capire la base di codice dell'azienda, di acquisire le best practice (SPACES VS TABS!!!!) o di familiarizzare con strumenti e flussi di lavoro, proprio come può fare un motore AI mentre consuma il codice nel repository della tua azienda.
La maggior parte della loro giornata è dedicata alla scrittura di codice, ma non di cose super complesse e ad alto rischio (per ora). In genere lavorano e alla fine si occupano di compiti più piccoli o correzioni di bug, spesso con la guida dettagliata di ingegneri più esperti. Immagina di farlo rotolare attraverso la base di codice con le rotelle di allenamento: alla fine, andranno da soli, ma per ora, stanno vicino al team.
Inoltre, svolgono numerose revisioni del codice (sia in fase di fornitura che di ricezione), pongono un sacco di domande (idealmente!) e partecipano alle riunioni in cui vengono prese le decisioni più importanti.
Ecco il fattore chiave di differenziazione tra AI e ingegneri: il lavoro dell'ingegnere junior non riguarda solo la codifica; riguarda l'apprendimento di come costruire bene le cose, la collaborazione con gli altri e il graduale aumento di livello fino a quando non è in grado di affrontare sfide più grandi. In combinazione con l'AI, un ingegnere junior può immergersi in profondità in una base di codice e comprendere più rapidamente lo stato del mondo, anche se non comprende ancora appieno cosa fa il sistema nel suo complesso.
Armonia con la macchina
Invece di temere che l'intelligenza artificiale possa sostituire gli ingegneri junior, dovreste vedere l'intelligenza artificiale come un acceleratore per la vostra crescita professionale.
Ecco come possono trarne il massimo vantaggio:
Sfrutta l'intelligenza artificiale per un apprendimento più rapido: invece di passare ore a cercare documentazione, usa strumenti di intelligenza artificiale per ottenere spiegazioni concise e pertinenti in modo rapido. C'è una funzione di utilità lunga 500 righe di cui non riesci a capire la necessità? Chiedi a un LLM di tradurla per te in passaggi chiari, comprensibili e attuabili.
Usa l'IA per la convalida delle idee: hai un'idea per risolvere un bug? Eseguila con un modello di IA per ottenere approcci alternativi prima di implementarla. Sii consapevole: è inevitabile che ci sia un contesto aziendale o un ragionamento per fare le cose in determinati modi. L'approccio più rischioso che puoi adottare è premere Tab, lasciare che Copilot riempia gli spazi vuoti e dimenticare.
Rafforzare le capacità di problem solving: l'IA può fornire soluzioni, ma capire perché queste soluzioni funzionano (o non funzionano) è un elemento di differenziazione chiave per un bravo ingegnere. Puoi anche rafforzare le tue capacità di revisione del codice esaminando il codice dell'IA, immergendoti e dialogando su diversi approcci ("considera un caso di switch e forniscimi una spiegazione sui pro e contro di farlo con questo metodo").
Collaborare e pensare oltre il codice: l'IA può generare codice, ma non sostituirà la risoluzione creativa dei problemi, la comunicazione con gli stakeholder o la capacità di pensare in modo critico agli obiettivi di un progetto. Se un'IA può scrivere codice che funziona, è fantastico, ma come puoi tu, in quanto ingegnere, trasmettere la soluzione al problema agli stakeholder e anche aggiornarla se non risolve tutti i casi richiesti?
Concentrati sulla crescita oltre la codifica: le competenze trasversali, la progettazione dei sistemi e la comprensione dell'impatto aziendale rimangono vitali. L'intelligenza artificiale può essere uno strumento, ma non sostituirà gli ingegneri che guidano l'innovazione significativa.
Il ruolo dell'ingegnere junior non sta scomparendo, ma si sta evolvendo. Se accogli l'IA come un partner anziché come un concorrente, puoi accelerare la tua carriera e affrontare lavori più impegnativi e gratificanti più velocemente che mai.