Skaitmeninis proveržis – kaip tai įvyko

Tai ne pirmas hakatonas, kurį laimiu, ir ne pirmas rašymas, ir tai ne pirmas Habré įrašas, skirtas „Skaitmeniniam proveržiui“. Bet negalėjau nerašyti. Manau, kad mano patirtis yra pakankamai unikali, kad galėčiau pasidalinti. Tikriausiai esu vienintelis žmogus šiame hakatone, kuris laimėjo regioninį etapą ir finalą būdamas skirtingų komandų dalimi. Norite sužinoti, kaip tai atsitiko? Sveiki atvykę į katę.

Regioninis etapas (Maskva, 27 m. liepos 28 - 2019 d.).

Pirmą kartą „Skaitmeninio proveržio“ reklamą pamačiau kažkur šių metų kovo-balandžio mėnesiais. Natūralu, kad negalėjau praleisti tokio didelio hakatono ir užsiregistravau svetainėje. Ten susipažinau su konkurso sąlygomis ir programa. Paaiškėjo, kad norint patekti į hakatoną reikėjo išlaikyti internetinį testą, kuris prasidėjo gegužės 16 d. Ir, ko gero, būčiau patogiai apie tai pamiršęs, nes negavau laiško, primenančio apie testavimo pradžią. Ir, turiu pasakyti, ateityje VISOS LAIŠKOS, kurios man atėjo iš procesoriaus, nuolat atsidurdavo šiukšlių aplanke. Nors kiekvieną kartą spustelėjau mygtuką „nepriimtina“. Nežinau, kaip jiems pavyko pasiekti tokį rezultatą; siunčiant paštu MailGun man tai nepasiteisino. Ir atrodo, kad vaikinai visiškai nežino apie tokių paslaugų kaip isnotspam.com egzistavimą. Bet mes nukrypstame.

Apie bandymų pradžią man buvo priminta viename iš susitikimų startuolių klubas, ten taip pat aptarėme komandos formavimą. Atsidaręs testų sąrašą, pirmiausia sėdau prie „Javascript“ testo. Apskritai užduotys buvo daugiau ar mažiau tinkamos (pvz., koks bus rezultatas, jei konsolėje pridėsite 1 + '1'). Bet iš savo patirties tokius testus naudočiau rinkdamas į darbą ar komandą su labai didelėmis išlygomis. Faktas yra tas, kad realiame darbe programuotojas retai susiduria su tokiais dalykais, su savo gebėjimu greitai derinti kodą - šios žinios niekaip nekoreliuoja, ir jūs galite gana lengvai išmokti tokius dalykus interviu (žinau iš savęs). Apskritai, aš gana greitai spustelėjau testą, kai kuriais atvejais patikrinau save konsolėje. Python teste užduotys buvo maždaug tokio paties tipo, aš taip pat išbandžiau save pulte, nustebau surinkęs daugiau taškų nei JS, nors niekada nesu programavęs profesionaliai Python. Vėliau, kalbėdamas su dalyviais, išgirdau pasakojimus apie tai, kaip stiprūs programuotojai testuose surinkdavo žemus balus, kaip kai kurie žmonės gaudavo laiškus, kad neišlaikė procesoriaus atrankos, o paskui vis tiek buvo pakviesti į jį. Akivaizdu, kad šių testų kūrėjai greičiausiai nieko nėra girdėję testo teorija, nei apie jų patikimumą ir pagrįstumą, nei apie tai, kaip juos išbandyti, o idėja su testais būtų žlugusi nuo pat pradžių, net jei neatsižvelgtume į pagrindinį hakatono tikslą. O pagrindinis įsilaužimo tikslas, kaip vėliau sužinojau, buvo pasiekti Gineso rekordą, o testai jam prieštaravo.

Kažkuriuo momentu, išlaikius testus, man paskambino, paklausė ar dalyvausiu, patikslino detales ir pasakė, kaip patekti į komandos atrankos pokalbį. Netrukus įėjau į pokalbį ir trumpai parašiau apie save. Pokalbyje vyko visiška šiukšlė, atrodė, kad organizatoriai reklamavosi daugybei atsitiktinių žmonių, neturinčių nieko bendro su IT. Daugybė produktų vadybininkų „Steve Jobso lygiu“ (tikra frazė iš vieno dalyvio pateikimo) skelbė istorijas apie save, o normalių kūrėjų net nesimatė. Bet man pasisekė ir netrukus prisijungiau prie trijų patyrusių JS programuotojų. Susipažinome jau hakatone, o tada į komandą įtraukėme merginą įkvėpimui ir organizacinių problemų sprendimui. Neatsimenu kodėl, bet pasirinkome temą „Kibernetinio saugumo mokymai“ ir įtraukėme į „Mokslas ir švietimas 2“ takelį. Pirmą kartą atsidūriau 4 stiprių programuotojų komandoje ir pirmą kartą pajutau, kaip lengva tokioje kompozicijoje laimėti. Atėjome nepasiruošę ir ginčijomės iki pietų ir negalėjome apsispręsti, ką darysime: mobiliąją aplikaciją ar žiniatinklio. Bet kurioje kitoje situacijoje manyčiau, kad tai nesėkmė. Mums svarbiausia buvo suprasti, kuo būsime geresni už konkurentus, nes aplink buvo daug komandų, kurios vykdė pjovimo testus, kibernetinio saugumo žaidimus ir panašiai. Peržiūrėję tai ir paieškoję mokymo programas bei programėles, nusprendėme, kad pagrindinis mūsų skirtumas bus priešgaisrinės pratybos. Pasirinkome keletą funkcijų, kurias mums buvo įdomu įdiegti (registracija el. paštu ir slaptažodžio patikrinimas prieš įsilaužėlių duomenų bazes, sukčiavimo laiškų siuntimas (laiškų iš žinomų bankų pavidalu), socialinės inžinerijos mokymai pokalbiuose). Nusprendę, ką darome, ir supratę, kuo galime išsiskirti, greitai sukūrėme visavertę žiniatinklio programą, o aš atlikau neįprastą backend kūrėjo vaidmenį. Taip užtikrintai laimėjome savo trasą ir kartu su dar trimis komandomis patekome į finalą Kazanėje. Vėliau Kazanėje sužinojau, kad atranka į finalą buvo fikcija, ten sutikau daug pažįstamų veidų iš atrankos nepraėjusių komandų. Mus net kalbino 1 kanalo žurnalistai. Tačiau reportaže iš jo mūsų programa buvo rodoma tik 1 sekundę.

Skaitmeninis proveržis – kaip tai įvyko
Snowed komanda, kurioje laimėjau regioninį etapą

Finalas (Kazanė, 27 m. rugsėjo 29–2019 d.)

Bet tada prasidėjo nesėkmės. Visi „Snowed“ komandos programuotojai maždaug per mėnesį vienas po kito pranešė, kad negalės vykti į Kazanę į finalą. Ir galvojau apie naujos komandos paiešką. Pirmiausia paskambinau bendrame „Russian Hack Team“ pokalbyje ir nors ten sulaukiau nemažai atsakymų ir kvietimų prisijungti prie komandų, nė vienas iš jų nepatraukė mano dėmesio. Buvo nesubalansuotos komandos, tokios kaip produktas, mobilusis kūrėjas, front-end, primenantis gulbę, vėžius ir lydekas iš pasakos. Taip pat buvo komandos, kurios man netiko technologine prasme (pavyzdžiui, su mobiliosios aplikacijos kūrimu Flutter). Galiausiai pokalbyje, kurį laikiau šlykštu (ta pati VKontakte, kur vyko komandų atranka į regioninį etapą), buvo paskelbtas skelbimas apie komandos frontendo paiešką, o aš parašiau visiškai atsitiktinai. Vaikinai pasirodė esantys „Skoltech“ absolventai ir iškart pasiūlė susitikti bei susipažinti. Man tai patiko; komandos, kurios mieliau susipažįsta iš karto hakatone, dažniausiai mane gąsdina motyvacijos stoka. Susitikome Pyatnitskajos „Rake“. Vaikinai atrodė protingi, motyvuoti, pasitikintys savimi ir pergale, ir aš čia pat priėmiau sprendimą. Dar nežinojome, kokios trasos ir užduotys bus finale, bet manėme, kad rinksimės ką nors susijusio su mašininiu mokymusi. Ir mano užduotis bus parašyti adminą šiam reikalui, todėl iš anksto paruošiau šabloną, remdamasis antd-admin.
Į Kazanę nuvažiavau nemokamai, organizatorių lėšomis. Turiu pasakyti, kad pokalbiuose ir tinklaraščiuose jau buvo išreikštas didelis nepasitenkinimas dėl bilietų pirkimo ir apskritai finalo organizavimo, viso to neperpasakosiu.

Atvykę į Kazan Expo, užsiregistravę (turėjau šiek tiek vargo gauti ženkliuką) ir papusryčiavę ėjome rinktis trasos. Į iškilmingą atidarymą, kuriame kalbėjo pareigūnai, ėjome tik apie 10 minučių.Tiesą sakant, jau turėjome pageidaujamus takelius, bet domėjomės detalėmis. Pavyzdžiui, takelyje Nr.18 („Rostelecom“) paaiškėjo, kad reikia sukurti mobiliąją aplikaciją, nors to nebuvo trumpame aprašyme. Mes padarėme pagrindinį pasirinkimą tarp trasos Nr. 8 vamzdynų defektoskopija, PJSC „Gazprom Neft“ ir kelio Nr. 13 Perinataliniai centrai, Rusijos Federacijos sąskaitų rūmai. Abiem atvejais reikėjo duomenų mokslo ir abiem atvejais galėjo būti pridėtas žiniatinklis. Trasoje Nr.13 mus sustabdė tai, kad Data Science užduotis ten buvo gana silpna, reikėjo išanalizuoti Rosstat ir neaišku ar reikia admin panelės. Ir kilo abejonių dėl pačios užduoties vertės. Galiausiai nusprendėme, kad kaip komanda labiau tinkame 8 trasai, juolab kad vaikinai jau turėjo patirties sprendžiant panašias problemas. Pradėjome apgalvodami scenarijų, pagal kurį mūsų programą naudotų galutinis vartotojas. Paaiškėjo, kad turėsime dviejų tipų vartotojus: technine informacija besidominčius technikus ir vadovus, kuriems reikalingi finansiniai rodikliai. Kai atsirado scenarijaus idėja, tapo aišku, ką daryti priekinėje dalyje, ką dizaineris turėtų nupiešti ir kokių metodų reikia galinėje dalyje, tapo įmanoma paskirstyti užduotis. Atsakomybės komandoje pasiskirstė taip: du žmonės sprendė ML su duomenimis, gautais iš techninių ekspertų, vienas žmogus rašė backend'ą Python, aš priekinę dalį rašiau React ir Antd, dizaineris nubraižė sąsajas. Net susėdome, kad sprendžiant problemas mums būtų patogiau bendrauti.

Pirmoji diena pralėkė beveik nepastebimai. Bendraujant su techniniais ekspertais paaiškėjo, kad jie („Gazprom Neft“) šią problemą jau išsprendė, tik domėjosi, ar būtų galima ją išspręsti geriau. Nepasakysiu, kad tai sumažino mano motyvaciją, bet paliko nuosėdas. Nustebau, kad naktimis sekcijos moderatoriai pažymėjo dirbančias komandas (kaip sakydavo statistikai), hakatonuose tai dažniausiai nepraktikuojama. Iki ryto turėjome priekio prototipą, keletą užpakalinės dalies užuomazgų ir pirmąjį ML sprendimą. Apskritai jau buvo ką parodyti ekspertams. Šeštadienio popietę dizaineris akivaizdžiai nupiešė daugiau sąsajų, nei turėjau laiko koduoti, ir perėjo prie pristatymo kūrimo. Šeštadienis buvo skirtas rekordo registracijai, o ryte visi dirbantys salėje buvo išvaryti į koridorių, tada įėjimas ir išėjimas iš salės buvo vykdomas naudojant ženkliukus, o išeiti buvo galima ne ilgiau. nei valandą per dieną. Nesakysiu, kad tai sukėlė mums didelių nepatogumų; didžiąją dienos dalį vis tiek sėdėjome ir dirbome. Maistas tikrai buvo labai menkas, pietums gavome stiklinę sultinio, pyragą ir obuolį, bet tai vėlgi mūsų labai nenuliūdino, buvome susikoncentravę ties kitu.

Jie periodiškai išduodavo raudonąjį bulių, po dvi skardines vienai rankai, o tai buvo labai naudinga. Energinio gėrimo + kavos receptas, seniai išbandytas hakatonuose, leido koduoti visą naktį ir kitą dieną, būnant linksmai kaip taurė. Antrą dieną mes, tiesą sakant, tiesiog papildėme programą naujomis funkcijomis, apskaičiavome finansinius rodiklius ir pradėjome rodyti greitkelių defektų statistikos grafikus. Mūsų trasoje kodo peržiūros nebuvo, ekspertai problemos sprendimą įvertino kaggle.com stiliumi, remdamiesi prognozės tikslumu, o priekinė dalis – vizualiai. Mūsų ML sprendimas pasirodė pats tiksliausias, galbūt tai leido mums tapti lyderiais. Naktį iš šeštadienio į sekmadienį dirbome iki 2 val. nakties, o tada eidavome miegoti į butą, kurį naudojome kaip bazę. Miegojome apie 5 valandas, sekmadienį 9 ryto jau buvome Kazan Expo. Paskubomis kažką ruošiau, bet didžioji laiko dalis buvo skirta pasiruošimui priešgynimui. Išankstinė gynyba vyko 2 srautais, dviejų ekspertų komandų akivaizdoje, mūsų buvo paprašyta kalbėti paskutiniai, nes abi ekspertų komandos norėjo mūsų klausytis. Priėmėme tai kaip gerą ženklą. Programa buvo rodoma iš mano nešiojamojo kompiuterio, iš veikiančio dev serverio; neturėjome laiko tinkamai įdiegti programos, tačiau visi padarė tą patį.

Apskritai viskas klostėsi neblogai, mums buvo nurodyti punktai, kuriuose galėtume patobulinti savo taikymą, o prieš gynybą kai kuriuos iš šių komentarų net bandėme įgyvendinti. Gynyba taip pat sekėsi stebėtinai sklandžiai. Pagal išankstinės gynybos rezultatus žinojome, kad esame priekyje pagal taškus, pirmaujame pagal sprendimo tikslumą, turėjome gerą frontą, gerą dizainą ir apskritai gerai jausmai. Dar vienas palankus ženklas buvo tai, kad mergina moderatorė iš mūsų skyriaus prieš įeidama į koncertų salę pasidarė su mumis asmenukę, o tada įtariau, kad ji gali ką nors žinoti))). Tačiau po gynybos mes nežinojome savo balų, todėl laikas iki mūsų komandos paskelbimo iš etapo praėjo šiek tiek įtemptai. Scenoje jie įteikė kartoną su užrašu 500000 XNUMX rublių ir kiekvienam buvo įteiktas krepšys su puodeliu ir mobiliojo telefono baterija. Nepavyko džiaugtis pergale ir tinkamai ją atšvęsti, greitai pavakarieniavome ir taksi nuvažiavome į traukinį.

Skaitmeninis proveržis – kaip tai įvyko
WAICO komanda laimi finalą

Grįžus į Maskvą NTV žurnalistai davė mums interviu. Visą valandą filmavome Poliankos kavinės Kvartal 44 antrame aukšte, bet žinia rodė tik apie 10 sekundžių.. Juk stiprus progresas lyginant su regioniniu etapu.

Jei apibendrinsime bendrus skaitmeninio proveržio įspūdžius, jie yra tokie. Renginiui išleista daug pinigų, tokio masto hakatonų dar nemačiau. Tačiau negaliu sakyti, kad tai pateisinama ir kad tai tikrai pasiteisins. Nemaža dalis į Kazanę atvykusių dalyvių buvo tiesiog savo rankomis nieko padaryti nemokantys vakarėlio dalyviai, kurie buvo priversti siekti rekordo. Negaliu pasakyti, kad finale konkurencija buvo didesnė nei regioniniame etape. Taip pat abejotina kai kurių takelių užduočių vertė ir naudingumas. Kai kurios problemos jau seniai išspręstos pramonės lygmeniu. Kaip vėliau paaiškėjo, kai kurios organizacijos, vykdusios takelius, nebuvo suinteresuotos juos išspręsti. Ir ši istorija dar nesibaigė, pirmaujančios komandos iš kiekvienos trasos buvo atrinktos į išankstinį greitintuvą ir spėjama, kad jos taps PROVERŽIAUS startuoliais. Bet aš dar nesu pasiruošęs apie tai rašyti, žiūrėsime, kas iš to išeis.

Šaltinis: www.habr.com

Добавить комментарий