Code

Google Hash Code 2020: intervista ai partecipanti

17 Marzo 2020 - 5 minuti di lettura

Giovedì 20 Febbraio 2020 si è tenuto il round di qualificazione per la quinta edizione della competizione Google Hash Code.

Team da tutto il mondo si sono dati battaglia per quattro ore per cercare di risolvere, a suon di righe di codice, un problema di natura ingegneristica.

Come è andata? Scopriamolo attraverso le voci dei componenti dei due team IntrHash e (╯°□°)╯︵ ǝpoƆ ɥsɐH ospitati nell’Intré Hub (i nostri uffici della sede di Seriate) registrato appositamente per l’evento.

Che cos’è Hash Code

Hash Code è una team programming competition.
In piccole squadre da due a quattro, i programmatori di tutto il mondo affrontano il primo problema attraverso un round di qualificazione online.
Sebbene questo round sia ospitato online, i team possono riunirsi per competere fianco a fianco in Hash Code hub coordinati localmente.

Come funziona?

Una volta registrati al contest, si ha accesso al Judge System.
Il Judge System è la piattaforma online di Google per formare la propria squadra, registrarsi ad un hub, esercitarsi e gareggiare durante i round.
Il round di qualificazione online inizia con un live streaming su YouTube per essere introdotto al problema, dopodiché ogni team avrà quattro ore per risolvere un problema di ottimizzazione utilizzando qualsivoglia linguaggio di programmazione e strumenti (IDE, versionamento del codice etc.).
Ogni team decide se competere da un hub locale o da un’altra posizione a scelta.
I primi 50 punteggi permettono di accedere al round finale che si terrà il 25 Aprile nella sede Google di Dublino, per lavorare insieme per risolvere un’altra sfida e competere per i premi in denaro.

A tu per tu con i protagonisti

Lasciamo la parola ai capisquadra Alberto Maggioni e Damiano Salvi (assieme al teammate Fabio Grieco) che raccontano come hanno vissuto l’esperienza.

Da chi è nata l’idea di partecipare all’Hash Code?

Alberto: “L’idea è partita da me, che ho proposto una gilda per prepararci e partecipare a questa competizione, spinto dalla voglia di mettermi in gioco in qualcosa che non avevo mai sperimentato in precedenza.

Damiano: “Da me. Il team con Fabio si è formato al momento, sapendo che anche lui si era iscritto.

Come vi siete preparati per l’evento?

Alberto: “Dal momento che nessuno di noi aveva mai partecipato ad una competizione simile, abbiamo sin dall’inizio cercato di capire quale fosse la metodologia migliore per affrontare problemi così complessi in sole quattro ore di tempo. Di volta in volta abbiamo quindi cercato di risolvere gli esercizi degli anni precedenti e organizzato delle retrospettive per individuare gli aspetti da migliorare. Per quanto riguarda il linguaggio da utilizzare abbiamo optato per Javascript, essendo quello più conosciuto da tutti i membri della squadra.

Damiano e Fabio: “Come anticipato alla risposta precedente, non ci siamo preparati. E’ stata una decisione dell’ultimo minuto.

Un conto è allenarsi, un altro è la gara ufficiale. Qual era il vostro stato d’animo?

Alberto: “Nel corso della gilda abbiamo avuto dei risultati un po’ altalenanti: qualche volta siamo riusciti ad ottenere dei buoni risultati, mentre in altri casi non siamo riusciti nemmeno a terminare il lavoro, complice il poco tempo a disposizione. Il giorno della gara si avvertiva un po’ di tensione all’interno del team, ma penso di poter dire che l’adrenalina ha permesso ad ognuno di noi di dare qualcosa in più.

Damiano: “Abbiamo vissuto un mix di tante sensazioni. Eravamo concentrati, organizzati e con mille idee in testa. Il tutto spinto da una grande curiosità di mettersi alla prova pur senza allenamento (a differenza dei colleghi rivali).

Cosa è andato bene e cosa no nel lavoro di squadra durante il round? Ne avete discusso al termine della gara?

Alberto: “Al termine della gara, nonostante la stanchezza, ci siamo confrontati e abbiamo concluso che difficilmente avremmo potuto fare di più. Probabilmente con un po’ più di esperienza alle spalle saremmo riusciti a terminare prima la base del nostro codice e avremmo avuto tempo per cercare e sperimentare approcci alternativi.

Damiano: “Non abbiamo fatto una retrospettiva. La mia scelta di usare come linguaggio Kotlin ha sicuramente aiutato in molti aspetti, ma mi è dispiaciuto che Fabio non si sentisse abbastanza fresco sul linguaggio per scrivere un po’ di codice. Nonostante mi sia divertito a scrivere tutto io, sarebbe stato più bello collaborare anche in questo. A parte questo, reputo molto positivi i momenti di confronto con Fabio per capire cosa implementare, le possibili semplificazioni ed evoluzioni dell’algoritmo nei diversi momenti della gara. Il confronto ha prodotto dei risultati interessanti. Sicuramente ci siamo sempre sentiti coinvolti dalla competizione e sono stato contento del mio compagno di squadra last-minute.

Fabio: “Il brainstorming iniziale, fatto immediatamente dopo la lettura della traccia, ha prodotto molte idee che siamo riusciti ad applicare in modo incrementale analizzando di volta in volta i progressi fatti. Questo metodo di lavoro ci ha permesso di tenere traccia dell’efficacia delle varie soluzioni individuate e di combinare quelle migliori. Pur non essendo mai stato alla tastiera mi sono sentito assolutamente coinvolto, anche perché ho potuto focalizzarmi sulla ricerca di nuove possibili soluzioni al problema.

Siete soddisfatti del risultato ottenuto?

Alberto: “Sì, siamo molto soddisfatti perché, nonostante fosse il primo tentativo, siamo riusciti a classificarci al 560° posto su un totale di oltre 10000 partecipanti provenienti da tutto il mondo. A livello nazionale invece abbiamo ottenuto un onorevolissimo 21° posto!

Damiano: “Assolutamente! Avevo già partecipato ad un Hash Code con un altro team Intré qualche anno fa, ed era stata una disfatta. Stavolta invece abbiamo approcciato il problema nel modo giusto, ed il piazzamento nel 15% dei migliori è personalmente un ottimo risultato.

Fabio: “Certamente. Non avevo nessun tipo di aspettativa perché non conoscevo quasi nulla di questa competizione se non qualche informazione molto generica arrivatami per sentito dire.

Hash Code 2021. Ci riproverete?

Alberto: “Sicuramente sì, con l’obiettivo di migliorare ancora approfondendo nuove tecniche e linguaggi.

Damiano e Fabio: “Perché no? Possiamo solo migliorare.

Riferimenti

Articolo scritto da