Digitální průlom – jak se to stalo

Toto není první hackathon, který jsem vyhrál, ani první, o kterém se mluví psaní, a toto není první příspěvek na Habrém věnovaný „Digitálnímu průlomu“. Ale nedalo mi to napsat. Své zkušenosti považuji za dostatečně jedinečné, abych je mohl sdílet. Jsem asi jediný člověk na tomto hackathonu, který vyhrál regionální etapu a finále jako součást různých týmů. Chcete vědět, jak se to stalo? Vítejte u kočky.

Regionální etapa (Moskva, 27. - 28. července 2019).

Poprvé jsem viděl reklamu na „Digital Breakthrough“ někde v březnu až dubnu tohoto roku. Tak velký hackathon jsem si samozřejmě nemohl nechat ujít a zaregistroval jsem se na web. Tam jsem se seznámil s podmínkami a programem soutěže. Ukázalo se, že abyste se na hackathon dostali, museli jste projít online testem, který začal 16. května. A možná bych na to pohodlně zapomněl, protože jsem nedostal dopis, který by mi připomínal začátek testování. A musím říci, že v budoucnu VŠECHNY DOPISY, které mi přišly z CPU, neustále končily ve složce se spamem. I když jsem pokaždé klikl na tlačítko „není závadné“. Nevím, jak se jim podařilo dosáhnout takového výsledku, s mailingem na MailGun mi to nevyšlo. A zdá se, že kluci vůbec nevědí o existenci služeb jako isnotspam.com. Ale to jsme odbočili.

Na jedné ze schůzek jsem byl upozorněn na začátek testování startupový klub, tam jsme probírali i složení týmu. Po otevření seznamu testů jsem se nejprve posadil k testu Javascript. Obecně byly úkoly víceméně adekvátní (například jaký bude výsledek, když v konzoli přidáte 1 + '1'). Ale ze své zkušenosti bych takové testy použil při náboru na práci nebo do týmu s hodně velkými výhradami. Faktem je, že v reálné práci se s takovými věcmi programátor setká jen málokdy, při své schopnosti rychle odladit kód - tyto znalosti spolu nijak nekorelují a na pohovory se na takové věci můžete natrénovat celkem snadno (znám ze sebe). Obecně jsem test proklikal celkem rychle, v některých případech jsem se zkontroloval v konzoli. V python testu byly úlohy přibližně stejného typu, testoval jsem se i v konzoli a překvapilo mě, že jsem získal více bodů než v JS, ačkoliv jsem v Pythonu nikdy profesionálně neprogramoval. Později jsem v rozhovorech s účastníky slyšel historky o tom, jak silní programátoři měli v testech nízké skóre, jak někteří lidé dostávali dopisy, že neprošli výběrovým řízením na CPU, a pak je stejně pozvali. Je jasné, že tvůrci těchto testů s největší pravděpodobností o ničem neslyšeli teorie testů, ani o jejich spolehlivosti a validitě, ani o tom, jak je testovat, a nápad s testy by byl od samého začátku propadákem, i kdybychom nebrali v úvahu hlavní cíl hackathonu. A hlavním cílem hacku, jak jsem se později dozvěděl, bylo vytvořit Guinessův rekord a testy tomu odporovaly.

V určitou chvíli po absolvování testů mi zavolali, zeptali se, zda bych se zúčastnil, upřesnili podrobnosti a řekli mi, jak se dostat do chatu pro výběr týmu. Brzy jsem vstoupil do chatu a krátce o sobě napsal. V chatu se odehrával úplný odpad, zdálo se, že organizátoři dělali reklamu spoustě náhodných lidí, kteří s IT neměli nic společného. Mnoho produktových manažerů „na úrovni Steva Jobse“ (skutečná fráze z příspěvku jednoho účastníka) zveřejnilo své příběhy a normální vývojáři nebyli ani vidět. Měl jsem ale štěstí a brzy se přidal ke třem zkušeným JS programátorům. Poznali jsme se už na hackathonu a pak jsme do týmu přidali holku pro inspiraci a řešení organizačních záležitostí. Nepamatuji si proč, ale vzali jsme téma „Trénink kybernetické bezpečnosti“ a zařadili ho do stopy „Věda a vzdělávání 2“. Poprvé jsem se ocitl v týmu 4 silných programátorů a poprvé jsem cítil, jak snadné bylo vyhrát v takovém složení. Přišli jsme nepřipraveni a hádali se až do oběda a nemohli se rozhodnout, co budeme dělat: mobilní aplikaci nebo webovou. V jakékoli jiné situaci bych si myslel, že to bylo selhání. Nejdůležitější pro nás bylo pochopit, v čem budeme lepší než naši konkurenti, protože kolem bylo spousta týmů, které stříhaly testy, kybernetické hry a podobně. Poté, co jsme se na to podívali a vygooglovali jsme školicí programy a aplikace, rozhodli jsme se, že naším hlavním rozlišovacím znakem budou požární cvičení. Vybrali jsme řadu funkcí, které nás zaujaly k implementaci (registrace s ověřením emailu a hesla proti hackerským databázím, zasílání phishingových emailů (ve formě dopisů od známých bank), školení sociálního inženýrství na chatu). Když jsme se rozhodli, co děláme, a pochopili jsme, jak můžeme vyniknout, rychle jsme napsali plnohodnotnou webovou aplikaci a já jsem hrál neobvyklou roli backendového vývojáře. Tím jsme suverénně vyhráli svou trať a jako součást dalších tří týmů se kvalifikovali do finále v Kazani. Později jsem se v Kazani dozvěděl, že výběr do finále byl fikcí, potkal jsem tam mnoho známých tváří z týmů, které výběrem neprošly. Dokonce s námi dělali rozhovor novináři z Channel 1. V reportáži z ní se však naše aplikace zobrazila pouze na 1 sekundu.

Digitální průlom – jak se to stalo
Snowed team, kde jsem vyhrál krajskou etapu

Finále (Kazaň, 27. – 29. září 2019)

Pak ale začaly neúspěchy. Všichni programátoři z týmu Snowed během asi měsíce jeden po druhém hlásili, že nebudou moci jet do Kazaně na finále. A přemýšlel jsem o nalezení nového týmu. Nejprve jsem zavolal na obecný chat ruského Hack Teamu, a přestože jsem tam dostal poměrně hodně odpovědí a pozvánek do týmů, žádná z nich mě nezaujala. Byly tam nevyrovnané týmy, jako produkt, mobilní vývojář, front-end, připomínající labuť, raka a štiku z bajky. Byly tam i týmy, které mi nevyhovovaly technologicky (např. s vývojem mobilní aplikace ve Flutteru). Nakonec v chatu, který jsem považoval za odpad (stejný VKontakte, kde probíhal výběr týmů pro regionální fázi), byl zveřejněn inzerát o hledání frontendera pro tým a já jsem psal čistě náhodně. Ukázalo se, že kluci jsou postgraduální studenti na Skoltech a okamžitě nabídli, že se sejdou a seznámí. Líbilo se mi to, týmy, které se raději hned na hackathonu poznají, mě obvykle znepokojují nedostatkem motivace. Potkali jsme se v „Rake“ na Pyatnitskaya. Kluci vypadali chytře, motivovaně, sebevědomě a ve vítězství a já jsem se rozhodl právě tam. Ještě jsme nevěděli, jaké stopy a úkoly budou ve finále, ale předpokládali jsme, že vybereme něco, co souvisí se strojovým učením. A mým úkolem bude napsat k této záležitosti admina, takže jsem si na to předem připravil šablonu založenou na antd-admin.
Do Kazaně jsem jel zadarmo, na náklady pořadatelů. Musím říct, že ohledně nákupu vstupenek a vůbec organizace finále už bylo na chatech a blozích vyjádřeno hodně nespokojenosti, nebudu to všechno převyprávět.

Po příjezdu na Kazaňské Expo, registraci (měl jsem trochu problém se získáním odznaku) a snídani jsme si šli vybrat trať. Na slavnostní otevření, kde mluvili funkcionáři, jsme šli jen asi 10 minut.Ve skutečnosti jsme už měli své oblíbené skladby, ale zajímaly nás detaily. V tracku č. 18 (Rostelecom) se například ukázalo, že je potřeba vyvinout mobilní aplikaci, i když to ve stručném popisu nebylo. Udělali jsme hlavní volbu mezi stopou č. 8 Defektoskopie potrubí, Gazprom Neft PJSC a stopou č. 13 Perinatální centra, Účetní komora Ruské federace. V obou případech byla potřeba Data Science a v obou případech mohl být přidán web. V tracku č. 13 nás zarazilo, že tam byl úkol Data Science dost slabý, bylo potřeba parsovat Rosstat a nebylo jasné, zda je potřeba admin panel. A samotná hodnota úkolu byla na pochybách. Nakonec jsme se rozhodli, že jako tým nám více vyhovuje dráha 8, zvlášť když kluci už měli zkušenosti s řešením podobných problémů. Začali jsme tím, že jsme promysleli scénář, ve kterém by naši aplikaci používal koncový uživatel. Ukázalo se, že budeme mít dva typy uživatelů: techniky, kteří se zajímají o technické informace, a manažery, kteří potřebují finanční ukazatele. Když se objevila myšlenka scénáře, bylo jasné, co dělat na přední straně, co by měl návrhář nakreslit a jaké metody byly potřebné na zadní straně, bylo možné rozdělit úkoly. Odpovědnosti v týmu byly rozděleny následovně: dva lidé řešili ML s daty získanými od technických expertů, jeden člověk napsal backend v Pythonu, já jsem napsal frontend v React a Antd, designér nakreslil rozhraní. Dokonce jsme si sedli, aby se nám při řešení problémů lépe komunikovalo.

První den proletěl téměř bez povšimnutí. Při komunikaci s technickými experty se ukázalo, že oni (Gazprom Neft) už tento problém řešili, jen je zajímalo, zda by to nešlo vyřešit lépe. Neříkám, že to snížilo moji motivaci, ale zanechalo to zbytek. Překvapilo mě, že v noci moderátoři sekcí zaznamenávali pracovní týmy (jak říkali u statistik), to se na hackathonech běžně nepraktikuje. Ráno jsme měli prototyp přední části, nějaké základy zadní části a první ML řešení hotové. Obecně už bylo co ukázat odborníkům. V sobotu odpoledne návrhář evidentně nakreslil více rozhraní, než bych stihl nakódovat a přešel na tvorbu prezentace. Pro registraci rekordu byla vyhrazena sobota a ráno byli všichni pracující v hale vykázáni na chodbu, poté byl vstup a výstup z haly proveden pomocí odznaků a již bylo možné odejít. než hodinu denně. Neřeknu, že nám to způsobilo nějaké výrazné nepříjemnosti; většinu dne jsme stále seděli a pracovali. Jídlo bylo opravdu velmi skrovné, k obědu jsme dostali sklenici vývaru, koláč a jablko, ale to nás zase moc nerozrušilo, soustředili jsme se na něco jiného.

Pravidelně rozdávali redbull, dvě plechovky na ruku, což bylo velmi užitečné. Recept energy drink + káva, který byl dlouho testován na hackathonech, mi umožnil kódovat celou noc a další den a být veselý jako sklenice. Druhý den jsme v podstatě jen přidali nové funkce do aplikace, spočítali finanční ukazatele a začali zobrazovat grafy statistik závad na dálnicích. V našem tracku žádná kontrola kódu jako taková nebyla, experti posuzovali řešení problému ve stylu kaggle.com na základě přesnosti předpovědi a frontend byl posuzován vizuálně. Naše ML řešení se ukázalo jako nejpřesnější, možná právě to nám umožnilo stát se lídry. V noci ze soboty na neděli jsme pracovali do 2 hodin ráno a pak jsme šli spát do bytu, který jsme používali jako základnu. Spali jsme asi 5 hodin, v neděli v 9 hodin už jsme byli na Kazan Expo. Narychlo jsem si něco připravil, ale většinu času zabrala příprava na předobranu. Předobrany probíhaly ve 2 proudech, před dvěma týmy odborníků, byli jsme požádáni, abychom mluvili jako poslední, protože nás oba týmy odborníků chtěly poslouchat. Brali jsme to jako dobré znamení. Aplikace byla zobrazena z mého notebooku, ze spuštěného dev serveru, nestihli jsme aplikaci správně nasadit, ale všichni udělali totéž.

Obecně vše proběhlo v pořádku, byli jsme upozorněni na body, ve kterých bychom mohli naši aplikaci vylepšit a v době před obhajobou jsme se dokonce pokusili některé z těchto připomínek implementovat. Obrana také šla překvapivě hladce. Na základě výsledků předobrany jsme věděli, že jsme bodově napřed, vedli jsme v přesnosti řešení, měli jsme dobrý front-end, dobrý design a obecně jsme měli dobré pocity. Dalším příznivým znamením bylo, že si s námi dívčí moderátorka z naší sekce před vstupem do koncertního sálu udělala selfie a pak jsem tušil, že by mohla něco vědět))). Po obraně jsme ale neznali naše skóre, takže čas do ohlášení našeho týmu z jeviště uběhl trochu napjatě. Na pódiu předali karton s nápisem 500000 XNUMX rublů a každý dostal tašku s hrnkem a baterii do mobilu. Vítězství jsme si nestihli užít a pořádně oslavit, rychle jsme se navečeřeli a odjeli taxíkem na vlak.

Digitální průlom – jak se to stalo
Tým WAICO vyhrává finále

Po návratu do Moskvy s námi udělali rozhovor novináři z NTV. Natáčeli jsme celou hodinu ve druhém patře kavárny Kvartal 44 na Poljance, ale zprávy ukazovaly jen asi 10 sekund.Přece jen silný pokrok oproti regionální scéně.

Shrneme-li obecné dojmy z Digital Breakthrough, jsou následující. Na akci bylo vynaloženo hodně peněz, hackathony takového rozsahu jsem ještě neviděl. Nemohu ale říct, že je to oprávněné a že se to opravdu vyplatí. Značná část účastníků, kteří do Kazaně přijeli, byli prostě mejdany, kteří neuměli nic dělat vlastníma rukama a kteří byli nuceni vytvořit rekord. Nemohu říci, že by konkurence ve finále byla vyšší než na krajské scéně. Také hodnota a užitečnost úkolů některých tratí je sporná. Některé problémy jsou již dávno vyřešeny na průmyslové úrovni. Jak se později ukázalo, některé organizace, které tratě prováděly, neměly zájem je řešit. A tento příběh ještě není u konce, do předakcelerátoru byly vybrány přední týmy z každé tratě a předpokládá se, že z nich budou PŘELOMOVÉ startupy. Ale o tom ještě nejsem připravený psát, uvidíme, co z toho bude.

Zdroj: www.habr.com

Přidat komentář