Digitalni preboj – kako se je zgodil

To ni prvi hackathon, na katerem sem zmagal, niti ne prvi Pišem, in to ni prva objava na Habréju, posvečena »Digitalnemu preboju«. Ampak nisem si mogel kaj, da ne bi pisal. Menim, da je moja izkušnja dovolj edinstvena, da jo delim. Verjetno sem edina oseba na tem hackathonu, ki je zmagala na regionalni stopnji in v finalu kot del različnih ekip. Želite vedeti, kako se je to zgodilo? Dobrodošli pri mački.

Regionalna etapa (Moskva, 27. - 28. julij 2019).

Prvič sem videl oglas za "Digitalni preboj" nekje marca-aprila letos. Seveda nisem mogel mimo tako velikega hackathona in sem se registriral na spletni strani. Tam sem se seznanil s pogoji in programom tekmovanja. Izkazalo se je, da si moral za vstop na hackathon opraviti spletni test, ki se je začel 16. maja. In morda bi prikladno pozabil na to, saj nisem prejel pisma z opominom na začetek testiranja. In moram reči, da so v prihodnje VSA PISMA, ki so mi prispela iz procesorja, dosledno končala v mapi z vsiljeno pošto. Čeprav sem vsakič kliknil gumb "ni sporen". Ne vem, kako jim je uspelo doseči tak rezultat, pri pošiljanju pošte na MailGunu mi ni šlo. In zdi se, da fantje sploh ne vedo za obstoj storitev, kot je isnotspam.com. Ampak smo se oddaljili.

Na začetek testiranja sem bil opozorjen na enem od sestankov startup klub, tam smo se pogovarjali tudi o oblikovanju ekipe. Ko sem odprl seznam testov, sem najprej sedel k Javascript testu. Na splošno so bile naloge bolj ali manj primerne (npr. kakšen bo rezultat, če v konzoli seštejete 1 + '1'). Toda iz mojih izkušenj bi takšne teste uporabil pri zaposlovanju za delovno mesto ali ekipo z zelo velikimi zadržki. Dejstvo je, da se programer v resničnem delu redko sreča s takšnimi stvarmi, s svojo sposobnostjo hitrega odpravljanja napak v kodi - to znanje nikakor ni v korelaciji in se za takšne stvari lahko precej enostavno izučite za intervjuje (vem iz sebe). Na splošno sem test prešljkal kar hitro, v nekaterih primerih sem preveril sam v konzoli. Pri python testu so bile naloge približno istega tipa, preizkusil sem se tudi v konzoli in bil presenečen nad več točkami kot pri JS, čeprav v Pythonu nisem nikoli profesionalno programiral. Kasneje sem v pogovorih z udeleženci slišal zgodbe o tem, kako močni programerji so imeli nizke ocene na testih, kako so nekateri ljudje prejeli pisma, da niso prestali izbirnega postopka za CPE, potem pa so bili vanj vseeno povabljeni. Jasno je, da ustvarjalci teh testov najverjetneje niso slišali ničesar testna teorija, niti o njihovi zanesljivosti in veljavnosti, niti o tem, kako jih testirati, ideja s testi pa bi bila že v samem začetku polom, tudi če ne bi upoštevali glavnega cilja hackathona. In glavni cilj vdora, kot sem izvedel kasneje, je bil postaviti Guinnessov rekord, testi pa so bili v nasprotju s tem.

V nekem trenutku po opravljenih testih so me poklicali, vprašali, ali bi sodeloval, razjasnili podrobnosti in mi povedali, kako vstopiti v klepet za izbiro ekipe. Kmalu sem vstopila v klepet in na kratko napisala o sebi. V klepetu se je dogajal popoln trash, zdelo se je, da se organizatorji oglašajo množici naključnih ljudi, ki nimajo nič z IT. Številni produktni menedžerji "na ravni Steva Jobsa" (resnična fraza iz predložitve enega udeleženca) so objavljali zgodbe o sebi, običajni razvijalci pa sploh niso bili vidni. Vendar sem imel srečo in sem se kmalu pridružil trem izkušenim programerjem JS. Spoznala sva se že na hackathonu, nato pa sva v ekipo dodala dekle za navdih in reševanje organizacijskih zadev. Ne spomnim se, zakaj, vendar smo vzeli temo »Usposabljanje o kibernetski varnosti« in jo vključili v smer »Znanost in izobraževanje 2«. Prvič sem se znašel v ekipi 4 močnih programerjev in prvič sem občutil, kako enostavno je zmagati v taki sestavi. Prišli smo nepripravljeni in se prepirali do kosila in se nismo mogli odločiti, kaj bi naredili: mobilno aplikacijo ali spletno. V kateri koli drugi situaciji bi mislil, da je bil neuspeh. Najpomembneje za nas je bilo razumeti, kako bomo boljši od tekmecev, saj je bilo okoli veliko ekip, ki so rezale teste, igre kibernetske varnosti in podobno. Po ogledu tega in googlanju programov in aplikacij za usposabljanje smo se odločili, da bodo naše glavne razlike vaje požarnih vaj. Izbrali smo številne funkcije, ki so se nam zdele zanimive za implementacijo (registracija z e-pošto in preverjanje gesla v zbirkah podatkov hekerjev, pošiljanje lažnih e-poštnih sporočil (v obliki pisem znanih bank), usposabljanje socialnega inženiringa v klepetu). Ko smo se odločili, kaj počnemo, in razumeli, kako lahko izstopamo, smo hitro napisali popolno spletno aplikacijo, jaz pa sem igral nenavadno vlogo backend razvijalca. Tako smo zanesljivo osvojili našo progo in se kot še tri ekipe uvrstili v finale v Kazanu. Kasneje v Kazanu sem izvedel, da je bil izbor v finale fikcija, tam sem srečal veliko znanih obrazov iz ekip, ki niso prestale izbora. Z nami so celo intervjuvali novinarji Kanala 1. Vendar je bila v poročilu z njega naša aplikacija prikazana le za 1 sekundo.

Digitalni preboj – kako se je zgodil
Zasnežena ekipa, kjer sem zmagal na regijski stopnji

Finale (Kazan, 27. – 29. september 2019)

Potem pa so se začeli neuspehi. Vsi programerji iz ekipe Snowed so v približno enem mesecu drug za drugim poročali, da ne bodo mogli iti v Kazan na finale. In razmišljal sem o iskanju nove ekipe. Najprej sem opravil klic v splošnem klepetu Russian Hack Teama in čeprav sem tam prejel kar veliko odgovorov in povabil k pridružitvi ekipam, nobeden ni pritegnil moje pozornosti. Bile so neuravnotežene ekipe, kot so produkt, mobilni razvijalec, frontend, ki so spominjale na laboda, raka in ščuko iz pravljice. Bile so tudi ekipe, ki mi tehnološko niso ustrezale (npr. z razvojem mobilne aplikacije v Flutterju). Nazadnje je bil v klepetu, ki se mi je zdel sram (isti VKontakte, kjer je potekal izbor ekip za regionalno stopnjo), objavljen oglas o iskanju spremljevalca za ekipo in napisal sem čisto naključno. Izkazalo se je, da so fantje podiplomski študenti Skoltecha in so takoj ponudili srečanje in seznanitev. Všeč mi je bilo, ekipe, ki se raje spoznajo takoj na hackathonu, me ponavadi vznemirijo s pomanjkanjem motivacije. Srečala sva se v "Rake" na Pyatnitskaya. Fantje so se mi zdeli pametni, motivirani, prepričani vase in v zmago in tam sem se odločil. Nismo še vedeli, katere skladbe in naloge bodo v finalu, vendar smo predvidevali, da bomo izbrali nekaj, kar je povezano s strojnim učenjem. In moja naloga bo napisati skrbnika za to zadevo, zato sem vnaprej pripravil predlogo za to na podlagi antd-admin.
V Kazan sem šel brezplačno, na stroške organizatorjev. Moram reči, da je bilo v klepetih in blogih izraženih že veliko nezadovoljstva glede nakupa vstopnic in nasploh organizacije finala, ne bom vsega ponavljal.

Ko smo prispeli na Kazan Expo, se prijavili (malo težav sem dobil značko) in zajtrkovali, smo šli izbirat progo. Na slavnostno otvoritev, kjer so govorili uradniki, smo šli le za kakšnih 10 minut, pravzaprav smo imeli že izbrane skladbe, zanimale pa so nas podrobnosti. V smeri št. 18 (Rostelecom) se je na primer izkazalo, da je treba razviti mobilno aplikacijo, čeprav tega ni bilo v kratkem opisu. Glavno izbiro smo naredili med tirom št. 8 Defektoskopija cevovodov, Gazprom Neft PJSC in tirom št. 13 Perinatalni centri, Računska zbornica Ruske federacije. V obeh primerih je bila potrebna podatkovna znanost in v obeh primerih bi lahko dodali splet. V skladbi št. 13 nas je ustavilo dejstvo, da je bila naloga Data Science precej šibka, bilo je treba razčleniti Rosstat in ni bilo jasno, ali je potrebna skrbniška plošča. In sama vrednost naloge je bila pod vprašajem. Na koncu smo se odločili, da smo kot ekipa bolj primerni za progo 8, sploh ker so fantje že imeli izkušnje z reševanjem podobnih problemov. Začeli smo z razmišljanjem o scenariju, po katerem bi našo aplikacijo uporabljal končni uporabnik. Izkazalo se je, da bomo imeli dve vrsti uporabnikov: tehničarje, ki so jih zanimale tehnične informacije, in menedžerje, ki so potrebovali finančne kazalnike. Ko se je pojavila zamisel o scenariju, je postalo jasno, kaj storiti na sprednji strani, kaj mora oblikovalec narisati in katere metode so potrebne na zadnji strani, postalo je mogoče porazdeliti naloge. Odgovornosti v ekipi so bile razdeljene takole: dve osebi sta reševali ML s podatki, prejetimi od tehničnih strokovnjakov, ena oseba je napisala backend v Pythonu, jaz sem napisal front end v React in Antd, oblikovalec je narisal vmesnike. Celo usedli smo se, da bi nam bilo bolj priročno komunicirati med reševanjem težav.

Prvi dan je minil skoraj neopazno. V komunikaciji s tehničnimi strokovnjaki se je izkazalo, da so (Gazprom Neft) ta problem že rešili, spraševali so se le, ali bi ga bilo mogoče rešiti bolje. Ne bom rekel, da je to zmanjšalo mojo motivacijo, vendar je pustilo sledi. Presenečen sem bil, da so ponoči moderatorji razdelkov opazili delovne ekipe (kot so rekli za statistiko); to se običajno ne izvaja na hackathonih. Do jutra smo imeli pripravljen prototip sprednjega dela, nekaj zametkov zadnjega dela in prvo rešitev ML. Na splošno je že bilo nekaj za pokazati strokovnjakom. V soboto popoldan je oblikovalec očitno narisal več vmesnikov, kot bi jih jaz imel časa kodirati in prešel na ustvarjanje predstavitve. Sobota je bila namenjena registraciji rekorda, zjutraj pa so vse, ki so delali v dvorani, izgnali na hodnik, nato pa je bil vstop in izstop iz dvorane izveden z značkami, odhod pa ni bil mogoč več kot uro na dan. Ne bom rekel, da nam je to povzročilo kakšne večje nevšečnosti; večino dneva smo še vedno sedeli in delali. Hrana je bila resda zelo skromna, za kosilo smo dobili kozarec juhe, pito in jabolko, vendar nas to spet ni preveč vznemirilo, osredotočeni smo bili na nekaj drugega.

Občasno so dali red bull, dve pločevinki na roko, kar je bilo zelo koristno. Recept za energijsko pijačo + kavo, ki je bil dolgo preizkušen na hackathonih, mi je omogočil, da sem vso noč in naslednji dan kodiral, vesel kot kozarec. Drugi dan smo aplikaciji pravzaprav zgolj dodali novosti, izračunali finančne kazalce in začeli prikazovati grafe na podlagi statistike okvar na avtocestah. V naši skladbi ni bilo pregleda kode kot takega, strokovnjaki so ocenili rešitev problema v slogu kaggle.com, na podlagi točnosti napovedi, sprednji del pa so ocenili vizualno. Naša rešitev ML se je izkazala za najbolj natančno, morda nam je to omogočilo, da smo postali vodilni. V noči s sobote na nedeljo smo delali do 2. ure zjutraj, nato pa odšli spat v stanovanje, ki smo ga uporabljali kot bazo. Spali smo kakšnih 5 ur, v nedeljo ob 9h smo bili že na Kazan Expo. Nekaj ​​sem na hitro pripravljal, največ časa pa so bile priprave na predzagovor. Predzagovori so potekali v 2 tokih, pred dvema ekipama strokovnjakov, za besedo smo bili povabljeni zadnji, saj sta nas želeli poslušati obe ekipi strokovnjakov. To smo vzeli kot dober znak. Aplikacija je bila prikazana iz mojega prenosnika, iz delujočega razvijalskega strežnika; nismo imeli časa, da bi aplikacijo pravilno uvedli, vendar so vsi storili enako.

Na splošno je šlo vse dobro, izpostavljene so bile točke, v katerih bi lahko izboljšali našo aplikacijo, v času pred zagovorom pa smo nekatere od teh pripomb celo poskušali uresničiti. Tudi obramba je potekala presenetljivo gladko. Glede na rezultate predobrambe smo vedeli, da smo v prednosti po točkah, smo v prednosti po natančnosti rešitve, imamo dober front-end, dobro zasnovo in nasploh dobro čustva. Še en ugoden znak je bil, da je moderatorka iz naše rubrike pred vstopom v koncertno dvorano z nami naredila selfie in takrat sem posumil, da bi lahko kaj vedela))). Toda po zagovorih nismo poznali rezultatov, tako da je čas do razglasitve naše ekipe z odra minil nekoliko napeto. Na odru so izročili karton z napisom 500000 rubljev, vsak pa je dobil vrečko s skodelico in baterijo za mobilni telefon. Nismo uspeli uživati ​​v zmagi in je prav proslaviti, na hitro smo povečerjali in se s taksijem odpeljali na vlak.

Digitalni preboj – kako se je zgodil
V finalu zmaga ekipa WAICO

Po vrnitvi v Moskvo so nas intervjuvali novinarji NTV. Celo uro smo snemali v drugem nadstropju kavarne Kvartal 44 na Polyanki, vendar so bile novice prikazane le približno 10 sekund, navsezadnje močan napredek v primerjavi z regionalnim odrom.

Če povzamemo splošne vtise Digitalnega preboja, so ti naslednji. Za dogodek je bilo porabljenega veliko denarja, hackathona takšnega obsega še nisem videl. Ne morem pa reči, da je to upravičeno in da se bo res splačalo. Pomemben del udeležencev, ki so prišli v Kazan, so bili preprosto žurerji, ki niso vedeli, kako narediti ničesar z lastnimi rokami, in ki so bili prisiljeni postaviti rekord. Ne morem reči, da je bila konkurenca v finalu večja kot na regijskem. Prav tako je vprašljiva vrednost in uporabnost nalog nekaterih skladb. Nekatere težave so že dolgo rešene na industrijski ravni. Kot se je kasneje izkazalo, nekatere organizacije, ki so vodile tire, niso bile zainteresirane za njihovo rešitev. In ta zgodba še ni končana, za predpospeševalnik so bile izbrane vodilne ekipe iz vsake proge, za katere se predvideva, da se bodo izkazale za PRELOMNE startupe. Nisem pa še pripravljena pisati o tem, bomo videli, kaj bo iz tega.

Vir: www.habr.com

Dodaj komentar