QA: Hackatony

QA: Hackatony

Záverečná časť trilógie o hackathonoch. V prvej časti som hovoril o motivácii zúčastniť sa takýchto podujatí. Druhá časť bola venovaná chybám organizátorov a ich následkom. Záverečná časť odpovie na otázky, ktoré sa nezmestili do prvých dvoch častí.

Povedz, ako si začal zúčastňovať na hackathonoch.
Študoval som na magisterskom štúdiu na Lappeenrantskej univerzite a popritom som sa zúčastňoval súťaží v analýze dát. Môj typický deň vyzeral nasledovne: zobudenie o 8, niekoľko prednášok na univerzite, potom súťaže a kurzy do polnoci (kým som podával, pozeral som prednášky alebo čítal články). Takýto náročný harmonogram sa vyplatil a vyhral som súťaž v analýze dát MERC-2017 (o čom bola dokonca príspevok na habre). Víťazstvo mi dodalo sebavedomie a keď som náhodou narazil na informácie o hackathone SkinHack 2 v Moskve, rozhodol som sa navštíviť rodičov a zároveň zistiť, čo to vlastne hackathon je.

Sám hackathon bol pomerne zábavný. Boli dva traky v analýze dát s jasnou metrikou a súborom dát s cenami po 100k rubľov. Tretí trak bol zameraný na vývoj aplikácií s cenou 50k, a v ňom neboli žiadni účastníci. V jednom momente organizátor povedal, že okno s tlačidlom bez funkčnosti môže vyhrať 50k, pretože cena nemôže zostať nevyplatená. Nezačal som sa učiť programovať aplikácie (nezúčastňujem sa tam, kde ma môžu s ľahkosťou „prevrátiť“), ale pre mňa to bol jasný odkaz, že pole na hackathonoch nie sú zaplnené.

Vtedy som riešil oba traky v analýze dát sám. Našiel som lik v dátach, ktorý umožňoval dosiahnuť perfektné skóre, ale stĺpec s likom nebol v testovacích dátach, ktoré som dostal dve hodiny pred koncom akcie (mimochodom, vtedy som pochopil, že existencia stĺpca „target“ v tréningu sa nepovažuje za lik). Zároveň sa otvorila líderborda, môj submit bez lika obsadil tretie miesto z piatich, prvý mal veľký náskok, a tak som sa rozhodol neplytvať časom a odišiel som.

Keď som si po odvetraní situácie v hlave zanalizoval, čo sa stalo, našiel som množstvo chýb (jedna z mojich zvyklostí je mentálne si prechádzať, čo sa udialo, s blokom a analyzovať chyby, ich príčiny a čo by sa dalo zmeniť — také príjemné dedičstvo polo-profesionálnej hry v pokri). Ale jedno bolo jasné — na hackathonoch je veľa hodnoty a ja ju musím využiť. Po tejto udalosti som začal monitorovať podujatia a skupiny, a ďalší hackathon na seba nenechal dlho čakať. Potom ďalší, a ešte jeden…

Prečo sa venuješ hackathonom, a nie Kaglu?
V súčasnosti ma Kagl nebaví. Od určitého levelu skillu, bez špeciálnych dôvodov účasti, sa Kagl stáva menej užitočným ako iné aktivity. Veľa som sa zúčastnil v minulosti, evidentne som sa akosi „odtrhol“.

Prečo hackathony, a nie práca na vlastnom projekte?
Imponuje mi myšlienka vytvoriť niečo skvelé vlastnými rukami v pomalšom tempe. Chlapci z ODS zorganizovali ODS pet projects pre všetkých, ktorí sa chcú cez víkend venovať svojmu projektu v kruhu podobne zmýšľajúcich. Myslím, že sa k nim čoskoro pridám.

Ako nachádzaš podujatia?
Hlavný zdroj — hackathon.com (svet) a chat na Telegrame Russian Hackers (Rusko). Plus ohlasy na podujatia sa objavujú v reklamách na sociálnych sieťach a LinkedIn. Ak nič nenájdeš, môžeš sa pozrieť sem: mlh.io, devpost.com, hackevents.co, hackalist.org, HackathonsNear.me, hackathon.io.

Pripravuješ plán riešenia pred účastí alebo všetko riešiš za pochodu? Napríklad, týždeň pred hackathonom si ujasňuješ: „Tu bude potrebný taký a taký odborník, treba to nájsť“?
Ak je hackathon produktový — áno, pripravujem sa. Niekoľko týždňov pred tým vymýšľam, čo budem robiť, premýšľam, kto by mohol byť potrebný, zbieram tím z priateľov alebo účastníkov predchádzajúcich hackathonov.

Je reálne hacknúť hackathon osamelo? Čo robiť, ak nemáš tím?
Hackatony dátových vedcov sú reálne (sám som živým dôkazom), produktové som však nevidel, aj keď si myslím, že áno. Na druhej strane, niekedy organizátori obmedzujú minimálny počet účastníkov v tíme. Myslím, že je to spôsobené tým, že nie všetci „osamotení jednotlivci“ sa dostanú do finále (t.j. odídu pri prvých ťažkostiach), účastie v tíme však pomáha udržať sa. Po udalosti sa predpokladá, že budete pokračovať v práci na projekte. S tímom bude jednoduchšie dotiahnuť projekt do úspešného konca.

Celkovo odporúčam vždy sa zúčastniť s tímom. Ak nemáte svoj tím, organizátori vám vždy pomôžu ho nájsť alebo vytvoriť.

Ako sa dá zvládnuť únava počas hackathonu?
Na hackathone máte 2 dni na prácu, to je 48 hodín (30-48 hodín, pre jednoduchosť zvážime 48). Odčítame čas na spánok (16-20 hodín), zostáva maximálne 30. Z nich na produktívnu prácu sa reálne použije asi 8 hodín (v priemere). Ak správne zorganizujete prácu (spánok, stravovanie, vychádzky na čerstvý vzduch, cvičenie, minútky uvedomenia, správne komunikovanie s tímom a prepínanie aktivít), môžete dosiahnuť hlboké pracovné hodiny 12-14. Po takejto práci sa budete cítiť vyčerpaní, ale bude to príjemná únava. Kódovať bez spánku a prestávok a prehadzovať sa energetickými nápojmi — to je cesta k neúspechu.

Máte vlastné pripravené pipeliny pre hackatony? Ako sa vám objavili, ako sú usporiadané (sú uložené v priečinkoch .py súbory, každý pre svoju úlohu atď.) a ako začať vytvárať takéto sám?
Nepoužívam úplne pripravené riešenia z minulých hackathonov v nových, ale mám svoj zverinec modelov a pipelín z predošlých súťaží. Nemusím prepisovať štandardné časti od nuly (napr. správne target encoding alebo jednoduchú sieťu na rozpoznávanie zámeru z textu), čo mi šetrí veľa času.

V súčasnosti to vyzerá takto: pre každú súťaž alebo hackathon mám svoje repo na GitHube, v ktorom sú uložené notebooky, skripty a malá dokumentácia o tom, čo sa deje. Plus mám osobitné repo pre rôzne hotové ‚fígle‘ (ako správne target encoding s krížovou validáciou). Nemyslím, že je to najprémiovejšie riešenie, ale zatiaľ mi to vyhovuje.

Začal by som s organizovaním celého svojho kódu do priečinkov a napísaním krátkej dokumentácie (prečo, čo, ako som robil a výsledok).

Je naozaj možné pripraviť MVP za tak krátky čas od základov, alebo všetci účastníci prichádzajú s hotovými riešeniami?
Môžem povedať len o projektoch súvisiacich s datascience — áno, je to možné. MVP pre mňa predstavuje kombináciu dvoch faktorov:

  • Životaschopná myšlienka prezentovaná ako produkt (t.j. opísaný business canvas). Vždy by malo byť jasné porozumenie tomu, prečo a pre koho produkt robíme. Niekedy projekty s dobre zdôvodneným plánom, ale bez prototypu, vyhrávajú ocenenia, a na tom nie je nič prekvapujúce. Bohužiaľ, mnohí účastníci sa nedokážu odosobniť od sklamania a svoje neúspechy pripisujú krátkozrakosti organizátorov, pričom na ďalších hackathonoch pokračujú vo vytváraní modelov nejasné pre koho.
  • Určitý ukazovateľ, že tento produkt môžete vytvoriť (aplikácia, kód, popis pipeline).

Stáva sa, že na hackathon príde tím s hotovým riešením a snaží sa ho "prispôsobiť" zadaniu organizátorov. Takéto tímy sú odfiltrované na technickom skríning, alebo "sa počíta" iba tá časť, ktorú vytvorili na mieste. Takéto tímy som nevidel medzi víťazmi, ale myslím, že im to aj tak vyhovuje kvôli budúcej hodnote (kontakty, datasety a podobne).

Existujú príklady, ako sa dielo realizované na hackathonoch dostalo do produkcie/startupu?
Áno. Mal som tri prípady, keď sa dostali do produkcie. Raz som to spravil sám, dvakrát — cudzími rukami na základe mojich nápadov a kódu, ktorý som napísal na hackathone. Poznám aj niekoľko tímov, ktoré pokračovali v spolupráci s firmou ako konzultanti. O konečných výsledkoch neviem, ale pravdepodobne sa niečo dokončilo. Sám som startupy neorganizoval a neviem, či niekto niečo robil, aj keď som presvedčený, že príklady existujú.

Po účasti na mnohých hackathonoch, aké rady by si si dal, keby si sa mohol vrátiť do minulosti?

  1. Taktika je dôležitejšia ako manévre. Zoberte každé rozhodnutie ako hotový produkt. Myšlienka, Jupiter notebook, algoritmus nič neznamenajú, ak nie je jasné, kto za to zaplatí.
  2. Pred tým, ako navrhneš čokoľvek, si polož otázku nie "čo?", ale "prečo?" a "ako?". Príklad: pri navrhovaní ML riešenia si na začiatku premysli ideálny algoritmus: čo dostane na vstupe, ako sa jeho predpovede používajú ďalej?
  3. Pridaj sa k tímu.

Čo sa zvyčajne podáva na hackathonoch?
Zvyčajne sa na hackathonoch podáva zle: pizze, energetické nápoje, sóda. Takmer vždy je jedlo usporiadané formou švédskych stolov (alebo rozdeľovacích stolov), pri ktorých sa vytvára obrovská fronta. V noci zvyčajne neponúkajú jedlo, aj keď bol jeden prípad, keď na jednom podujatí v Paríži zostali na noc chipsy, donuty a kolu. Predstavujem si myšlienkový proces organizátorov: „Tak, čo jedia programátori? Aha, určite! Chipsy, donuty — to je ono. Dáme im túto hlúposť.“ Na druhý deň som sa opýtal organizátorov: „Chlapci, nemôžeme na noc pripraviť niečo iné? Napríklad kašu?“ Na to na mňa pozreli, ako keby som bol idiot. Slávna francúzska pohostinnosť.

Na dobrých hackathonoch objednávajú jedlo v boxoch, je rozdelenie na bežné, vegetariánske a košer stravovanie. Navyše postavia chladničku s jogurtmi, müsli — pre tých, ktorí si chcú niečo zahryznúť. Čaj, káva, voda — štandard. Spomínam si na hackathon Hack Moscow 2 — tam nás skutočne pobalili borščom a karbonátkami s pyré v jedálni kancelárie 1C.

Zmysluplnosť hackathonov do veľkej miery závisí od profesijného zamerania organizátorov (napríklad, najlepšie hackathony organizujú konzultanti)?
Najlepšie hackathony boli od organizátorov, ktorí predtým buď organizovali hackathony, alebo sa na nich predtým zúčastnili. Možno je to jediný faktor, od ktorého závisí kvalita podujatia.

Ako zistiť, že nie si nováčik a je čas na hackathon?
Najlepší čas ísť na hackathon bol pred rokom. Druhý najlepší čas je teraz. Takže sa neváhaj, rob chyby, uč sa — je to normálne. Ani neurónová sieť — najväčší vynález človeka po kolese a gradientnom boosting na stromoch — nedokáže rozlíšiť mačku od psa počas prvej epochy učenia.

Aké „červené vlajky“ okamžite naznačujú, že podujatie nebude veľmi dobré a netreba strácať čas?

  • Jasný popis toho, čo treba urobiť (aktuálne pre produktové hackathony). Ak bude zadaná úloha jasne pri registrácii, je lepšie ostať doma. Z mojej pamäti nebol ani jeden dobrý hackathon s jasným zadaniam. Na porovnanie: Dobré – urobte nám niečo súvisiace s analýzou audio rozhovorov. Zlé – urobte nám aplikáciu, ktorá by dokázala rozdeliť rozhovor na dve samostatné zvukové stopy pre každého človeka.
  • Malý prize pool. Ak vás požiadali, aby ste urobili „tinder pre online obchod s AI“ a odmena za prvé miesto je 500 eur s minimálnym počtom členov tímu 5 osôb – asi nestojí za to tráviť čas (áno, to je skutočný hackathon, ktorý sa uskutočnil v Mníchove).
  • Nedostatok údajov (aktuálne pre hackathony v oblasti dátovej vedy). Organizátori zvyčajne poskytujú základné informácie o podujatí a niekedy vzor dátového súboru. Ak ich neposkytli – opýtajte sa, bude vám to len na prospech. Ak počas 2-3 dní nie je jasné, aké údaje budú poskytnuté a či vôbec budú – to je červená vlajka.
  • Noví organizátori. Nezabudnite a vyhľadajte informácie o organizátoroch hackathonu. Ak organizujú takúto udalosť po prvýkrát – je veľká šanca, že niečo nepôjde podľa plánu. Na druhej strane, ak organizátor a členovia poroty už organizovali hackathony alebo sa v minulosti aktívne zapájali – to je zelená vlajka.

Na jednom hackathone mi povedali: „Máš najlepšie riešenie, ale prepáč, hodnotí sa práca tímu, zatiaľ čo ty si pracoval osamote. Ak by si vzal do tímu študenta alebo dievča...?“ Stretol si sa s takou nespravodlivosťou? Ako si sa s tým vyrovnal?
Áno, stretol a nie raz. K všetkému, čo sa deje, pristupujem stoickým spôsobom: urobil som všetko, čo bolo v mojich silách, ak to nevyšlo – tak to má byť.

Prečo sa tomu všetkému venuješ?
To je len zo zábavy.

Zdroj: habr.com

Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster