Oltre la codifica - Parte 1

Feb 19 2023
Parliamo di ciò che rende un grande ingegnere del software. Sebbene la programmazione sia una grande abilità da avere, è sufficiente solo per un periodo limitato.
Foto di Luke Chesser su Unsplash

Parliamo di ciò che rende un grande ingegnere del software. Sebbene la programmazione sia una grande abilità da avere, è sufficiente solo per un periodo limitato. Man mano che cresci in un'organizzazione, ti ritroverai a sfornare meno codice (probabilmente eliminando più di quello che aggiungi) e più persone inizieranno a fare affidamento su ciò che sai oltre alle tue capacità di programmazione.

Ricordo quando ho iniziato la mia carriera professionale: ero quel ragazzo che riceveva storie di utenti e produceva codice. Ma avanti veloce al mio quarto anno, e all'improvviso, sono diventato la persona di riferimento per le risposte quando le cose andavano male. Dovevo conoscere le risposte a domande come "Come dovremmo limitare la velocità di questo percorso?", "Perché la nostra app si arresta in modo anomalo in modo casuale?", "Perché stiamo spendendo così tanti soldi in questa parte del nostro software quando i nostri utenti non lo sono usandolo così tanto?", e "Abbiamo un picco di traffico nel traffico o sono questi attacchi?"

Quando arrivi a questo punto della tua carriera, ti renderai conto che devi migliorare il tuo gioco. Ho dovuto rivisitare i concetti essenziali che mi ero lasciato alle spalle. Ho iniziato a leggere libri e seguire corsi su reti, interni di database, fondamenti del sistema operativo, profilazione e tecniche di debug adeguate, non solo debug della console. Come qualcuno che ha fatto molto affidamento sui post del blog e sui corsi di YouTube per metà della mia carriera, non posso enfatizzare troppo l'importanza di leggere libri reali e corsi approfonditi su argomenti specifici nell'informatica. Ci sono tonnellate di dettagli essenziali di solito lasciati in brevi post di blog e tutorial di YouTube.

La programmazione è la parte più semplice del nostro lavoro di ingegneri del software. Anche l'intelligenza artificiale può farlo in questi giorni. Man mano che modelli linguistici di grandi dimensioni come GPT-3 migliorano nella comprensione del contesto, la tua capacità di creare prodotti diventa sempre più semplice, ma la tua capacità di trovare problemi, correggere e ottimizzare i sistemi esistenti diventerà più importante. Questo è ciò che ti distinguerà dal resto.

Non preoccuparti, la programmazione come abilità non sta morendo; almeno non presto. Diventerai solo più efficiente nella scrittura del codice in quanto diventa più economico avere co-piloti AI che ti assistano. Ma devi ancora sapere come leggere il codice che il tuo copilota AI emette per te, giusto? Quindi aspira ad essere una persona brava a programmare ma più brava a leggere il codice. Sii qualcuno che sa come scoprire perché alcuni pod continuano a scendere ogni 15 minuti durante la produzione.

Questa è la prima parte della serie Beyond Coding, in cui scriverò di ciò che ho imparato nel mio viaggio per diventare un Senior Software Engineer. Piuttosto che scrivere su come creare la prossima app da un miliardo di dollari con l'ultimo framework javascript, scriverò su cosa fare quando si verificano determinati problemi in produzione, profilazione, ottimizzazione delle query, come scegliere il giusto compromesso (perché tutto è un compromesso), proteggere le tue API e molti altri argomenti interessanti.