Dopo aver conseguito la maturità classica nel 2005, ho deciso di iscrivermi al corso di laurea in scienze matematiche presso l'università di Bologna. Nonostante qualche difficoltà nel primo anno, ho conseguito la laurea triennale nel 2008 e quella specialistica nel 2010. La possibilità di frequentare il primo anno della specialistica presso l'università di Durham, nel Regno Unito, ha segnato la mia vita: durante la specialistica ho infatti deciso di fare varie domande per una borsa di dottorato nel Regno Unito e, avendone vinta una finanziata dall'EPSRC (una sorta di CNR britannico), dal 2010 ho studiato matematica applicata presso lo University College of London e ho ottenuto il titolo di PhD con una tesi in analisi numerica.

Dopo nove anni trascorsi all'università, ho sentito il bisogno di provare altro, e così, forte della qualche rudimento di programmazione, ho deciso di intraprendere una carriera nello sviluppo di software. Nel Regno Unito il mercato del lavoro è estremamente flessibile e la domanda di sviluppatori sempre al di sopra dell'offerta; così in pochi anni ho lavorato per CDK Global (13 mesi), azienda che produce software per i concessionari automobilistici, per eGain Communications (14 mesi), azienda che produce soluzioni per il supporto clienti, per Maersk Line (5 mesi), una compagnia di navigazione danese che si occupa di trasporto container, per finire a Veritas Technologies, che si occupa di gestione dei dati (conservazione, gestione, sicurezza, backup, gestione degli incidenti). Con ciascuna di queste aziende ho avuto un contratto a tempo indeterminato e ogni volta mi sono licenziato per accettare un'offerta del 20%-30% più remunerativa. Inoltre, in questi anni ho avuto la possibilità di ottenere una solida conoscenza di alcuni dei principali linguaggi di programmazione (Java, JavaScript, Python) e di fare esperienza in ogni aspetto dell'attività di sviluppo del software.

Fare software è molto di più che digitare su una tastiera dei comandi che un computer possa interpretare. Lo sviluppo del software è un'attività altamente speculativa che parte con l'analisi di un problema e la progettazione di una soluzione, continua con la sua implementazione e l'attività di test, per proseguire con il supporto e una continua re-implementazione. Anche la vita di uno sviluppatore è diversa dal suo stereotipo: lungi dall'essere una attività solitaria svolta da una persona sola seduta costantemente davanti a un computer, lo sviluppo del software è un'attività di gruppo, la progettazione è svolta insieme – tipicamente scrivendo per ore alla lavagna – e ogni riga di codice è controllata e testata dai colleghi in modo da condividere la conoscenza del prodotto a cui si lavora e da aumentare la qualità del software.

Per questo, da matematico, mi sento avvantaggiato rispetto a colleghi che all'università hanno scelto informatica o ingegneria informatica. Le capacità di analisi e di sintesi, il rigore, l'abilità nell'astrazione, sono solo alcuni degli assi nella manica che noi matematici possiamo vantare. Per il resto, a imparare un linguaggio di programmazione ci vuole davvero poco.