Fare un CV serio da programmatore senza capirci niente di design
Poco tempo fa ho pubblicato una guida su come cercare lavoro da neo-laureati che ha riscosso un discreto successo. Ho deciso quindi di dare seguito al format con un'altra guida pensata sia per neo-laureati che per persone già nel mondo del lavoro
Tre settimane dopo essere stato assunto nella mia prima azienda, fresco fresco di laurea, per qualche motivo a me oscuro venni piazzato di fianco ad un paio di miei colleghi più esperti non per migliorarmi nelle mie allora scarse conoscenze di Scala (non che ora ci capisca davvero qualcosa...) ma per fare da supporto al colloquio per un potenziale futuro collega. Capii che era un'attività che mi piaceva e da allora cercai di venire coinvolto il più possibile nei processi di assunzione delle aziende per cui ho lavorato.
Proprio in questi giorni sto vagliando decine di curriculum per trovare il mio futuro compagno di scrivania. Vista la mole di CV indecenti che sto ricevendo e visto che nel corso degli anni mi è capitato spesso di discutere e lavorare a CV altrui, ho deciso di buttare giù qualche riga per dare un po' di indicazioni a quelli di voi che si trovano spaesati.
Prima di cominciare, un doveroso disclaimer: la guida non vuole coprire tutto ciò che c'è da sapere per fare un CV, né vuole puntare a fare un CV che sia perfetto per tutti i tipi di pubblico, cosa pressoché impossibile. Inoltre è una guida estremamente di parte: è ciò che piace a me, è ciò che piace a quelli che mi hanno assunto e a quelli con cui ho collaborato nei processi di assunzione. Sia sul piano estetico sia sul piano contenutistico prenderò delle posizioni nette: il mio non è l'unico modo di fare un CV ma è l'unico modo in cui lo farei io. Prendetelo come tale.
Le basi
Un CV è un documento ma è anche una storia e un oggetto di design. È un documento perché contiene informazioni chiare e puntuali su cosa avete fatto, su cosa sapete fare e potenzialmente su cosa volete fare in futuro. È una storia perché oltre al dato freddo devono trasparire esperienze vissute, interessi professionali, personalità e attitudine. È un oggetto di design perché deve veicolare l'informazione, nei tempi e nei modi richiesti dai processi di assunzione che passano attraverso gli occhi di specialisti in HR, ingegneri e manager. Un CV inoltre deve fare tutto questo nel minor spazio possibile.
Un CV da programmatore ha tratti molto diversi da quelli di altre categorie professionali. Siete lavoratori qualificati e come tali dovete valorizzare la vostra competenza e puntare principalmente su quella. Al tempo stesso navigate un mercato del lavoro che vi è favorevole quindi potete permettervi di essere più selettivi di altre categorie meno privilegiate: cosa mettete nel CV e il formato che gli date sono una forma di selezione passiva. Non volete solo attirare l'occhio di chi vi piace ma anche respingere l'occhio di chi non vi piace.
Un CV da programmatore deve contenere:
* Informazioni personali (nome, cognome, informazioni di contatto, opzionalmente data di nascita)
* Esperienze di formazione (università, certificazioni)
* Esperienze lavorative
* Competenze tecniche
Tutto il resto è un'aggiunta che potete valutare per casi specifici ma in che generale va trattato come un extra da tagliare non appena sentite che il vostro CV si sta appesantendo troppo. Possiamo però citare elementi molto comuni come:
- Lingue
- Interessi personali
- Corsi online o altre esperienze formative di breve durata
- Pubblicazioni (ovviamente questa voce acquisisce dignità al crescere dell'importanza delle vostre pubblicazioni, ma per la maggior parte dei programmatori è da considerarsi opzionale)
- Premi e risultati vari
Il target
Partiamo con la prima scelta forte: un CV da programmatore deve corteggiare prima di tutto i tecnici e solo in secondo luogo l'HR, sia esso umano o automatizzato. O perlomeno, questo è ciò che vogliamo fare in questa guida. Incontrare pienamente il gusto di entrambe le categorie è a mio parere impossibile. Secondo la mia esperienza personale, vari dipartimenti di un'azienda prediligono colleghi con tratti diametralmente opposti. Le tracce che suggeriscono queste caratteristiche spesso fanno fatica a convivere in un singolo CV.
Quindi perché dare priorità agli ingegneri? Beh, innanzitutto per la questione di selezione passiva di cui si parlava in precedenza: un'azienda dove i tecnici valutano i CV direttamente è un'azienda dove è più probabile che i tecnici abbiano maggiore autonomia. Siccome si assume che voi siate tecnici e che l'autonomia vi piaccia, cerchiamo di fare un CV per un'azienda in cui vi trovereste bene.
Tuttavia tutte le aziende da una certa dimensione in su metteranno tra voi e i tecnici almeno uno strato di HR. L'HR nelle aziende moderne possono avere due nature: possono essere uno strumento di supporto al lavoratore o possono essere uno strumento di repressione del lavoratore. A seconda del ruolo che ricopre l'HR nell'azienda, questo darà valutazioni diverse al vostro CV. In entrambi i casi però il nostro obiettivo è uno: passare indenni attraverso la scrematura dell'HR per far colpo sui tecnici.
Detto questo, come modelliamo gli interessi dei nostri target? Cosa vogliono vedere scritto sulla carta per dire: “ah, questo giovinotto sembra proprio fare al caso nostro. Orsù, organizziamo una telefonata.” Premettiamo che da settore a settore e da nazione a nazione ci possono essere differenze culturali molto profonde e un modello solo non è sufficiente. Quindi condite il tutto con una buona dose di buon senso e applicatelo al vostro caso personale.
Gli ingegneri guarderanno principalmente due cose: le tecnologie e il metodo. Al netto della compatibilità con il profilo che stanno cercando, valuteranno le altre tecnologie presenti nel CV e lo faranno in maniera molto critica. Averne troppe vi farà passare per uno che insegue sempre la novità o che vuole gonfiare il CV per mancanza di sostanza. Averne poche e troppo tradizionali rischierà di fargli pensare che abbiate passato gli ultimi 5 anni chiusi in uno stanzino a scrivere qualche script un paio di volte al mese e girare su reddit nel resto del tempo.
Soluzione? Componete il vostro CV includendo le tecnologie consolidate per il settore in cui volete lavorare e condite con due o tre nomi di tecnologie/framework/linguaggi più recenti. Escludete tutto il resto. Se fate application per una posizione da sviluppatore embedded, buttate via le esperienze a fare frontend in Javascript o a fare API REST in Python. Sono solo rumore. Piuttosto mettete Rust (beginner) per fare vedere che vi tenete aggiornati e studiate in autonomia. Poi se avete fatto solo una ventina di ore di tutorial non importa: se ve lo chiedono al colloquio dite che siete un po' “arrugginiti”. Loro ridono, voi ridete e due giorni dopo firmate un indeterminato.
Quello che volete comunicare è che avete una chiara idea di cosa si usa nel settore (e se non lo sapete, leggete di più, documentatevi) e voi lo sapete usare. Se loro usano qualcosa di diverso, non vi sarà difficile adattarvi, perché comunque avete l'abitudine a studiare per conto vostro.
Veniamo alle metodologie. Qui secondo me risiede il margine tra l'attirare un ingegnere e farlo innamorare. Vi porto un esempio che ha funzionato su di me. Un CV a cui ho dato 5 stelline su 5 questa settimana riportava sotto la voce “Strength” la seguente entry in prima posizione: “Write clean, test-driven, type-annotated Python” (grassetti suoi). “Embè?” direte voi, questo è quello che ci si aspetta da ogni programmatore Python che sa cosa sta facendo. Quello che mi ha colpito è però la formulazione: questa persona sa qual è la priorità per un programmatore ed è scrivere codice pulito. Buono. Sa anche che in Python se non fai test-driven development il tuo codice non vale niente perché non hai un compilatore che ti aiuta. Ottimo, sai che siamo su questa barca tutti insieme perché a dei manager hanno detto che Python va bene per le startup e ci forzano ad usare Python, ma sappiamo come stare a galla. Concludi specificando che il codice che scrivi è “type-annotated”. Perfetto, questa è la ciliegina sulla torta: le type annotation in Python sono state introdotte da relativamente poco e sono totalmente opzionali. Se sei un perfezionista o se hai lavorato in un team con un processo di sviluppo serio e strutturato le hai usate, altrimenti puoi anche non sapere che esistono. Dare questa rilevanza ad un dettaglio simile per me è uno shibboleth: io sono un programmatore Python come si deve, se lo sei anche tu apprezzerai, altrimenti ti passerà sopra la testa.
E l'HR? Non avendo mai lavorato come HR è un argomento su cui mi sento meno sicuro, ma cercherò di elaborare come posso. Il ruolo dell'HR in fase di assunzione non è ovviamente valutare la competenza tecnica ma la compatibilità tra l'individuo e le persone con cui si troverà ad agire in azienda ed eventualmente con i clienti.
Una volta verificata in maniera meccanica la conformità ai requisiti richiesti, procederanno ad una valutazione più soggettiva del candidato. Si va da un giudizio estetico del CV ad una profilazione psicologica. Si vogliono escludere persone che potrebbero non andare d'accordo con il resto del team, persone con problemi di socializzazione, persone non neurotipiche e in generale tutto ciò che devii eccessivamente dalla norma. Genio e sregolatezza, fintanto che resta nei rigidi confini del conformismo aziendale. Chiaramente l'intervista telefonica e in presenza fisica hanno un peso molto maggiore del CV, ma evidenti elementi di dissonanza potrebbero risultare in un'eliminazione prematura della vostra candidatura.
Come porsi quindi? Il mio approccio riprende quello di un grande teorico e visionario del post-lavorismo, un impiegato delle Poste di un paesello sperduto sulle colline piemontesi, che negli anni '70 rivelò a mia madre, allora neo-assunta, una grande verità: “meno fai, meno sbagli”. In questo caso vi invito a fare lo stesso: non date appigli, giocate sul sicuro. Ogni HR valuterà a modo proprio e in maniera estremamente soggettiva. Quindi piuttosto che inseguire i loro gusti, conviene offrire il minimo indispensabile e non scoprire il fianco cercando di stupire. Abbiamo detto che un CV deve essere una storia: la vostra storia deve assomigliare ad una fiction televisiva. Niente argomenti scomodi, niente estro creativo.
Cos'è quindi il minimo indispensabile? Forse questa è la parte più aperta della guida. Per me è una trattazione asciutta delle esperienze lavorative, informazioni personali e di contatto al minimo, foto solo se ne avete una veramente buona, idealmente fatta in un business shooting aziendale per un'azienda precedente. C'è poi sempre il dibattito caldissimo sugli “interessi personali”: io, per coerenza con quanto detto sopra e per mille altri motivi li evito ma non giudico se volete prendervi il rischio di metterli.
Un'ultima nota sull'HR: più è grande l'azienda per cui vi state candidando, più è probabilmente che automatizzino alcuni passaggi durante la selezione dei candidati. Molto comune è la valutazione di compatibilità attraverso keyword e per questi sistemi, così come per il valore del CV in quanto tale, uno sforzo extra di personalizzazione del CV con parole chiave presenti nell'annuncio di lavoro potrebbe incrementare le vostre possibilità. Ovviamente inserite solo cose che sapete fare, ma come detto in precedenza, una sovrabbondanza di keyword sfora nel rumore e nella confusioni, perciò valutate di selezionarle in funzione dell'annuncio e con in mente il fatto che potrebbe esserci un sistema automatico a valutarvi.
Un altro tipo di sistema, meno comune nel nostro settore, sono i valutatori psicometrici. Sulla validità scientifica di questi software si scrive molto così come si scrive molto degli effetti nefasti che hanno sulla forza lavoro. Fondamentalmente si tratta di software che analizzano il vostro CV, magari facendo anche ricerche su internet e sui vostri contenuti social pubblicamente disponibili, per fare una profilazione psicologica e valutare la vostra compatibilità con i valori aziendali. Questo spesso significa ricercare persone dall'indole remissiva e più facilmente manipolabili, poiché in molti settori questi compongono il dipendente ideale. Sinceramente non penso siano comunemente applicati nel nostro settore ma non è impensabile che in qualche forma possano comparire nei processi di assunzione dei programmatori di fila da usare in body rental. In ogni caso orecchie dritte.
La struttura
Cominciamo dalla struttura del documento. Qui avete a disposizione un numerosi formati possibili e sarete sempre tentati di saltare dall'uno all'altro in corso d'opera. Il consiglio, forse ovvio, è di chiarirsi le idee sul formato come primissima cosa, buttare giù uno schemino su carta e capire come procedere. Adattate il contenuto alla forma e non viceversa. Con buona pace di ingegneri e razionalisti, il colpo d'occhio in questi casi è molto più importante del valore dei contenuti: potete aver lavorato con Linus Torvalds, Rich Hickey e van Rossum che se questa informazione è nascosta a pagina 3, non vale nulla. Nessuno cerca nella terza pagina di Google, figuriamoci nella terza pagina del vostro CV.
Parliamo di pagine. Pagina singola sì o pagina singola no? Opinione sul design #1: Per me un CV che non è su una pagina sola perde automaticamente 100 punti. Ho avuto CV che non erano mono-pagina, poi ho capito che quando li valutavo, penalizzavo istintivamente chiunque andasse oltre la pagina e mi sono ravveduto. Il meccanismo è semplice: se non riesci a far stare queste informazioni in una pagina, mi vien da pensare che non riuscirai a far stare un programma semplice in un numero dignitoso di righe di codice. Troppa sintesi sappiamo che conduce ad un codice illeggibile, ma la prolissità è molto peggio. Un CV può stare tranquillamente in una pagina, usatelo come perno su cui impostare il vostro design: la creatività ama i vincoli.
Né io né probabilmente voi siamo designer quindi procediamo per piccoli passi. Opinione sul design #2: se fate una singola colonna, sprecate un sacco di spazio senza aggiungere leggibilità. Le opzioni che ritengo più pratiche e realistiche sono: doppia colonna o colonna principale e colonna laterale a sinistra (non troppo piccola). Doppia colonna con colonnina laterale è ardito ma probabilmente non serve nella maggior parte dei casi. Tripla colonna si può fare ma è hard mode.
Da zety.com
La tecnologia
Una volta deciso il formato, dovrete decidere la tecnologia da utilizzare. Qui ci sono diverse opzioni e una comparazione estensiva è fuori dallo scope di questo articolo. Citiamone però alcune:
- LateX (quella che uso io)
- HTML+CSS
- InDesign/Illustrator
- HTML generato da vari linguaggi tipo MarkDown o reStructuredText (spesso no abbastanza potenti, valutate con attenzione)
- Word (buona fortuna)
Prima di scegliere lo strumento premuratevi che manipolare gli elementi del CV non sia troppo difficile (sopratutto in Word). Inoltre considerate che probabilmente vorrete rimaneggiare questo documento ogni paio d'anni senza rifarlo da zero. Di conseguenza il tempo che ci investite verrà ripagato sul lungo periodo se vi organizzate per riutilizzare il lavoro fatto in precedenza.
Altro punto importante: dove e come conservare il vostro CV. Se deve sopravvivere a lungo, conviene conservarlo in uno storage di cui vi fidate. Niente hard disk interni o esterni, niente chiavette. Un servizio di cloud storage qualsiasi può andare benissimo. Io personalmente, usando LateX, salvo tutto su GitHub così da avere anche il versionamento e poter ricostruire varie versioni precedenti. Questa opzione potrebbe essere un po' problematica con formati pesanti tipo Illustrator.
Lavorare al CV
Ok, a questo punto dovreste avere un'idea di cosa usare per comporre il vostro CV e di cosa metterci dentro. Cosa fare quindi? Il primo passo è cercare un template già fatto che sia compatibile con la tecnologia che volete usare. Google è sempre l'opzione migliore. Selezionate un template che vi piaccia esteticamente e che combaci col formato che avete scelto. Non siete designer quindi fare un template da zero potrebbe essere un esercizio con risultati disastrosi ed è una via che mi sento di sconsigliare.
Procedete quindi a riempirlo con le vostre esperienze, le vostre competenze e i vostri dati. La prima versione sarà meno che ottimale e probabilmente sentirete di aver lasciato fuori cose importanti perché lo spazio è finito. Se volete fare un CV a pagina singola questo è il momento in cui probabilmente tentennerete. Tenete duro, prendete un bel respiro, distaccatevi dal valore che emotivo che date alle cose che state mettendo nel CV e osservatelo da fuori. Tagliate e stringete, semplificate, alleggerite finché non avrete una prima bozza soddisfacente.
In questa fase paga tanto avere un circolo di conoscenze a cui sottoporre il CV. Voi non sarete mai buoni giudici del vostro CV e non sarete mai sufficientemente distaccati da valutarlo con gli occhi con cui lo valuteranno le persone dall'altra parte del pulsante “Upload”. Perciò mandatelo ad altri programmatori e raccogliete i loro feedback. Se potete, mandatelo ad amici che lavorano nell'HR o ancora meglio nella grafica. Fatevi fare proof-reading da più persone possibile. Ripetete e iterate finché non sarete soddisfatti. Non riuscirete a fare contenti tutti e non è questo il vostro obiettivo, però valutate ogni feedback per avere un'idea di cosa penseranno i recruiter che vedranno il vostro CV. Non è un proxy perfetto ma è il migliore che avete.
Creare un CV è come far crescere un bonsai: è un processo che dura nel tempo, in cui la perfezione è ottenuta tramite un continuo lavoro di aggiunta (la naturale crescita del bonsai) e rimozione (l'opera di taglio e guida del giardiniere). Il vostro CV deve essere per voi quello che un bonsai è per un albero: una rappresentazione in miniatura di voi stessi che, per quanto imperfetta ed effimera, incarna un equilibrio estetico. Questo si può fare appropriandosi di un po' di concetti base di design visuale. Uno studio estensivo non è necessario per fare un CV e dei rudimenti minimi spesso sono sufficienti ad evitare errori grossolani.
Il mio CV
Concludiamo con un esempio. Siccome questa guida è pesantemente schierata come specificato all'inizio, non posso che portarvi l'esempio del mio CV. Lo considero ancora lontano dall'idea di perfezione che ho in mente e ad un anno e mezzo di distanza da quando l'ho rimaneggiato l'ultima volta, sono tanti i difetti che ci vedo ora. Tuttavia è un'incarnazione fedele delle idee presentate in questo articolo e voglio presentarvelo. Serve a voi come esempio visuale di ciò di cui abbiamo discusso e serve a me per ricevere eventuali critiche costruttive.
Potete trovare l'ultima versione su GitHub.
Cosa cambierei ad un anno e mezzo di distanza? Probabilmente stringerei le descrizioni delle esperienze lavorative, ancora troppo prolisse. Questo anche per far spazio alla mia ultima esperienza lavorativa senza dover eliminare quelle precedenti. Cambierei sicuramente il font come mi fu suggerito al tempo e che tenni per un'ostinazione che ora non saprei giustificare. Probabilmente rimpiazzerei i progetti con una sezione con le contribuzioni in open-source. Infine snellirei la parte di tecnologie, magari evidenziando in grassetto quelle su cui sono più competente.
Spero che questa guida possa aiutarvi nel trovare lavoro nell'azienda che desiderate. Per commenti, insulti e minacce di morte, mi trovate su Telegram e Twitter come @SimoneRobutti e su reddit come u/chobeat.