Ho sempre pensato a me stesso come un programmatore piuttosto accattivante. Quindi un nuovo ragazzo, chiamandolo Aaron, è stato assunto nella nostra squadra. Aaron era ovviamente molto meglio di me nella maggior parte dei settori. Era anche più giovane di me. Mi ha fatto capire che non ero molto migliorato molto negli ultimi anni. Ero un hacker ad hoc e mediocre.
Questo mi ha avvertito di provare consapevolmente a migliorare me stesso e soprattutto la qualità del codice che scrivo.
Aaron mi ha portato a imparare molte cose. Mi ha insegnato come la maggior parte del codice che scrivo dovrà essere mantenuto ed esteso per almeno diversi anni, quindi dovrei scrivere il codice tenendo presente questo. Dovrei scrivere test automatici per il mio codice. Aaron parlava sempre di come non avrei mai dovuto fermarmi alla prima versione funzionante, ma di refactoring e perfezionamento fino a quando il codice non è elegante. Ho scoperto che le lingue e gli strumenti che stavo usando avevano molto margine di miglioramento.
La cosa più importante che ho imparato da Aaron è stata quella di non smettere mai di imparare.
Dopo un paio d'anni, Aaron lasciò la compagnia. Mi sentivo vuoto. Gli anni passati con lui mi avevano portato a livelli completamente nuovi di abilità e mi sono reso conto che ora ero molto meglio del resto della squadra. Stavano ancora scrivendo codice errato e facendo gli stessi errori di prima. Ho cercato di insegnare loro, ma non avevano interesse a imparare. In realtà, erano infastiditi dal fatto che qualcuno sarebbe stato così arrogante da dire loro quali errori stavano facendo.
Quindi, qualche mese dopo, ho lasciato anche la compagnia. Mi sono trasferito in un'azienda più piccola con un team di grande talento. Tutti lì volevano saperne di più e l'ho adorato.
Sono contento di aver incontrato Aaron. Senza di lui, probabilmente avrei ancora lavorato nella vecchia compagnia con la vecchia banda, senza andare da nessuna parte e pensando troppo a me stesso.