Digitálny prelom – ako sa to stalo

Toto nie je prvý hackathon, ktorý som vyhral, ​​ani prvý písanie, a toto nie je prvý príspevok na Habrého venovaný „Digitálnemu prelomu“. Ale nedalo mi nenapísať. Svoje skúsenosti považujem za dostatočne jedinečné na to, aby som sa s nimi podelil. Som asi jediný človek na tomto hackathone, ktorý vyhral regionálnu etapu a finále ako súčasť rôznych tímov. Chcete vedieť, ako sa to stalo? Vitajte v mačke.

Regionálna etapa (Moskva, 27. - 28. júla 2019).

Prvýkrát som videl reklamu na “Digital Breakthrough” niekde v marci až apríli tohto roku. Prirodzene, nemohol som nechať ujsť taký veľký hackathon a zaregistrovať sa na stránke. Tam som sa oboznámil s podmienkami a programom súťaže. Ukázalo sa, že aby ste sa dostali na hackathon, museli ste prejsť online testom, ktorý sa začal 16. mája. A možno by som na to pohodlne zabudol, keďže som nedostal list, ktorý by mi pripomenul začiatok testovania. A musím povedať, že v budúcnosti VŠETKY LISTY, ktoré mi prišli z CPU, dôsledne skončili v priečinku spam. Aj keď som zakaždým klikol na tlačidlo „nevhodné“. Neviem, ako sa im podarilo dosiahnuť takýto výsledok, s mailingom na MailGun mi to nevyšlo. A zdá sa, že chlapci vôbec nevedia o existencii služieb ako isnotspam.com. Ale to sme odbočili.

Na jednom zo stretnutí som bol upozornený na začiatok testovania startupový klub, tam sme diskutovali aj o zostavovaní mužstva. Po otvorení zoznamu testov som si najskôr sadol k testu Javascript. Vo všeobecnosti boli úlohy viac-menej primerané (napríklad aký by bol výsledok, keby ste v konzole pridali 1 + '1'). Ale z mojej skúsenosti by som takéto testy použil pri nábore na prácu alebo do tímu s veľmi veľkými výhradami. Faktom je, že v reálnej práci sa programátor s takýmito vecami málokedy stretne, pri jeho schopnosti rýchlo odladiť kód - tieto znalosti spolu nijako nekorelujú a na pohovory sa dá natrénovať celkom jednoducho (viem sám od seba). Vo všeobecnosti som sa cez test preklikal pomerne rýchlo, v niektorých prípadoch som sa skontroloval v konzole. V python teste boli úlohy približne rovnakého typu, testoval som sa aj v konzole a bol som prekvapený, že som získal viac bodov ako v JS, hoci som v Pythone nikdy profesionálne neprogramoval. Neskôr som v rozhovoroch s účastníkmi počul príbehy o tom, ako silní programátori dosahovali nízke skóre v testoch, ako niektorí ľudia dostávali listy, že neprešli výberovým konaním na CPU a potom ich aj tak pozvali. Je jasné, že tvorcovia týchto testov s najväčšou pravdepodobnosťou o ničom nepočuli teória testov, ani o ich spoľahlivosti a validite, ani o tom, ako ich testovať a nápad s testami by bol od začiatku krachom, aj keby sme nebrali do úvahy hlavný cieľ hackathonu. A hlavným cieľom hacku, ako som sa neskôr dozvedel, bolo vytvorenie Guinessovho rekordu a testy tomu odporovali.

V určitom okamihu po absolvovaní testov mi zavolali, opýtali sa, či by som sa zúčastnil, ujasnili podrobnosti a povedali mi, ako sa dostať do chatu na výber tímu. Čoskoro som vstúpil do chatu a napísal som stručne o sebe. V chate sa diali úplné odpadky, zdalo sa, že organizátori robili reklamu mnohým náhodným ľuďom, ktorí s IT nemali nič spoločné. Mnoho produktových manažérov „na úrovni Steva Jobsa“ (skutočná fráza z príspevku jedného účastníka) uverejňovalo príbehy o sebe a normálnych vývojárov nebolo ani vidno. Mal som ale šťastie a čoskoro som sa pridal k trom skúseným JS programátorom. Spoznali sme sa už na hackathone a potom sme do tímu pridali dievča na inšpiráciu a riešenie organizačných záležitostí. Nepamätám si prečo, ale zobrali sme tému „Tréning kybernetickej bezpečnosti“ a zaradili sme ju do skladby „Veda a vzdelávanie 2“. Prvýkrát som sa ocitol v tíme 4 silných programátorov a prvýkrát som cítil, aké ľahké je vyhrať v takomto zložení. Prišli sme nepripravení a do obeda sme sa hádali a nevedeli sme sa rozhodnúť, čo budeme robiť: mobilnú aplikáciu alebo webovú. V akejkoľvek inej situácii by som si myslel, že to bolo zlyhanie. Najdôležitejšie pre nás bolo pochopiť, v čom budeme lepší ako naši konkurenti, pretože okolo bolo veľa tímov, ktoré strihali testy, hry s kybernetickou bezpečnosťou a podobne. Po tom, čo sme si to prezreli a vygooglili sme si školiace programy a aplikácie, rozhodli sme sa, že naším hlavným rozdielom budú požiarne cvičenia. Vybrali sme množstvo funkcií, ktoré sme považovali za zaujímavé na implementáciu (registrácia s overením e-mailu a hesla proti hackerským databázam, odosielanie phishingových e-mailov (vo forme listov od známych bánk), školenia sociálneho inžinierstva v chate). Keď sme sa rozhodli, čo robíme, a pochopili sme, ako môžeme vyniknúť, rýchlo sme napísali plnohodnotnú webovú aplikáciu a ja som hral nezvyčajnú úlohu backendového vývojára. Našu trať sme tak suverénne vyhrali a ako súčasť ďalších troch tímov sa kvalifikovali do finále v Kazani. Neskôr som sa v Kazani dozvedel, že výber do finále bol fikcia, stretol som tam veľa známych tvárí z tímov, ktoré výberom neprešli. Dokonca s nami robili rozhovory aj novinári z Channel 1. V reportáži z nej sa však naša aplikácia zobrazila len na 1 sekundu.

Digitálny prelom – ako sa to stalo
Snowed team, kde som vyhral krajskú etapu

Finále (Kazaň, 27. – 29. september 2019)

Potom však začali zlyhania. Všetci programátori z tímu Snowed asi do mesiaca jeden po druhom hlásili, že nebudú môcť ísť na finále do Kazane. A premýšľal som o nájdení nového tímu. Najprv som zavolal do všeobecného chatu ruského Hack Teamu a aj keď som tam dostal pomerne veľa odpovedí a pozvánok do tímov, žiadna z nich ma nezaujala. Boli tam nevyrovnané tímy, ako produkt, mobilný vývojár, front-end, pripomínajúci labuť, raky a šťuky z bájky. Boli tam aj tímy, ktoré mi nevyhovovali technologicky (napríklad s vývojom mobilnej aplikácie vo Flutteri). Nakoniec v chate, ktorý som považoval za odpad (rovnaký VKontakte, kde prebiehal výber tímov pre regionálnu úroveň), bol uverejnený inzerát o hľadaní frontendera pre tím a napísal som čisto náhodne. Chlapci sa ukázali ako postgraduálni študenti na Skoltech a okamžite ponúkli stretnutie a zoznámenie. Páčilo sa mi to, tímy, ktoré sa radšej spoznajú hneď na hackathone, ma zvyčajne znepokojujú nedostatkom motivácie. Stretli sme sa v „Rake“ na Pyatnitskaya. Chalani sa mi zdali šikovní, motivovaní, sebavedomí v seba a vo víťazstvo a ja som sa rozhodol práve tam. Ešte sme nevedeli, aké stopy a úlohy budú vo finále, ale predpokladali sme, že si vyberieme niečo, čo súvisí so strojovým učením. A mojou úlohou bude napísať k tejto veci admina, takže som si na to vopred pripravil šablónu založenú na antd-admin.
Do Kazane som išiel zadarmo, na náklady organizátorov. Musím povedať, že ohľadom nákupu lístkov a celkovo organizácie finále sa už na chatoch a blogoch prejavilo veľa nespokojnosti, nebudem to všetko prepisovať.

Po príchode na Kazan Expo, registrácii (mal som trochu problém získať odznak) a raňajkách sme si išli vybrať trať. Na slávnostné otvorenie, kde hovorili funkcionári, sme išli asi len 10 minút.V podstate sme už mali svoje preferované trate, ale zaujímali nás detaily. V skladbe č.18 (Rostelecom) sa napríklad ukázalo, že je potrebné vyvinúť mobilnú aplikáciu, hoci to v stručnom popise nebolo. Hlavný výber sme urobili medzi skladbou č. 8 Defektoskopia potrubí, Gazprom Neft PJSC a skladbou č. 13 Perinatálne centrá, Účtovná komora Ruskej federácie. V oboch prípadoch bola potrebná Data Science a v oboch prípadoch mohol byť pridaný web. V stope č.13 nás zarazilo, že tam bola úloha Data Science dosť slabá, bolo potrebné parsovať Rosstat a nebolo jasné, či je potrebný admin panel. A samotná hodnota úlohy bola pochybná. Nakoniec sme sa rozhodli, že ako tím nám viac vyhovuje trať 8, najmä preto, že chalani už mali skúsenosti s riešením podobných problémov. Začali sme tým, že sme si premysleli scenár, v ktorom bude naša aplikácia použitá koncovým používateľom. Ukázalo sa, že budeme mať dva typy používateľov: technikov, ktorí sa zaujímajú o technické informácie, a manažérov, ktorí potrebujú finančné ukazovatele. Keď sa objavila myšlienka scenára, bolo jasné, čo robiť na prednej strane, čo by mal dizajnér nakresliť a aké metódy boli potrebné na zadnej strane, bolo možné rozdeliť úlohy. Zodpovednosti v tíme boli rozdelené nasledovne: dvaja ľudia riešili ML s údajmi získanými od technických expertov, jeden človek napísal backend v Pythone, ja som napísal frontend v React a Antd, dizajnér nakreslil rozhrania. Dokonca sme si sadli, aby sa nám pri riešení problémov pohodlnejšie komunikovalo.

Prvý deň preletel takmer bez povšimnutia. Pri komunikácii s technickými expertmi sa ukázalo, že oni (Gazprom Neft) už tento problém riešili, len ich zaujímalo, či by sa to nedalo vyriešiť lepšie. Nehovorím, že to znížilo moju motiváciu, ale zanechalo to zvyšok. Prekvapilo ma, že v noci si moderátori sekcií všímali pracovné tímy (ako povedali pre štatistiku), to sa na hackathonoch bežne nepraktizuje. Ráno sme mali hotový prototyp prednej časti, nejaké základy zadnej časti a prvé riešenie ML. Vo všeobecnosti už bolo čo ukázať odborníkom. V sobotu poobede dizajnér evidentne nakreslil viac rozhraní, ako by som stihol nakódovať a prešiel na tvorbu prezentácie. Na registráciu rekordu bola vyhradená sobota a ráno boli všetci pracujúci v hale vykázaní na chodbu, potom sa vstup a výstup z haly vykonal pomocou odznakov a už sa dalo odísť. ako hodinu denne. Nepoviem, že nám to spôsobilo nejaké výrazné nepríjemnosti; väčšinu dňa sme stále sedeli a pracovali. Jedlo bolo naozaj veľmi chudobné, na obed sme dostali pohár vývaru, koláč a jablko, ale ani to nás veľmi nerozrušilo, sústredili sme sa na niečo iné.

Pravidelne rozdávali redbull, dve plechovky na ruku, čo bolo veľmi užitočné. Recept na energetický nápoj + káva, ktorý bol dlho testovaný na hackathonoch, mi umožnil kódovať celú noc a ďalší deň, pričom som bol veselý ako pohár. Na druhý deň sme v podstate jednoducho pridali do aplikácie nové funkcie, vypočítali finančné ukazovatele a začali zobrazovať grafy štatistiky závad na diaľniciach. V našom tracku nebola žiadna kontrola kódu ako taká, experti hodnotili riešenie problému v štýle kaggle.com na základe presnosti predpovede a frontend sa posudzoval vizuálne. Naše riešenie ML sa ukázalo ako najpresnejšie, možno práve to nám umožnilo stať sa lídrami. V noci zo soboty na nedeľu sme pracovali do 2:5 a potom sme išli spať do bytu, ktorý sme používali ako základňu. Spali sme asi 9 hodín, v nedeľu o deviatej ráno sme už boli na Kazan Expo. Narýchlo som si niečo pripravil, no väčšinu času zaberala príprava na predobranu. Predobrany prebiehali v 2 prúdoch, pred dvoma tímami odborníkov, my sme boli požiadaní, aby sme hovorili ako poslední, keďže nás chceli počúvať oba tímy odborníkov. Brali sme to ako dobré znamenie. Aplikácia bola zobrazená z môjho notebooku, zo spusteného dev servera, nestihli sme aplikáciu správne nasadiť, no všetci urobili to isté.

Vo všeobecnosti všetko prebehlo v poriadku, boli sme upozornení na body, v ktorých by sme mohli našu aplikáciu vylepšiť a v čase pred obhajobou sme sa dokonca pokúsili niektoré z týchto pripomienok implementovať. Obrana išla prekvapivo hladko. Na základe výsledkov predobrany sme vedeli, že sme bodovo vpredu, boli sme na čele v presnosti riešenia, mali sme dobrý front-end, dobrý dizajn a celkovo sme mali dobrý pocity. Ďalším priaznivým znakom bolo, že dievčenská moderátorka z našej sekcie si s nami urobila selfie pred vstupom do koncertnej sály a vtedy som tušil, že by mohla niečo vedieť))). Po obrane sme však nevedeli naše skóre, takže čas, kým bol náš tím ohlásený z javiska, ubehol trochu napäto. Na pódiu odovzdali kartón s nápisom 500000 XNUMX rubľov a každý dostal tašku s hrnčekom a batériou do mobilu. Víťazstvo sme si nestihli užiť a poriadne ho osláviť, rýchlo sme sa navečerali a taxíkom odviezli na vlak.

Digitálny prelom – ako sa to stalo
Tím WAICO vyhráva finále

Po návrate do Moskvy s nami urobili rozhovor novinári z NTV. Celú hodinu sme nakrúcali na druhom poschodí kaviarne Kvartal 44 na Polyanke, no správy ukazovali len asi 10 sekúnd Predsa len silný progres oproti regionálnej scéne.

Ak zhrnieme všeobecné dojmy z Digital Breakthrough, sú nasledovné. Na akciu sa minulo veľa peňazí, hackathony takého rozsahu som ešte nevidel. Nemôžem však povedať, že je to opodstatnené a že sa to naozaj oplatí. Značná časť účastníkov, ktorí prišli do Kazane, boli jednoducho párty, ktorí nevedeli nič robiť vlastnými rukami a ktorí boli nútení vytvoriť rekord. Nemôžem povedať, že by bola konkurencia vo finále vyššia ako na krajskej scéne. Taktiež hodnota a užitočnosť úloh niektorých tratí je otázna. Niektoré problémy sa už dávno riešia na priemyselnej úrovni. Ako sa neskôr ukázalo, niektoré organizácie, ktoré trate viedli, nemali záujem ich riešiť. A tento príbeh ešte neskončil, do predakcelerátora boli vybrané popredné tímy z každej trate a je predpoklad, že z nich vypadnú PRElomové startupy. Ale ešte nie som pripravený o tom písať, uvidíme, čo z toho bude.

Zdroj: hab.com

Pridať komentár