Digitaalne läbimurre – kuidas see juhtus

See ei ole esimene häkaton, mille võidan, ega esimene kirjutamine, ja see pole esimene Habré postitus, mis on pühendatud “Digitaalsele läbimurdele”. Aga ma ei saanud jätta kirjutamata. Pean oma kogemust piisavalt ainulaadseks, et jagada. Olen ilmselt ainus inimene sellel häkatonil, kes võitis erinevate meeskondade koosseisus piirkondliku etapi ja finaali. Kas soovite teada, kuidas see juhtus? Tere tulemast kassi.

Piirkondlik etapp (Moskva, 27. - 28. juuli 2019).

“Digitaalse läbimurde” kuulutust nägin esimest korda kuskil selle aasta märtsis-aprillis. Loomulikult ei saanud ma nii suurest häkatonist mööda minna ja registreerusin veebisaidil. Seal tutvusin konkursi tingimuste ja programmiga. Selgus, et häkatonile pääsemiseks tuli sooritada online test, mis algas 16. mail. Ja võib-olla oleksin selle mugavalt unustanud, kuna ma ei saanud kirja, mis meenutaks mulle testimise algust. Ja pean ütlema, et edaspidi sattusid KÕIK KIRJAD, mis mulle CPU-st jõudsid, järjekindlalt rämpsposti kausta. Isegi kui ma klõpsasin iga kord nuppu "ei ole taunitav". Ma ei tea, kuidas neil selline tulemus õnnestus; MailGunis postiga see minu jaoks ei õnnestunud. Ja näib, et poisid ei tea üldse selliste teenuste olemasolust nagu isnotspam.com. Kuid me kaldume kõrvale.

Ühel koosolekul tuletati mulle meelde testimise algust startup klubi, seal arutasime ka meeskonna moodustamist. Pärast testide loendi avamist istusin kõigepealt Javascripti testi juurde. Üldiselt olid ülesanded enam-vähem adekvaatsed (näiteks milline on tulemus, kui lisada konsoolis 1 + '1'). Aga oma kogemuse põhjal kasutaksin selliseid teste väga suurte reservatsioonidega tööle või meeskonda värbamisel. Fakt on see, et reaalses töös puutub programmeerija selliste asjadega harva kokku, oma võimega kiiresti koodi siluda - need teadmised ei korreleeru kuidagi ja saate selliste asjade jaoks intervjuude jaoks üsna lihtsalt treenida (tean omalt poolt). Üldiselt klõpsasin testi üsna kiiresti läbi, mõnel juhul kontrollisin ennast konsoolis. Pythoni testis olid ülesanded ligikaudu sama tüüpi, proovisin ennast ka konsoolis ja sain üllatusena rohkem punkte kui JS-is, kuigi ma pole kunagi Pythonis professionaalselt programmeerinud. Hiljem osalejatega vesteldes kuulsin lugusid sellest, kuidas tugevad programmeerijad said testides madala tulemuse, kuidas mõned inimesed said kirju, et nad ei läbinud protsessori valikuprotsessi ja siis kutsuti nad ikkagi sinna. On selge, et nende testide loojad pole neist tõenäoliselt midagi kuulnud testi teooria, ei nende usaldusväärsuse ja paikapidavuse ega ka selle kohta, kuidas neid testida, ja idee testidega oleks juba algusest peale läbi kukkunud, isegi kui me poleks võtnud arvesse häkatoni peamist eesmärki. Ja nagu hiljem teada sain, oli häkkimise peamine eesmärk Guinnessi rekordi püstitamine ja testid läksid sellele vastu.

Mingil hetkel pärast testide läbimist helistati mulle, küsiti, kas ma osalen, täpsustati üksikasju ja räägiti, kuidas meeskonna valimise vestlusse pääseda. Peagi sisenesin vestlusesse ja kirjutasin endast lühidalt. Vestlusringis käis täielik jama, tundus, et korraldajad tegid reklaami paljudele suvalistele inimestele, kellel IT-ga midagi pistmist polnud. Paljud tootejuhid "Steve Jobsi tasemel" (tõeline fraas ühe osaleja esitisest) postitasid enda kohta lugusid ja tavalisi arendajaid polnud isegi näha. Kuid mul vedas ja liitusin peagi kolme kogenud JS-i programmeerijaga. Kohtusime omavahel juba häkatonil ning seejärel lisasime meeskonda inspiratsiooniks ja korralduslike küsimuste lahendamiseks tüdruku. Ma ei mäleta, miks, aga võtsime teemaks "Küberturvalisuse koolitus" ja lisasime selle "Teadus ja haridus 2" loosse. Esimest korda sattusin 4 tugevast programmeerijast koosnevasse meeskonda ja esimest korda tundsin, kui lihtne on sellises koosseisus võita. Tulime ette valmistamata ja vaidlesime lõunani ega suutnud otsustada, mida teeme: kas mobiilirakendust või veebi. Igas teises olukorras oleksin arvanud, et see oli ebaõnnestumine. Meie jaoks oli kõige olulisem mõista, kuidas me oma konkurentidest paremad oleme, sest ümberringi oli palju meeskondi, kes tegid lõiketeste, küberjulgeolekumänge jms. Pärast seda vaatamist ning koolitusprogrammide ja rakenduste guugeldamist otsustasime, et meie peamine erinevus on tuletõrjeharjutused. Valisime välja mitmed funktsioonid, mille juurutamine meie arvates oli huvitav (registreerumine e-posti ja parooliga kontrollimisega häkkerite andmebaaside vastu, andmepüügimeilide saatmine (tuntud pankade kirjadena), suhtlustehnoloogia koolitus vestluses). Olles otsustanud, mida teeme, ja mõistnud, kuidas võiksime silma paista, kirjutasime kiiresti täisväärtusliku veebirakenduse ja mina täitsin ebatavalise taustaarendaja rolli. Nii võitsime kindlalt oma raja ja pääsesime kolme teise meeskonnana Kaasanis toimuvale finaalile. Hiljem Kaasanis sain teada, et finaali valik oli väljamõeldis, seal kohtasin palju tuttavaid nägusid võistkondadest, kes valikust ei pääsenud. Meid intervjueerisid isegi Kanal 1 ajakirjanikud. Kuid selle aruandes näidati meie rakendust vaid 1 sekund.

Digitaalne läbimurre – kuidas see juhtus
Snowed team, kus võitsin piirkondliku etapi

Finaal (Kaasan, 27.–29. september 2019)

Kuid siis algasid ebaõnnestumised. Kõik Snowedi meeskonna programmeerijad teatasid umbes kuu aja jooksul üksteise järel, et nad ei saa Kaasanisse finaali sõita. Ja ma mõtlesin uue meeskonna leidmisele. Kõigepealt helistasin Russian Hack Teami üldchatis ja kuigi sealt sain päris palju vastuseid ja kutseid tiimidega liituda, ei köitnud ükski neist mu tähelepanu. Olid tasakaalustamata meeskonnad, nagu toode, mobiiliarendaja, esiots, mis meenutab luike, vähid ja haugid muinasjutust. Oli ka meeskondi, kes mulle tehnika poolest ei sobinud (näiteks mobiilirakenduse arendamisega Flutteris). Lõpuks postitati minu meelest rämpsuks peetud vestluses (sama VKontakte, kus toimus võistkondade valimine piirkondlikuks etapiks) kuulutus meeskonnale frontenderi otsimise kohta ja ma kirjutasin puhtjuhuslikult. Poisid osutusid Skoltechi magistrantideks ja pakkusid kohe võimalust kohtuda ja tutvuda. Mulle meeldis; meeskonnad, kes eelistavad häkatonil üksteist kohe tundma õppida, hoiavad mind tavaliselt motivatsioonipuudusega. Kohtusime Pjatnitskaja “Rake” juures. Poisid tundusid targad, motiveeritud, enese- ja võidukindlad ning ma tegin selle otsuse just seal. Me ei teadnud veel, millised rajad ja ülesanded finaalis on, kuid eeldasime, et valime midagi masinõppega seonduvat. Ja minu ülesandeks on kirjutada selle asja jaoks admin, nii et koostasin selle jaoks eelnevalt malli, mis põhineb antd-adminil.
Käisin Kaasanis tasuta, korraldajate kulul. Pean ütlema, et vestlustes ja blogides on juba palju rahulolematust piletiostu ja üldse finaali korralduse osas väljendatud, kõike ma ümber jutustama ei hakka.

Olles jõudnud Kazani Expole, registreerunud (märgi saamisega oli veidi hätta) ja hommikust söönud, läksime rada valima. Käisime ainult pidulikul avamisel, kus ametnikud rääkisid, umbes 10 minutit.Tegelikult olid meil juba oma eelistatud rajad olemas, kuid meid huvitasid detailid. Näiteks rajal nr 18 (Rostelecom) selgus, et on vaja arendada mobiilirakendust, kuigi seda lühikirjelduses ei olnud. Peamise valiku tegime raja nr 8 torujuhtmete defektoskoopia, Gazprom Neft PJSC ja raja nr 13 perinataalkeskuste, Vene Föderatsiooni arvekoja vahel. Mõlemal juhul oli vaja Data Science'i ja mõlemal juhul oleks võinud veebi lisada. Rajal nr 13 peatas meid asjaolu, et sealne Data Science’i ülesanne oli üsna nõrk, oli vaja Rosstat parseldada ja polnud selge, kas administraatori paneeli on vaja. Ja ülesande väärtus oli kaheldav. Lõpuks otsustasime, et võistkonnana sobime rohkem 8. rajale, seda enam, et meestel oli sarnaste probleemide lahendamise kogemus juba olemas. Alustuseks mõtlesime läbi stsenaariumi, mille puhul meie rakendust lõppkasutaja kasutab. Selgus, et meil on kahte tüüpi kasutajaid: tehnikainfost huvitatud tehnikud ja finantsnäitajaid vajavaid juhte. Kui stsenaariumi idee tekkis, sai selgeks, mida teha esiotsas, mida peaks disainer joonistama ja milliseid meetodeid tagaosas vaja on, sai võimalikuks ülesannete jaotamine. Meeskonnas jagunesid kohustused järgmiselt: kaks inimest lahendasid tehnilistelt ekspertidelt saadud andmetega ML-i, üks inimene kirjutas Pythonis taustaprogrammi, mina kirjutasin esiotsa Reactis ja Antdis, disainer joonistas liidesed. Istusime isegi maha, et meil oleks mugavam oma probleeme lahendades suhelda.

Esimene päev möödus peaaegu märkamatult. Tehniliste ekspertidega suheldes selgus, et nemad (Gazprom Neft) olid selle probleemi juba lahendanud, nad lihtsalt mõtlesid, kas seda saaks paremini lahendada. Ma ei ütle, et see mu motivatsiooni vähendas, kuid see jättis jälje. Mind üllatas, et öösiti märkisid sektsiooni moderaatorid töörühmad üles (nagu nad statistika jaoks ütlesid), häkatonidel seda tavaliselt ei harrastata. Hommikuks oli meil esiosa prototüüp, tagaosa alged ja esimene ML-lahendus valmis. Üldiselt oli juba, mida asjatundjatele näidata. Laupäeva pärastlõunal joonistas disainer ilmselgelt rohkem liideseid, kui mul oleks aega kodeerida, ja lülitus esitluse loomisele. Rekordi registreerimiseks oli ette nähtud laupäev ja hommikul visati kõik saalis töötavad jalaga koridori, seejärel toimus saali sisenemine ja väljumine rinnamärkide abil ning sealt ei saanud enam enam lahkuda. kui tund päevas. Ma ei ütle, et see meile olulisi ebamugavusi tekitas; suurema osa päevast me ikka istusime ja töötasime. Toit oli tõepoolest väga napp, lõunaks saime klaasi puljongit, pirukat ja õuna, aga see meid jällegi eriti ei morjendanud, keskendusime millelegi muule.

Nad andsid perioodiliselt välja red bulli, kaks purki käe kohta, mis oli väga kasulik. Pikalt häkatonidel katsetatud energiajook + kohv retsept võimaldas mul terve öö ja ülejärgmise päeva kodeerida, olles rõõmsameelne nagu klaas. Teisel päeval lisasime rakendusse lihtsalt uusi funktsioone, arvutasime finantsnäitajad ja hakkasime kuvama graafikuid maanteede defektide statistika kohta. Koodiülevaatust kui sellist meie rajal ei toimunud, eksperdid hindasid probleemi lahendust stiilis kaggle.com, lähtudes prognoosi täpsusest, esiotsa aga visuaalselt. Meie ML-lahendus osutus kõige täpsemaks, võib-olla just see võimaldas meil liidriks saada. Ööl laupäevast pühapäevani töötasime kella 2-ni öösel ja siis läksime magama korterisse, mida kasutasime baasina. Magasime umbes 5 tundi, pühapäeval kell 9 olime juba Kazani Expol. Valmistasin kiiruga midagi ette, aga suurem osa ajast kulus eelkaitseks valmistumisele. Eelkaitsmised toimusid kahes voos, kahe ekspertide meeskonna ees, viimasena paluti meil sõna võtta, kuna mõlemad ekspertide meeskonnad soovisid meid kuulata. Võtsime seda hea märgina. Rakendust näidati minu sülearvutist töötavast arendusserverist; meil ei olnud aega rakendust korralikult juurutada, kuid kõik tegid sama.

Üldiselt läks kõik hästi, meile toodi välja punktid, milles saaksime oma rakendust parandada ja kaitsmisele eelnenud ajal proovisime isegi mõnda neist kommentaaridest ellu viia. Ka kaitse läks üllatavalt ladusalt. Eelkaitsmise tulemuste põhjal teadsime, et oleme punktide poolest ees, lahendustäpsuse osas olime liidripositsioonil, meil oli hea esiots, hea disain ja üldiselt hea tundeid. Veel üks soodne märk oli see, et meie rubriigi neiu moderaator tegi enne kontserdisaali sisenemist meiega selfie ja siis kahtlustasin, et ta võib midagi teada))). Kuid pärast kaitsmist me oma skoori ei teadnud, nii et aeg, mil meie meeskond etapilt välja kuulutati, möödus veidi pingeliselt. Laval ulatati papp kirjaga 500000 XNUMX rubla ning igale inimesele anti kott kruusi ja mobiiltelefoni akuga. Meil ei õnnestunud võitu nautida ja seda korralikult tähistada, sõime kiiresti õhtust ja sõitsime taksoga rongile.

Digitaalne läbimurre – kuidas see juhtus
Võistkond WAICO võidab finaali

Moskvasse naastes intervjueerisid meid NTV ajakirjanikud. Filmisime terve tunni Polyankal Kvartali 44 kohvikus teisel korrusel, aga uudistes oli vaid umbes 10 sekundit.. Ju siis tugev edasiminek võrreldes piirkondliku etapiga.

Kui digitaalse läbimurde üldmuljed kokku võtta, on need järgmised. Ürituse peale kulus palju raha, sellise mastaabiga häkatone pole ma varem näinud. Kuid ma ei saa öelda, et see on õigustatud ja et see tõesti ära tasub. Märkimisväärne osa Kaasanisse tulnud osalejatest olid lihtsalt pidutsejad, kes ei osanud midagi oma kätega teha ja kes olid sunnitud rekordi püstitama. Ma ei saa öelda, et finaalis oli konkurents suurem kui piirkondlikul etapil. Samuti on mõne raja ülesannete väärtus ja kasulikkus küsitav. Mõned probleemid on tööstuslikul tasandil juba ammu lahendatud. Nagu hiljem selgus, ei olnud mõned jälge läbi viinud organisatsioonid nende lahendamisest huvitatud. Ja see lugu ei ole veel lõppenud, eelkiirendisse valiti iga raja juhttiimid ja eeldatakse, et need osutuvad LURDEKUJU startupideks. Aga ma pole veel valmis sellest kirjutama, vaatame, mis sellest välja tuleb.

Allikas: www.habr.com

Lisa kommentaar