
Závěrečná část trilogie o hackathonech. V jsem hovořil o motivaci účastnit se takových akcí. byla věnována chybám organizátorů a jejich následkům. Závěrečná část odpoví na otázky, které se nevešly do prvních dvou částí.
Pověz mi, jak jsi začal účastnit se hackathonů.
Studoval jsem na magisterském programu na Lappeenrantské univerzitě a přitom řešil datové soutěže. Můj typický den vypadal následovně: probuzení v 8, několik přednášek na univerzitě, pak soutěže a kurzy až do půlnoci (dokud se počítalo se submission, sledoval jsem přednášky nebo četl články). Tento náročný rozvrh přinesl své plody a já vyhrál datovou soutěž MERC-2017 (o čemž jsem měl dokonce ). Výhra mi dodala sebevědomí, a když jsem náhodou narazil na informace o hackathonu SkinHack 2 v Moskvě, rozhodl jsem se navštívit rodiče a zároveň zjistit, co to vlastně hackathon je.
Samotný hackathon se ukázal jako docela zábavný. Byly dva tracky zaměřené na analýzu dat s jasnými metrikami a datovým souborem s cenami po 100k rublech. Třetí track byl zaměřen na vývoj aplikací s cenou 50k, a v něm nebyli účastníci. V jeden okamžik organizátor řekl, že okno s tlačítkem bez funkce může vyhrát 50k, protože cena nemůže být nevyplacena. Nezačal jsem se učit programovat aplikace (nekonkuruji tam, kde mě mohou snadno "převrátit"), ale pro mě to byla jasná zpráva, že pole na hackathonech nejsou zaplněná.
Tehdy jsem řešil oba tracky zaměřené na analýzu dat sám. Našel jsem leak v datech, který umožnil dosáhnout dokonalého skóre, ale sloupec s leakem nebyl v testovacích datech, které jsem dostal dvě hodiny před koncem akce (mimochodem, tehdy jsem chápal, že přítomnost sloupce "target" v tréninkových datech se nepočítá za leak). Zároveň se otevřel leaderboard, můj submission bez leaku obsazoval třetí místo z pěti, první měl značný náskok a rozhodl jsem se zbytečně neplýtvat časem a odjel jsem.
Poté, co jsem si s odstupem času analyzoval, co se stalo, našel jsem spoustu chyb (jedna z mých zvyklostí je mentálně si přehrávat, co se stalo, s blokem a analyzovat chyby, jejich příčiny a co by se dalo změnit — to je příjemný odkaz na mé polo-profesionální hraní pokeru). Ale jedno bylo jasné — na hackathonech je spousta hodnoty a já ji musím naplnit. Po této události jsem začal sledovat akce a skupiny a brzy poté se konal další hackathon. Pak ještě jeden, a další…
Proč se věnuješ hackathonům a ne Kaglu?
V tuto chvíli se mi Kagl nelíbí. Od určité úrovně dovedností, bez specifických důvodů účasti, se Kagl stává méně užitečným než jiné aktivity. Dříve jsem se hodně účastnil, evidentně jsem se nějak odpojil.
Proč hackathony a ne práce na vlastním projektu?
Líbí se mi idea vytvořit něco skvělého vlastníma rukama v pomalém tempu. Kluci z ODS organizovali pro všechny, kteří chtějí o víkendech pracovat na svých projektech v kruhu podobně smýšlejících. Myslím, že se k nim brzy připojím.
Jak nacházíš akce?
Hlavním zdrojem je hackathon.com (svět) a chat na Telegramu (Rusko). Navíc se anonce akcí objevují v reklamách na sociálních sítích a na LinkedInu. Pokud nic nenajdeš, můžeš se podívat sem: mlh.io, devpost.com, hackevents.co, hackalist.org, HackathonsNear.me, hackathon.io.
Připravuješ plán řešení před účastí nebo se všechno řeší za pochodu? Například týden před hackathonem si říkáš: „Tady bude potřebný takový a takový specialist, musím ho najít“?
Pokud je hackathon produktový — ano, připravuji se. Pár týdnů předem vymýšlím, co budu dělat, odhaduji, kdo může být užitečný, a shromažďuji tým z přátel nebo účastníků minulých hackathonů.
Je reálné hacknout hackathon osamoceně? Co dělat, pokud nemáš tým?
Hackathony v datových vědách jsou skutečné (jsem živým příkladem), u produktových jsem však žádné neviděl, i když si také myslím, že ano. Bohužel, někdy organizátoři uplatňují omezení na minimální počet účastníků v týmu. Myslím, že to je způsobeno tím, že ne všichni „osamělí vlci“ se dostanou do finále (tj. prostě odcházejí při prvních potížích), účast v týmu to však přece jen zadržuje. Po akci se předpokládá, že budete pokračovat v práci na projektu. S týmem bude snazší dotáhnout projekt do konce.
Celkově doporučuji vždy se účastnit s týmem. Pokud nemáte vlastní tým, organizátoři vám vždy pomohou najít nebo vytvořit jeden.
Jak se vám daří vyrovnávat s únavou během hackathonu?
Na hackathonu máte 2 dny na práci, tj. 48 hodin (30-48 hodin, vezmeme 48 pro zjednodušení výpočtu). Odečteme čas na spánek (16-20 hodin), zůstane maximálně 30. Z toho reálně na produktivní práci zbývá asi 8 hodin (v průměru). Pokud správně zorganizujete práci (spánek, stravování, pobyt na čerstvém vzduchu, cvičení, chvíle uvědomění, správná komunikace s týmem a změna aktivity), můžete hodiny hluboké práce dotáhnout na 12-14. Po takové práci se budete cítit vyčerpaní, ale bude to příjemná únava. Kódování bez spánku a přestávek s energetickými nápoji je cesta k neúspěchu.
Máte připravené vlastní pipeline pro hackathony? Jak jste je vytvořil, jak jsou strukturovány (soubor .py v jednotlivých složkách, každý pro svůj úkol atd.) a jak začít vytvářet takové sám?
Nepoužívám plně hotová řešení z minulých hackathonů v nových, ale mám svou zoo modelů a pipeline z proběhlých soutěží. Nemusím přepisovat standardní úseky znovu (například správné target encoding nebo jednoduchou síť na vyčlenění záměru z textu), což mi šetří spoustu času.
V současné době to vypadá takto: pro každou soutěž nebo hackathon mám své repo na GitHubu, ve kterém jsou uloženy notebooky, skripty a malá dokumentace o tom, co se děje. Navíc mám samostatné repo pro různé krabicové „vychytávky“ (jako je správné target encoding s kros-validací). Nemyslím si, že je to nejvíc elegantní řešení, ale zatím mi to vyhovuje.
Začal bych tím, že si uložím veškerý svůj kód do složek a napíšu krátkou dokumentaci (proč, co, jak jsem dělal a výsledek).
Je reálné připravit MVP z nuly za tak krátkou dobu, nebo všichni účastníci přicházejí s připravenými řešeními?
Mohu říci pouze o projektech spojených s datovou vědou — ano, je to možné. MVP pro mě je souhrn dvou faktorů:
- Životaschopná myšlenka představena jako produkt (tj. vypracovaný business canvas). Vždy by mělo být jasné porozumění tomu, proč a pro koho produkt vytváříme. Někdy projekty s dobře odůvodněným projektem, ale bez prototypu vyhrávají ceny a na tom není nic překvapivého. Bohužel, mnoho účastníků se nedokáže abstrahovat od hořkosti porážky a svádí své neúspěchy na krátkozrakost organizátorů, přičemž pokračují v budování modelů nejasného cíle na dalších hackathonech.
- Nějaký ukazatel, že tento produkt můžete vytvořit (aplikace, kód, popis pipeline).
Někdy se stane, že na hackathon přijde tým s hotovým řešením a snaží se ho "přizpůsobit" úkolu organizátorů. Takové týmy jsou vyloučeny při technickém screening a "počítá" se jen ta část, kterou udělali na místě. Neviděl jsem takové týmy mezi vítězi, ale myslím, že i tak mají smysl chodit kvůli budoucí hodnotě ().
Existují příklady, kdy byly projekty realizované na hackathonech dotaženy do produkce/startupu?
Ano. Měl jsem tři případy, kdy byly dotaženy do produkce. Jednou jsem to udělal sám, dvakrát — rukama jiných na základě mých nápadů a kódu, který jsem napsal na hackathonu. Také znám pár týmů, které pokračovaly ve spolupráci s firmou jako konzultanti. O konečných výsledcích nevím, ale pravděpodobně bylo něco dokončeno. Sám startupy jsem nezakládal a nevím, jestli někdo něco dělal, ačkoliv příklady, jsem si jistý, existují.
Po účasti na mnoha hackathonech, jaké rady bys dal sobě, kdybys se mohl vrátit do minulosti?
- Taktika je důležitější než manévry. Představ si každé rozhodnutí jako hotový produkt. Myšlenka, Jupiter notebook, algoritmus nic neznamenají, pokud není jasné, kdo za to zaplatí.
- Než začnete s návrhem čehokoli, ptejte se ne "co?", ale "proč?" a "jak?". Například, když navrhujete nějaké ML řešení, nejdříve přemýšlejte o ideálním algoritmu: co získává jako vstup a jak jsou jeho predikce dále využívány?
- Připojte se k týmu.
Čím se obvykle krmí na hackathonech?
Odpověď je, že na hackathonech bývá jídlo zpravidla špatné: pizzy, energetické nápoje, limonády. Takřka vždy je jídlo organizováno formou švédského stolu (nebo výdejního stolu), k němuž se tvoří obrovská fronta. V noci obvykle nekrmí, ačkoli v jednom soutěžním případě v Paříži nechali občerstvení — chipy, koblihy a kolu. Představil jsem si myšlenkový proces organizátorů: "Tak, co jedí programátoři? Jo, jasně! Chcípky, koblihy — to je ono. Dáme jim tuto hrůzu." Následující den jsem se zeptal organizátorů: "Kluci, nemohli bychom na noc udělat něco jiného? Například kaši?" Na to na mě koukali jako na idiota. Slavná francouzská pohostinnost.
Na dobrých hackathonech se jídlo objednává v boxech, je rozděleno na normální, vegetariánské a košer stravování. Plus se postaví lednička s jogurty, müsli — pro ty, kdo si chtějí zakousnout. Čaj, káva, voda — to je standard. Zapamatoval jsem si hackathon Hack Moscow 2 — tam nás krásně nakrmili borščem a masovými kuličkami s bramborovou kaší v jídelně kanceláře 1C.
Rozumnost hackathonů závisí, řekněme, na profesní sféře organizátorů (například, nejlépe pořádané hackathony organizují konzultanti)?
Nejlepší hackathony byly od organizátorů, kteří buď předtím již hackathony pořádali, nebo se jich dříve účastnili. Myslím, že to je jediný faktor, od kterého závisí kvalita akce.
Jak poznat, že nejsi nováček a je čas na hackathon?
Nejlepší čas, kdy jít na hackathon, byl před rokem. Druhý nejlepší čas je teď. Tak se do toho pusť, chybuje a uč se — to je v pořádku. Dokonce ani neuronová síť — největší vynález lidstva po kole a gradientním boostingu nad stromy — nedokáže rozlišit kočku od psa během prvního školení.
Jaké "červené vlajky" okamžitě naznačují, že akce nebude moc a nemělo by se na ni ztrácet čas?
- Jasný popis, co je třeba udělat (platí pro produktové hackathony). Pokud vám při registraci bude jasně stanovena úloha, raději zůstávejte doma. Za svou paměť si nepamatuji žádný dobrý hackathon s jasným zadáním. Pro srovnání: Dobře — udělejte nám něco souvisejícího s analýzou audio konverzací. Špatně — udělejte nám aplikaci, která by dokázala rozdělit konverzaci na dvě samostatné zvukové stopy pro každou osobu.
- Malý cenový fond. Pokud vás žádají, abyste vytvořili „Tinder pro online obchod s AI“ a cena za první místo je 500 eur a minimální velikost týmu je 5 lidí — pravděpodobně nestojí za to ztrácet čas (ano, tohle je skutečný hackathon, který se konal v Mnichově).
- Nedostatek dat (platí pro datascience hackathony). Organizátoři obvykle poskytují základní informace o akci a někdy vzor datového souboru. Pokud nebyly poskytnuty — zeptejte se, nic vám z toho neubyde. Pokud za 2-3 dny není jasné, jaká data budou poskytnuta a zda vůbec — to je červená vlajka.
- Noví organizátoři. Neztrácejte čas a vygooglete si informace o organizátorech hackathonu. Pokud pořádají akci tohoto druhu poprvé — je vysoká pravděpodobnost, že něco nepůjde podle plánu. Na druhou stranu, pokud organizátor a členové poroty již pořádali hackathony nebo se v minulosti aktivně účastnili — to je zelená vlajka.
Na jednom hackathonu mi řekli: „Měl jsi nejlepší řešení podle skóre, ale promiň, hodnotí se týmová práce a ty jsi pracoval sám. Kdybys vzal do týmu studenta nebo holku…?“ Setkal jsi se s takovou nespravedlností? Jak jsi se s tím vyrovnal?
Ano, setkal jsem se s tím několikrát. Beru to stoicky: udělal jsem vše, co bylo v mých silách, a pokud to nevyšlo — tak tomu i být.
Proč se tím vším vůbec zabýváš?
Všechno to dělám prostě z nudy.
Zdroj: habr.com
