Per questo e altri motivi, fin dall'inizio della mia carriera, ho sempre provato quella sensazione che si prova quando qualcuno ti dice una battuta che non capisci, e tu inizi a ridacchiare senza motivo mentre distogli lo sguardo dall'altra persona, arrossendo e pregando che non ti chieda “Hai capito?”.
Il mito del Commodore 64
Da bambino non ero così curioso di tecnologia. Super Mario e Nintendo erano già in circolazione da qualche anno quando sono nato nel 1991. Mio fratello, di 8 anni più grande di me, era appassionato di videogiochi e computer molto più di me, e molto più di quanto lo sarei stato io fino ai miei 20 anni. Giocavo a giochi come Wolfenstein 3D, Pacman e quasi tutto ciò che era stato realizzato dalla gloriosa LucasArts. I nostri genitori comprarono un Compaq Presario 5528 e quella fu una sorta di pietra miliare. I miei due fratelli iniziarono ad assemblare/smontare computer e pezzi di hardware che trovavano nei mercatini dell'usato. A quel tempo non ero ancora molto interessato a queste cose. Ho avuto anche alcune console, durante la mia infanzia. Il SEGA Megadrive, il mio preferito, la Playstation 1, il Gamecube.
Non ero il tipo di bambino che smontava inarrestabilmente le cose per vedere come funzionavano. Mi bastava sapere che funzionavano. Non ho mai avuto un Commodore 64 e non ho mai provato a programmare un gioco prima dei 23 anni.
Ciononostante, al liceo ero abbastanza bravo in ciò che riguardava l'informatica. Sapevo come trovare programmi sul web, installare giochi, configurare il wifi e tutte le altre cose per cui prima o poi qualcuno ti chiederà aiuto. Sapevo anche qualcosa di HTML e CSS, come cambiare i colori della pagina e impostare la dimensione dei caratteri. Ho guardato Hackers diverse volte. Era bello sentirsi un nerd part-time. Io e alcuni amici abbiamo formato una band ed ero completamente preso dalla musica. Nel 2010 mi sono diplomato e ho iniziato a studiare Letteratura Moderna all'università. Volevo diventare giornalista, quindi mi sembrava la scelta migliore.
Indossare la maschera
Ho iniziato subito a saltare le lezioni, passando il tempo a casa a dormire, fumare sigarette e guardare serie tv. Anche mio fratello è uno sviluppatore e all'epoca lavorava a casa. Il suo iMac da 27 pollici era sempre acceso, anche alle 4 del mattino, e brillava nella stanza con una luce attraente. La gente lo chiamava su Skype e io sentivo conversazioni piene di parole supertecnologiche come RESTful, HTTP, server, AJAX. Per alcuni mesi ho guardato quello schermo con curiosità.
Durante le vacanze estive del primo anno, sono tornato nella mia città natale e ho iniziato a guardare lo sviluppo iOS. Non avevo assolutamente alcuna idea dello sviluppo. Ma avevo un iPhone 3G come telefono e continuavo a leggere di persone che facevano un sacco di soldi con applicazioni scadenti sull'App Store. Ero convinto. Installavo Xcode, digitavo alcuni comandi esoterici nel terminale, leggevo file pieni di cose senza senso. È stato FANTASTICO.
Questa era la seconda pietra miliare, credo. Due mesi nello “sviluppo iOS” e non avevo più la minima idea di nulla. Ho iniziato a stare a casa piuttosto che uscire a bere una birra, a leggere tonnellate di documentazione senza nemmeno capire alcune parole, ma non importava. Non stavo (non) facendo l'hacker. Ero come quei ragazzi di Hackers.

Tornato all'università, parlai con mio fratello delle mie nuove “competenze” e iniziai a chiedergli informazioni sul suo lavoro. Objective-C mi ha colpito così tanto che ho abbandonato iOS. Era piuttosto frustrante. Sono stato introdotto allo sviluppo web. PHP e JavaScript erano gli strumenti indispensabili, così iniziai a scrivere un'enorme quantità di moduli, a scrivere funzioni di 30 righe piene di chiamate jQuery e a copiare snippet di codice da StackOverflow. Finalmente ho ottenuto il mio primo stage come sviluppatore web. Ho ottenuto il primo riconoscimento dopo mesi di 14 ore di programmazione al giorno.
Ma sentivo che era arrivato troppo presto. Non ero ancora pronto, ma facevo finta di esserlo.
Comunque è andata bene, perché ero in un ambiente amichevole e le persone mi hanno aiutato molto. Ho scoperto GitHub e il mondo dell'open source ed è stato fantastico, perché mi è sembrato di avere centinaia di migliaia di amici pronti ad aiutarti e a fornirti soluzioni d'oro per quasi tutti i problemi di programmazione.
Sentivo di dover qualcosa a quelle persone brillanti che dedicavano diverse ore al giorno a progetti fantastici che io utilizzavo quotidianamente. Non si tratta di soldi. Si tratta di progresso e di aiuto reciproco per portare qualcosa di grande e utile a questo mondo. Non importa se si tratta di una correzione di un refuso nel README di un progetto fantastico, o se il vostro impegno è un pezzo concreto di storia. Le persone vi ringrazieranno per sempre per questo impegno.
Persone fantastiche come TJ Holowaychuk, Aaron Patterson, Steve Klabnik, sono di grande ispirazione e mi sembrano degli eroi. Guardo i loro progetti e i loro repository come un bambino in un negozio di caramelle. Allo stesso tempo, non posso fare a meno di provare un po' di invidia e frustrazione. Sono forse tra le persone più gentili del mondo, ma sono anche i geni del calcio di bell'aspetto ed estremamente affascinanti di questa scuola superiore di programmazione che è il mondo dell'open source, mentre voi siete “quel tipo basso e magro” che indossa felpe scure.
Gli sviluppatori open source sono una delle specie più belle e forse le persone meno giudicanti del web. Tuttavia, a volte mi vergogno anche solo a pensare di impegnarmi in progetti open source, perché le persone che li gestiscono sanno cosa stanno facendo, mentre io ho un'idea molto vaga di quello che sto facendo (nel migliore dei casi).
Perché sono così bravi? Pubblicano progetti che io non sono nemmeno in grado di leggere correttamente e di comprendere appieno. Risolvono problemi che il 90% degli sviluppatori (me compreso) deve affrontare ogni giorno. E lo fanno in modo elegante e perfettamente consapevole. Se una riga del codice è scritta così com'è, ci sono tonnellate di ragioni per quel singolo metodo “count” invece di “size” in quella riga. Non conosco nemmeno la differenza, quindi mi arrendo e la accetto.
La verità è che non dovrei arrendermi quando non capisco qualcosa. E in realtà non lo faccio.
Sono il padrone o lo schiavo?
Rimanere nella mia zona di comfort (== non impegnare una sola virgola in nessun progetto opensource) è l'arma migliore che ho per combattere questa paura. Finché non combini nulla di sbagliato, la gente non penserà che sei un novellino. Finché non guarderete negli occhi l'altra persona, questa non vi chiederà "Hai capito? (== lolwut dafuq bro can u progrem??)".
Spesso preferisco guardare la festa dall'esterno, piuttosto che essere il ragazzo ubriaco che balla stranamente al centro della stanza.
L'altra arma che ho per combattere questa paura è la fiducia che le persone hanno nel mio lavoro. Finché la gente si fida di te e di quello che fai, sei tu che devi soddisfare le aspettative. Puoi essere la persona meno sicura di sé al mondo, ma se sei pagato per fare un lavoro, è meglio che trovi una soluzione e lo fai. Ho scoperto che a volte (molto spesso nel mio caso) è più facile ottenere fiducia dagli altri che da se stessi. La fiducia in se stessi può essere piuttosto difficile da raggiungere. Ci si può ritrovare a pensare “Devo essere uno dei bastardi più fortunati del mondo, è andato tutto bene, di nuovo” per diverse volte di seguito.
È difficile dire di essere bravi in quello che si fa se l'80% del codice è stato scritto da altre persone, quelle brave, quelle che sanno esattamente cosa stanno facendo.
La sindrome dell'impostore è un dato di fatto e credo sia piuttosto comune tra i programmatori. Viviamo in un periodo di grandi cambiamenti, soprattutto nel mercato del lavoro. L'enorme passaggio dal modo di lavorare analogico a quello digitale nella maggior parte dei lavori moderni comporta un alto livello di concorrenza. I reclutatori possono consultare il vostro profilo GitHub per verificare le vostre competenze, e un calendario verde è molto più efficace e attraente di uno grigio. E se ottenete un buon lavoro come sviluppatore, è molto probabile che iniziate a chiedervi se vi meritate quel lavoro.
È una domanda che mi sono posto fin troppe volte. Avere programmatori così bravi nella comunità opensource non fa di ogni altro sviluppatore un novellino o un incompetente.
Quando avvengono rivoluzioni come quella che stiamo vivendo, alcuni uomini sono inevitabilmente incaricati di inventare la ruota, mentre altri sono incaricati di farne buon uso.
Questo è particolarmente vero quando si è sviluppatori: il processo di creazione e lavorazione di un prodotto porta a una soddisfazione inevitabile.
Anche se non avete creato con le vostre mani ogni singolo ingranaggio di un motore, il risultato finale è un motore funzionante, e questa è l'unica cosa che conta. E forse, il motore funziona nel modo in cui funziona perché siete stati voi a crearlo, nel suo insieme o in una piccola parte.
Abituarmi a questa sensazione non è stato facile quando ho iniziato la mia carriera, e ho ancora qualche dubbio sulle mie reali capacità quando mi siedo alla mia scrivania. Allo stesso tempo, una grande lezione che mi ha insegnato è stata quella di accettare che, finché le persone si fidano di ciò che faccio, posso e devo essere abbastanza sicuro di me da costruire qualcosa di buono e unico, e portare qualcosa di nuovo al mondo. Anche se non è la ruota.
Imparare a nuotare
Il modo più efficace per uscire da questa situazione, comunque, è affrontarla. Se non sapete nuotare, il modo migliore è buttarsi in acqua. Troverete un modo.
Questo sono io qualche anno fa, mentre affronto le mie paure.
Di recente ho sentito Zach Holman che parlava di come preparare e tenere un discorso a una conferenza qualche settimana fa, e ha detto una delle verità più belle e semplici.
Le persone stanno bene.
Ci sono dei troll, potete trovarne anche tra il vostro pubblico. Ma la maggior parte delle volte le persone non sono dei coglioni e non sono ansiose di giudicarti.
L'unica cosa che dovevo fare era espormi e uscire dalla mia zona di comfort.
Quando ho iniziato a parlare con le persone, senza fingere di sapere qualcosa che in realtà non sapevo, mi sono ritrovata in alcune delle conversazioni più emozionanti e amichevoli che abbia mai avuto. Nessuno mi ha mai preso in giro se ho detto “Che diavolo è questo?”. Gli sviluppatori di solito reagiscono alla domanda spiegando semplicemente ciò che non si sa. Parlare con le persone intorno a me è stata la prima (e più facile) parte del mio “trattamento”.
Gettarmi in situazioni molto scomode è stata la parte più difficile. Parlare con persone che non conosco, soprattutto se si tratta di sviluppatori, ha sempre comportato un alto livello di ansia. Ecco perché ho deciso di inviare un call for paper per il RubyDay 2015 qui in Italia. Costringermi ad affrontare sfide come questa è il modo migliore che ho per convincermi di non essere un impostore. Ottenere riconoscimenti e feedback tangibili da altri esseri umani è il modo più efficace per smettere di pensare a me stesso come a un impostore e iniziare a considerare il mio lavoro come un contributo prezioso.

