
Circa un anno e mezzo fa, ho iniziato a partecipare a hackathon. In questo periodo, ho preso parte a più di 20 eventi di varie dimensioni e tematiche a Mosca, Helsinki, Berlino, Monaco, Amsterdam, Zurigo e Parigi. In tutti questi eventi, mi sono occupato di analisi dei dati in un modo o nell'altro. Mi piace visitare nuove città, creare contatti, ideare nuove soluzioni, realizzare vecchi progetti in un breve lasso di tempo e l'adrenalina durante le presentazioni e l'annuncio dei risultati.
Questo post è il primo di tre dedicati agli hackathon, in cui parlerò di cosa sono gli hackathon e del perché dovreste iniziare a parteciparvi. Il secondo post tratterà il lato oscuro di questi eventi, ovvero gli errori commessi dagli organizzatori durante lo svolgimento e le conseguenze che ne sono derivate. Il terzo post sarà dedicato a rispondere alle domande relative al tema degli hackathon.
Cos'è un hackathon?
L'hackathon è un evento che si svolge nell'arco di alcuni giorni, il cui obiettivo è risolvere un determinato problema. Di solito, ci sono diversi problemi all'hackathon, ognuno rappresentato come un track separato. L'azienda sponsor fornisce una descrizione della sfida, metriche di successo (queste metriche possono essere soggettive, come "novità e creatività", oppure oggettive, come la precisione della classificazione su un dataset di test) e risorse per raggiungere il successo (API dell'azienda, dataset, "hardware"). I partecipanti, entro il tempo a disposizione, devono formulare il problema, proporre una soluzione e presentare un prototipo del loro prodotto. Le migliori soluzioni ricevono premi dall'azienda e la possibilità di collaborazioni future.
Fasi dell'hackathon
Dopo la presentazione delle sfide, i partecipanti all'hackathon si uniscono in team: ogni “solista” riceve un microfono e parla della sfida scelta, della propria esperienza, delle idee e dei specialisti di cui ha bisogno per realizzarla. Talvolta, il team può consistere in un'unica persona in grado di portare avanti tutto il lavoro sul progetto a un livello sufficientemente alto. Questo è comune negli hackathon di analisi dei dati, ma spesso è vietato o indesiderato per eventi di product design — gli organizzatori mirano a far proseguire il lavoro sul progetto all'interno di un'azienda; un team formato ha vantaggi rispetto ai partecipanti che preferiscono creare un prodotto da soli. Un team ottimale di solito è composto da 4 persone e include: un frontend developer, un backend developer, un data scientist e una persona di business. A proposito, la distinzione tra hackathon di data science e di prodotto è piuttosto semplice: se c'è un dataset con metriche chiare e una leaderboard o se si può vincere con codice su Jupyter Notebook — si tratta di un hackathon di data science; tutto il resto — dove è necessario realizzare un'app, un sito o qualcosa di coinvolgente — è considerato un hackathon di prodotto.
Di solito, il lavoro su un progetto inizia alle 21:00 di venerdì, con una scadenza fissata per le 10:00 di domenica. Parte di questo tempo deve essere dedicata al sonno (non dormire e codificare è un sicuro percorso verso il fallimento, l'ho verificato), il che significa che i partecipanti non hanno molto tempo per realizzare qualcosa di qualitativo. Per supportare i partecipanti, ci sono rappresentanti dell'azienda e mentori presenti sul posto.
Il lavoro sul progetto inizia con una comunicazione con i rappresentanti dell'azienda, poiché hanno la migliore comprensione della specificità del compito, delle metriche e probabilmente saranno loro a giudicare il vostro lavoro alla fine. L'obiettivo di questa comunicazione è comprendere quali direzioni sono più rilevanti e su cosa vale la pena concentrare la propria attenzione e tempo.
Durante un hackathon, è stato posto un compito di regressione su un dataset con dati tabulari e immagini, con una chiara metrica — RMSE. Dopo aver parlato con il Data Scientist dell'azienda, ho capito che avevano bisogno non di regressione, ma di classificazione, anche se qualcuno della direzione aveva deciso che il problema dovesse essere affrontato in quel modo. La classificazione, inoltre, non serve per ottenere un incremento delle metriche economiche, ma per comprendere quali parametri siano i più importanti nella presa di decisioni, per poi elaborarli manualmente. Quindi, il compito iniziale (regressione con RMSE) si trasforma in classificazione; la priorità passa dalla precisione ottenuta alla possibilità di spiegare il risultato. Questo, a sua volta, esclude l'uso di algoritmi di stacking e black box. Questo dialogo mi ha fatto risparmiare un sacco di tempo e ha aumentato le mie possibilità di successo.
Dopo aver compreso cosa è necessario fare, inizia il lavoro effettivo sul progetto. Devi stabilire dei punti di controllo — i tempi entro i quali completare le attività assegnate; nel frattempo, è utile continuare a comunicare con i mentori — rappresentanti dell'azienda e tecnici — questo è prezioso per correggere il percorso del tuo progetto. Uno sguardo fresco al problema può suggerire una soluzione interessante.
Poiché ai hackathon partecipano molti principianti, è buona prassi da parte degli organizzatori tenere conferenze e laboratori. Di solito ci sono tre conferenze — una su come presentare la propria idea come prodotto, una lezione su temi tecnici (per esempio sull'uso delle API aperte nell'apprendimento automatico, così non dovrai scrivere il tuo speech2text in due giorni, ma potrai utilizzare una soluzione pronta), e una lezione sul pitching (come presentare il tuo prodotto, come muoversi sul palco affinché gli ascoltatori non si annoino). Ci sono diverse attività per ravvivare i partecipanti — sessioni di yoga, calcio da tavolo e tennis o giochi su console.
La domenica mattina è necessario presentare i risultati del vostro lavoro alla giuria. Nei buoni hackathon, tutto comincia con un'expertise tecnica: ciò che affermate funziona davvero? L'obiettivo di questo controllo è quello di filtrare i team con presentazioni belle e buzzword, ma senza un prodotto, da quelli che hanno veramente realizzato qualcosa. Sfortunatamente, l'expertise tecnica non è presente in tutti gli hackathon e ci sono casi in cui un team con 12 slide e un'idea di “... blockchain, computazione quantistica, e poi qui l'IA completare…” vince il primo posto. Questi precedenti non sono così frequenti, ma poiché si ricordano meglio, molti pensano che una buona presentazione sia il 99% della vittoria in un hackathon. La presentazione, per la cronaca, è davvero importante, ma il suo contributo non supera il 30%.
Dopo la presentazione, la giuria prende una decisione sulla premiazione dei vincitori. Con questo si conclude la parte ufficiale dell'hackathon.
Motivazioni per partecipare agli hackathon
Esperienza
Dal punto di vista dell'esperienza acquisita, un hackathon è un evento unico. Ci sono pochi posti nella natura dove si può realizzare un'idea dal nulla in 2 giorni e ricevere un feedback immediato sul proprio lavoro. Durante l'hackathon si sviluppano il pensiero critico, la capacità di lavorare in team, la gestione del tempo, la capacità di operare in situazioni di stress, la competenza nel presentare i risultati del proprio lavoro in modo comprensibile, le abilità di presentazione e molte altre. È proprio per questo che gli hackathon sono un ottimo luogo per le persone con conoscenze teoriche che desiderano acquisire esperienze pratiche.
Premi
Di solito il montepremi di un hackathon varia da circa 1.5k a 10k euro per il primo posto (in Russia da 100 a 300 mila rubli). Il valore atteso (expected value, EV) della partecipazione può essere calcolato con una semplice formula:
EV = Premio * Percentuale di Vittoria + Valore Futuro - Costi dove Premio — l'ammontare del premio (per semplificare consideriamo che ci sia un solo premio);
Percentuale di Vittoria — probabilità di vincita (per un team alle prime armi, questo valore sarà limitato superiormente al 10%, per un team più esperto — 50% e oltre; ho incontrato persone che tornavano da ogni hackathon con un premio, ma è più un'eccezione che una regola, e a lungo termine il loro tasso di vittorie sarà inferiore al 100%);
Valore_Futuro — grandezza che mostra i profitti futuri dalla partecipazione all'hackathon: può trattarsi di guadagni dall'esperienza acquisita, relazioni instaurate, informazioni ottenute, ecc. Questo valore è praticamente impossibile da definire con precisione, ma è importante tenerlo presente;
Costi — spese per trasporti, alloggio, e altro.
La decisione di partecipare viene presa confrontando l'EV dell'hackathon con l'EV dell'attività che avresti svolto se non ci fosse stato l'hackathon: se volevi farti una chiacchierata sul divano nel weekend e grattarti il naso, allora forse vale la pena partecipare all'hackathon; se intendi trascorrere del tempo con i genitori o la fidanzata — portali con te all'hackathon (sto scherzando, decidete voi), se vuoi fare freelance — confronta dollaro-ora.
Secondo i miei calcoli, posso dire che in Russia per un data scientist di livello junior — mid è equivalente partecipare a hackathon con il guadagno di una giornata lavorativa normale, ma ci sono anche alcune sfide (dimensione del team, tipo di hackathon, montepremi, ecc.). In generale, al momento, gli hackathon non rappresentano un'opportunità d'oro, ma possono offrire un'integrazione piacevole al budget personale.
Assunzioni in azienda e networking
Per un'azienda, l'hackathon è uno dei modi per assumere nuovi dipendenti. Sarà molto più facile dimostrare che sei una persona valida e sai lavorare a un hackathon rispetto a un colloquio, dove si discute di alberi binari sulla lavagna (il che, tra l'altro, non sempre corrisponde a quello che farai ufficialmente come data scientist, ma le tradizioni vanno rispettate). Questa verifica in condizioni 'di battaglia' può sostituire una giornata di prova.
Ho ottenuto il mio primo lavoro grazie a un hackathon. Durante l'hackathon ho dimostrato che dai dati si possono estrarre più guadagni e ho spiegato come intendevo farlo. Ho avviato un progetto all'hackathon, l'ho vinto, poi ho continuato il progetto all'interno della compagnia sponsor. Questo è stato il quarto hackathon della mia vita.
Opportunità di ottenere un dataset unico
Questo è un punto molto attuale per i hackathon di data science, la cui importanza non è compresa da tutti. Di solito, le aziende sponsor forniscono dataset reali durante l'evento. Questi dati sono privati e soggetti a NDA, ma ciò non impedisce di mostrarvi una proof of concept su un dataset reale, piuttosto che su un giocattolo come il Titanic. Successivamente, risultati simili saranno di grande aiuto per il vostro impiego in questa azienda o in una concorrente, oppure per la giustificazione di progetti simili. Concordate che, a parità di condizioni, avere progetti realizzati e apprezzati positivamente sia migliore che non averne? In generale, progetti realizzati di questo tipo svolgono un ruolo simile a medaglie e status su Kaggle, ma per l'industria il loro valore è più ovvio.
Consigli
In generale, lavorare a un hackathon è un'esperienza piuttosto variegata e risulta difficile formulare un elenco di regole specifiche. Tuttavia, qui vorrei fornire un elenco di osservazioni che possono aiutare i principianti:
- Non abbiate paura di partecipare a hackathon anche se non avete esperienza o un team. Pensate a come potete essere utili. Ad esempio, potreste avere un'idea interessante o conoscenze approfondite in qualche settore. Potete usare la vostra expertise nel formulare il problema e trovare soluzioni non banali. O magari siete esperti nel cercare informazioni online? Questa abilità vi permetterà di risparmiare molto tempo, se riuscite a trovare implementazioni già pronte su GitHub. Oppure, siete particolarmente bravi nel tuning dei parametri di lightgbm? In tal caso, invece di partecipare a un hackathon, dimostratevi nei concorsi su Kaggle.
- La strategia è più importante delle manovre. Il vostro obiettivo all'hackathon è risolvere un problema. A volte, per risolvere un problema, è necessario identificarlo. Verificate che il problema identificato sia realmente rilevante per l'azienda. Controllate se la vostra soluzione risponde al problema e chiedetevi se è ottimale. Quando viene valutata la vostra soluzione, si guarderà innanzitutto alla rilevanza del problema e all'adeguatezza della soluzione proposta. L'architettura della vostra rete neurale o quanti hackathon avete partecipato interessa poco a chi valuta il vostro lavoro.
- Partecipate a quanti più hackathon possibile, ma non esitate a lasciare eventi male organizzati.
- Aggiungete i risultati del vostro lavoro agli hackathon nel curriculum e non temete di parlarne pubblicamente.

L'essenza degli hackathon. In breve
Fonte: habr.com
