Zašto biste trebali sudjelovati u hackathonima

Zašto biste trebali sudjelovati u hackathonima

Približno prije godinu i pol dana počeo sam sudjelovati na hackathonima. Tijekom tog razdoblja sudjelovao sam u više od 20 događaja raznih razmjera i tema u Moskvi, Helsinkiju, Berlinu, Münchenu, Amsterdamu, Cirihu i Parizu. Na svim tim događanjima bavio sam se analizom podataka u nekom obliku. Sviđa mi se dolaziti u nova mjesta, uspostavljati nove kontakte, smišljati svježe ideje, realizirati stare zamisli u kratkom vremenskom periodu i osjećati adrenalin tijekom prezentacija i objavljivanja rezultata.

Ovaj post je prvi od tri posta o hackathonima, u kojem ću objasniti što su hackathoni i zašto biste trebali početi sudjelovati u njima. Drugi post će se baviti tamnom stranom ovih događanja — greškama koje su organizatori napravili prilikom održavanja i posljedicama koje su proizašle iz njih. Treći post bit će posvećen odgovorima na pitanja vezana uz hackathon temu.

Što je hackathon?

Hackathon je događaj koji se održava tijekom nekoliko dana, a cilj mu je rješavanje određenog problema. Obično postoji nekoliko problema na hackathonu, od kojih je svaki predstavljen kao zaseban trag. Sponzorska tvrtka pruža opis zadatak, mjere uspješnosti (mjerila mogu biti subjektivna poput “noviteta i kreativnosti”, a mogu biti i objektivna — točnost klasifikacije na odvojenom skupu podataka) i resurse za postizanje uspjeha (API tvrtke, skupovi podataka, “oprema”). Sudionici trebaju unutar zadanog vremena formulirati problem, predložiti rješenje i pokazati prototip svog proizvoda. Najbolja rješenja dobivaju nagrade od tvrtke i mogućnost daljnje suradnje.

Faze hackathona

Nakon izlaganja zadataka, sudionici hackathona se udružuju u timove: svaki "solo igrač" dobiva mikrofon i govori o odabranom zadatku, svom iskustvu, ideji i stručnjacima koji su mu potrebni za realizaciju. Ponekad tim može sastojati od jedne osobe koja je sposobna samostalno obaviti sav posao na projektu na dovoljno visokom nivou. To je relevantno za hackathone vezane uz analizu podataka, ali često je zabranjeno ili nepoželjno na proizvodnim događanjima — organizatori se usredotočuju na daljnje nastavak rada na projektu, ali već u kompaniji; formirani tim ima niz prednosti u odnosu na sudionike koji su odlučili raditi na proizvodu sami. Optimalan tim obično se sastoji od 4 osobe i uključuje: frontend, backend, data scientist i poslovnu osobu. Inače, razdvajanje data science/proizvodnih hackathona je prilično jednostavno — ako postoji skup podataka s jasnom metrikom i ljestvicom ili se može pobijediti s kodom u Jupyter notebooku — to je data science hackathon; sve ostalo — gdje je potrebno napraviti aplikaciju, web stranicu ili nešto zanimljivo — je proizvodni.

Obično rad na projektu započinje u 9 navečer u petak, a rok je 10 ujutro u nedjelju. Dio tog vremena potrebno je odvojiti za san (ne spavati i kodirati — to je siguran put do neuspjeha, provjerio sam), a to znači da sudionici nemaju puno vremena za kvalitetno nešto napraviti. Kako bi pomogli sudionicima, na lokaciji su prisutni predstavnici kompanije i mentori.

Rad na projektu započinje razgovorom s predstavnicima kompanije, jer oni najbolje razumiju specifičnost zadatka, metrike i vjerojatno će oni ocjenjivati vaša djela na kraju. Cilj ovog razgovora je razumjeti koja su područja najaktuelnija i na čemu treba usmjeriti svoju pažnju i vrijeme.

Na jednom hackathonu postavljen je zadatak regresije na skupu podataka s tablicama i slikama i jasnom metrikom — RMSE. Nakon razgovora s data scientistom iz tvrtke, shvatio sam da im nije potrebna regresija, već klasifikacija, ali netko iz menadžmenta odlučio je da se zadatak najbolje rješava na taj način. A klasifikacija im nije potrebna kako bi povećali novčane metrike, već kako bi razumjeli koji su parametri najvažniji pri donošenju odluka, a zatim ih obrađivali ručno. To znači da se početni zadatak (regresija s RMSE) mijenja u klasifikaciju; prioritet ocjenjivanja prelazi s dobivene točnosti na mogućnost objašnjenja rezultata. To, pak, isključuje mogućnost korištenja stacking i black box algoritama. Ovaj dijalog mi je uštedio puno vremena i povećao moje šanse za pobjedu.

Nakon što razumijete što trebate raditi, započinje neposredni rad na projektu. Morate postaviti kontrolne točke — vrijeme do kada morate izvršiti postavljene zadatke; usput, dobro je nastaviti s komunikacijom s mentorima — predstvanicima tvrtke i tehničkim stručnjacima — to je korisno za ispravak smjera vašeg projekta. Nova perspektiva na problem može donijeti zanimljivo rješenje.

Budući da na hackathonima sudjeluje veliki broj novaka, od strane organizatora je dobro postupiti održavanjem predavanja i radionica. Obično su tri predavanja — o tome kako predstaviti svoju ideju u obliku proizvoda, predavanje na tehničku temu (na primjer, o korištenju otvorenih API-ja u strojnome učenju, kako ne biste morali pisati vlastiti speech2text u dva dana, već da iskoristite gotove), predavanje o pitching-u (kako predstaviti svoj proizvod, kako pravilno mahati rukama na pozornici da slušaocima ne bude dosadno). Postoje različite aktivnosti za podizanje raspoloženja sudionika — sesija joge, stolni nogomet i tenis ili igranje na konzoli.

U nedjelju ujutro trebate predstaviti rezultate svog rada žiriju. Na dobrim hackathonima sve počinje s tehničkom ekspertizom — radi li doista ono što tvrdite? Cilj ove provjere je odvojiti timove s atraktivnom prezentacijom i buzzwordima, ali bez proizvoda od onih koji su zaista nešto napravili. Nažalost, tehnička ekspertiza nije prisutna na svim hackathonima, a postoje slučajevi kada tim s 12 slajdova i mentalitetom „... blockchain, kvantno računanje, a tu će AI završiti…” osvoji prvo mjesto. Takvi presedani nisu tako česti, ali budući da se bolje pamte, mnogi misle da dobra prezentacija čini 99% pobjede na hackathonu. Prezentacija, uzgred, doista je važna, ali njen doprinos ne prelazi 30%.

Nakon nastupa sudionika, žiri donosi odluku o dodjeli nagrada pobjednicima. Time je službeni dio hackathona završen.

Motivacija za sudjelovanje na hackathonima

Iskustvo

S gledišta stečenog iskustva, hackathon je jedinstveni događaj. U prirodi postoji malo mjesta gdje možete realizirati ideju iz ničega u roku od 2 dana i dobiti trenutnu povratnu informaciju o svom radu. Tijekom hackathona razvijate kritičko razmišljanje, timski rad, upravljanje vremenom, sposobnost rada u stresnim situacijama, sposobnost prezentiranja rezultata svog rada na razumljiv način, vještine prezentiranja i mnoge druge. Upravo zbog toga hackathoni su izvrsno mjesto za ljude s teorijskim znanjem koji žele steći stvarno iskustvo.

Nagrade

Obično nagradni fond hackathona iznosi otprilike 1.5k — 10k eura za prvo mjesto (u Rusiji — 100-300 tisuća rubalja). Očekivanu korist (expected value, EV) od sudjelovanja možete izračunati prema jednostavnoj formuli:

EV = Nagrada * WinRate + Buduća_Vrijednost - Troškovi

gdje Nagrada — visina nagrade (radi jednostavnosti pretpostavimo da je nagrada jedna);
WinRate — vjerojatnost pobjede (za početnički tim ova vrijednost bit će ograničena na 10%, za iskusnije — 50% i više; susretao sam ljude koji su s svakog hackathona odlazili s nagradom, ali to je više iznimka nego pravilo i na duže staze njihova winrate bit će ispod 100%);
Buduća_Vrijednost — veličina koja pokazuje buduću dobit od sudjelovanja u hackathonu: to može biti dobit od stečenog iskustva, razvijenih kontakata, dobivenih informacija itd. Ovu veličinu praktički je nemoguće točno odrediti, ali je potrebno imati je na umu;
Troškovi — troškovi prijevoza, smještaja, ostalo.

Odluka o sudjelovanju donosi se na temelju usporedbe EV hackathona s EV aktivnošću koju biste radili da hackathona nije bilo: ako ste planirali ležati na kauču tijekom vikenda i čeprkati nos, onda vjerojatno vrijedi sudjelovati u hackathonu; ako želite provesti vrijeme s roditeljima ili djevojkom — onda ih uključite u svoj tim za hackathon (šalim se, odlučite sami), ako biste radije freelancali — usporedite dolar-sat.

Prema svojim proračunima, mogu reći da u Hrvatskoj za prosječnog data scientista razine junior — mid sudjelovanje u hackathonima odgovara novčanoj dobiti od običnog radnog dana, ali postoje i nijanse (veličina tima, tip hackathona, nagradni fond itd.). Općenito, hackathoni u ovom trenutku nisu zlatna prilika, ali mogu donijeti ugodan dodatak osobnom budžetu.

Zapošljavanje u tvrtku i umrežavanje

Za tvrtku, hackathon je jedan od načina zapošljavanja novih zaposlenika. Bit će vam lakše pokazati da ste razuman čovjek koji zna raditi na hackathonu nego na razgovoru za posao, objašnjavajući binarno stablo na ploči (što, usput, nije uvijek u skladu s onim što ćete raditi na pravom poslu data scientista, ali tradicije treba poštovati). Ova provjera u 'borbenim' uvjetima može zamijeniti probni dan.

Svoj prvi posao dobio sam zahvaljujući hackathonu. Na hackathonu sam pokazao kako iz podataka možemo izvući više novca, objasnio sam kako to namjeravam učiniti. Pokrenuo sam projekt na hackathonu, pobijedio, a zatim sam projekt nastavio u tvrtki sponzoru. Ovo je bio četvrti hackathon u mom životu.

Mogućnost dobivanja jedinstvenog skupa podataka

Ovo je vrlo važna tema za hackathone vezane uz podatkovnu znanost, čiju važnost ne prepoznaju svi. Obično sponzorske tvrtke pružaju stvarne skupove podataka tijekom događaja. Ti podaci su privatni, pod NDA-om, što ne sprječava da vam pokažemo proof of concept na stvarnom skupu podataka, a ne na igračkama poput Titanica. U budućnosti će ovakvi rezultati značajno pomoći pri zapošljavanju u toj tvrtki ili u konkurentskoj firmi, ili pri opravdanju sličnih projekata. Priznajte, u jednakim uvjetima, imati dovršene projekte koje su pozitivno ocijenili je bolje nego nemati ih. Općenito, ovakvi provedeni projekti igraju sličnu ulogu medaljama i statusima na Kagglu, ali za industriju njihova je vrijednost očitija.

Savjeti

Općenito, rad na hackathonu je prilično raznolik iskustvo i teško je formulirati bilo kakav popis pravila. Ipak, želio bih navesti neke zapažanja koja mogu pomoći početnicima:

  1. Ne bojte se odlaziti na hackathone čak i ako nemate iskustva ili tim. Razmislite o tome kako biste mogli biti korisni. Na primjer, možete imati zanimljivu ideju ili se dobro snalazite u nekom području? Možete iskoristiti svoje domensko znanje prilikom formuliranja problema i pronaći nesvakidašnje načine rješenja. Ili možda najbolje od svih znate pretraživati? Vaša vještina će vam uštedjeti puno vremena ako možete pronaći gotove implementacije na GitHubu. Ili jako dobro poznajete tuning parametara lightgbm? U tom slučaju, nemojte ići na hackathon, već to dokažite na Kagglovim natjecanjima.
  2. Taktika je važnija od manevara. Vaš zadatak na hackathonu je rješavanje problema. Ponekad da biste riješili problem, trebate ga prvo identificirati. Provjerite je li vaš identificirani problem doista relevantan za tvrtku. Provjerite je li vaše rješenje u skladu s problemom, postavite si pitanje o optimalnosti vašeg rješenja. Pri ocjenjivanju vašeg rješenja, prvenstveno će gledati na relevantnost problema i adekvatnost predloženog rješenja. Arhitektura vaše neuronske mreže ili koliko ste bodova dobili malo koga zanima.
  3. Posjećujte što više hackathona, ali ne oklijevajte napustiti loše organizirane događaje.
  4. Dodajte rezultate svog rada na hackathonu u svoj životopis i ne bojte se pisati o tome javno.

Zašto biste trebali sudjelovati u hackathonima
Bit hackathona. Ukratko

Izvor: habr.com

Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere 🔥 Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere | ProHoster