See ei ole esimene hackathon, mille ma vĂ”idan, ega ka esimene, millest , ja see ei ole kaugeltki esimene postitus Habras, mis on pĂŒhendatud âDigitaalsele lĂ€bimurdeleâ. Kuid ma ei saanud mitte kirjutada. Pean oma kogemust piisavalt unikaalseks, et seda jagada. TĂ”enĂ€oliselt olen ma ainus inimene sellel hackathonil, kes vĂ”itis piirkondliku etapi ja finaali erinevates meeskondades. Kas soovite teada, kuidas see juhtus? Tere tulemast allapoole.
Piirkondlik etapp (Moskva, 27. â 28. juuli 2019).
Reklaami âDigitaalsest lĂ€bimurrestâ nĂ€gin esmakordselt kusagil mĂ€rtsis â aprillis sellel aastal. Loomulikult ei saanud ma niisugust suurt hackathonit mööda lasta ja registreerisin end veebilehel. Seal tutvusin ka konkursi tingimuste ja programmiga. Selgus, et hackathonile pÀÀsemiseks pidi minema lĂ€bi veebitestimise, mis algas 16. mail. Ja vĂ”ib-olla oleksin ma sellest edukalt unustanud, kuna meeldetuletuskiri testimise algusest ei tulnud. Ja tuleb öelda, et hiljem KĂIK KIRJAD, mis tulid minult CP-st, sattusid pidevalt rĂ€mpsposti kausta. Kuigi ma igal korral vajutasin nuppu âei ole rĂ€mpsâ. Ei tea, kuidas neil Ă”nnestus selline tulemus saavutada, mul ei lĂ€inud MailGuniga nii hĂ€sti. Ja tundub, et selliste teenuste nagu isnotspam.com olemasolust ei teata sealsetes ringkondades ĂŒldse. Kuid me kaldusime teemast kĂ”rvale.
Testimise algusest meeldetuletuse sain ĂŒhel kohtumisel , sealime arutasime tiimi loomist. Testide loend avades, asusin esimesena Javascripti testi kallale. Ăldiselt olid ĂŒlesanded enam-vĂ€hem mĂ”istlikud (nt, milline on tulemus, kui konsoolis kokku liita 1 + '1'). Kuid oma kogemuse pĂ”hjal kasutaksin selliseid teste töö vĂ”i tiimi valimisel vĂ€ga suurte ettevaatustega. Asi on selles, et reaalses töös programmijad selliste asjadega harva kokku puutuvad, tema vĂ”ime kiiresti koodi kirjutada ei korreleeru nende teadmistega, ja sellistele asjadele treenimine vestlusteks on ĂŒsna lihtne (tean enda kogemuse pĂ”hjal). KokkuvĂ”ttes lĂ€bisid testi ĂŒsna kiiresti, mĂ”nes olukorras kontrollisin end konsoolis. Python testi ĂŒlesanded olid enam-vĂ€hem samasugused, kontrollisin end ka seal, ĂŒllatusega sain rohkem punkte kui JS-is, kuigi ma pole kunagi professionaalselt Pythoni programmeerinud. Hiljem suheldes osalejatega kuulsin lugusid, kuidas tugevad programmeerijad said teste madalaid punkte, kuidas mĂ”nele inimesele saadeti kirjad, et nad ei lĂ€binud valikut, kuid neid kutsuti ikkagi. Selge, et nende testide loojaid ei huvita ilmselt midagi , nende usaldusvÀÀrsusest ja kehtivusest, samuti testide katsetamisest, ja idee testide kasutamisest oli algselt ebaĂ”nnestunud, isegi kui mitte arvestada hackatoni peamist eesmĂ€rki. Ja peamine eesmĂ€rk, nagu hiljem teada sain, oli Guinnessi rekord, ja testid olid sellele vastuolus.
MĂ”nel hetkel pĂ€rast testide lĂ€bimist helistati mulle, kĂŒsiti, kas ma soovin osaleda, tĂ€psustati ĂŒksikasju ja öeldi, kuidas liituda meeskonna valikute kaaniga. Varsti liitusin vestlusega ja kirjutasin endast lĂŒhidalt. Vestluses toimus tĂ€ielik kaos, tekkis mulje, et korraldajad olid reklaami kaudu kokku toonud palju juhuslikke inimesi, kellel ei olnud IT-ga mingit seost. Arvukad 'Steve Jobsi taseme' tootejuhid (reaalne fraas ĂŒhe osaleja esitluses) postitasid endi lugusid, aga normaalseid arendajaid polnud ĂŒldse nĂ€ha. Kuid mul vedas, ja liitusin peagi kolme kogenud JS-programmeerijaga. Tutvusime omavahel juba hackathonil, siis lisasime meeskonda ka tĂŒdruku, et saada inspiratsiooni ja lahendada organisatsioonilisi kĂŒsimusi. Ma ei mĂ€leta, miks, aga valisime teema 'KĂŒberjulgeoleku koolitus' ja sattusime sellega teaduse ja hariduse 2. rajale. Esmakordselt olin 4 tugeva programmeerijaga meeskonnas ja esmakordselt tundsin, kui kerge on niisuguses koosseisus vĂ”ita. Tulime kohale ettevalmistamata ja enne lĂ”unat vaidlesime, ega suutnud otsustada, mida tegema hakkame: mobiilirakendust vĂ”i veebi. Igas muus olukorras oleksin mĂ”elnud, et see on lĂ€bikukkumine. Meie jaoks oli kĂ”ige olulisem mĂ”ista, kuidas me saame olla konkurentidest paremad, sest ĂŒmberringi oli palju meeskondi, kes valmistasid teste, kĂŒberjulgeoleku mĂ€nge ja sarnaseid asju. Seda vaadates ja otsides Ă”petusi ning rakendusi, otsustasime, et meie peamine eripĂ€ra on treeningud tulekahjusignaalide pĂ”himĂ”ttel. Valisime rikka hulga funktsioone, mis tundusid meile huvitavad rakendamiseks (registreerimine e-posti ja parooli kontrollimisega hĂ€kkerite andmebaaside pĂ”hjal, Ă”ngitsuskirjade saatmine (tuntud pankade kirjadena), sotsiaalse inseneritöö treeningud vestluses). Otsustades, mida me teeme ja mĂ”istes, kuidas me saame silma paista, kirjutasime ĂŒsna kiiresti tĂ€isfunktsionaalse veebirakenduse, kusjuures mina astusin ebaharilikku rolli tagaplaani arendajana. Nii vĂ”itsime me oma rajal kindlalt ja koos veel kolme meeskonnaga pÀÀsesime finaali Kazanis. Hiljem, Kazanis, sain teada, et finaali valik oli fiktsioon, kohtasin seal palju tuttavaid nĂ€gusid meeskondadest, kes seda valikut ei lĂ€binud. Meist tegi intervjuu ka 1. kanali reportaaĆŸ, kuigi meie rakendust nĂ€idati seal vaid 1 sekundi jooksul.

Snowed meeskond, millega ma vÔitsin piirkondliku etapi
Finaal (Kazan, 27. â 29. september 2019)
Kuid seejĂ€rel hakkasid probleemid. KĂ”ik Snowedi meeskonna programmeerijad teatasid ĂŒhe kuu jooksul, et nad ei saa Kazani finaali tulla. Ja ma hakkasin mĂ”tlema uue meeskonna otsimisele. Alguses kĂŒsisin ma Russian Hack Team'i ĂŒldises vestluses, ja kuigi sain ĂŒsna palju vastuseid ja kutseid meeskondadesse, ei olnud ĂŒkski neist mind köitnud. Oligid tasakaalustamata meeskonnad, nĂ€iteks tootejuht, mobiilne arendaja, front-end arendaja, meenutades luike, rampa ja saami muinasjuttu. Oligid ka meeskonnad, mis ei sobinud mulle tehnoloogia poolest (nĂ€iteks mobiilirakenduste arendamiseks Flutteris). LĂ”puks postitati vestluses, mida pidasin nĂ”rga kvaliteediga (see, kus toimus meeskondade valik piirkondlikuks etapiks), kuulutus front-end arendaja otsimisest, ja ma kirjutasin sinna lihtsalt juhuslikult. Poisid osutusid Skoltech'i doktorantideks ja pakkusid koheselt kohtumist ja tutvumist. See meeldis mulle, meeskonnad, kes eelistavad kohe hackathonil tutvuda, tavaliselt tĂ”ukavad mind oma motivatsiooni puudumisega. Kohtusime âGrablisâ Pjatnitskaja tĂ€naval. Poisid tundusid olevat tublid, motiveeritud, enesekindlad ja vĂ”iduhimu tĂ€is, ja ma tegin seal otse otsuse. Me ei teadnud veel, millised on finaali rajad ja ĂŒlesanded, kuid eeldasime, et valime midagi, mis on seotud masinĂ”ppega. Ja minu ĂŒlesanne oli selle jaoks luua admin-paneel, seega olin selle jaoks ette valmistanud antd-admin pĂ”hjal koostatud nĂ€idise.
Kazanisse lĂ€ksin tasuta, korraldajate arvelt. Tuleb öelda, et vestlustes ja blogides oli juba palju rahulolematust piletite ostmise ja finaali korralduse osas, ma ei hakka seda kĂ”ike ĂŒmber jutustama.
Kazan Expo'ssa registreerudes (mul oli mĂ”ningaid probleeme badge'i saamisega) ja hommikusööki sĂŒĂŒes, lĂ€ksime koos rada valima. Suurele avamisele, kus esinesid ametlikud isikud, lĂ€ksime ainult kĂŒmneks minutiks. Tegelikult olid meil juba eelistatud rajad, aga meid huvitasid detailid. Rajal nr 18 (Rostelecom) selgus, et on vaja vĂ€lja töötada mobiilirakendus, kuigi lĂŒhikeses kirjelduse seda ei olnud. Meie pĂ”hivalik oli rajal nr 8 Torujuhtmete defektoskoopia, PAO "Gazprom Neft" ja rajal nr 13 Perinataalsed keskus, Venemaa Arvutuskaamerad. Seal ja seal vajalik Data Science, seal ja seal oleks saanud veebiga liita. Rajal nr 13 peatas meid see, et Data Science ĂŒlesanne oli seal ĂŒsna nĂ”rk, tuli parsida Rosstatit ja ei olnud selge, kas adminpaneel on vajalik. Ja ĂŒlesande enda vÀÀrtus tekitas kahtlusi. LĂ”puks otsustasime, et meeskonnana oleme rohkem orienteeritud rajale 8, eriti kuna poistel oli juba kogemus sarnaste ĂŒlesannete lahendamisel. Alustasime stsenaariumi vĂ€ljatöötamisest, mille alusel rakendust kasutab lĂ”ppkasutaja. Selgus, et meil on kaks tĂŒĂŒpi kasutajaid: spetsialistid, keda huvitavad tehnilised andmed, ja juhtkond, kellele on vajalikud finantsnĂ€itajad. Kui stsenaarium hakkas selgeks saama, muutus arusaadavaks, mida front-endis teha, mida kujundajal joonistada ja milliseid meetodeid backendis vajalik kasutada, ning ĂŒlesannete jaotamine sai vĂ”imalikuks. Meeskonna ĂŒlesanded jagunesid jĂ€rgmiselt: kaks inimest lahendasid ML tehniliste ekspertide andmete pĂ”hjal, ĂŒks inimene kirjutas Pythonis backend'i, mina kirjutasin frontend'i React'is ja antd-s, ja disainer joonistas liideseid. Me istusime isegi nii, et oleks mugavam omavahel suhelda, lahendades oma ĂŒlesandeid.
Esimesed pĂ€evad möödusid praktiliselt mĂ€rkamatult. Suhtlemisel tehnikuekspertidega selgus, et see probleem on nende ("Gazprom Neft") jaoks juba lahendatud, nad on lihtsalt huvitatud, kas seda oleks vĂ”imalik paremini lahendada. Ei saa öelda, et see oleks motivatsiooni vĂ€hendanud, kuid tunne jĂ€i siiski. Ăllatas, et öösel mĂ€rkisid sektsioonide moderaatorid töötavaid tiime (nagu nad statistika tarbeks ĂŒtlesid), tavaliselt ei praktiseerita seda hackathonide puhul. Hommikuks oli meil valmis esialgne prototĂŒĂŒp, mĂ”ned alged backendâist ja esimene ML-lahendus. KokkuvĂ”ttes oli juba midagi, mida ekspertidele nĂ€idata. LaupĂ€eva teises pooles joonistas disainer juba ilmselgelt rohkem liideseid, kui ma oleksin jĂ”udnud koodida, ning keskendus esitluse koostamisele. LaupĂ€ev oli mÀÀratud rekordigraafiku registreerimiseks ja hommikul aeti kĂ”ik töötavad saalist koridori, seejĂ€rel toimus sisene ja vĂ€ljumine saali lĂ€bikaartide alusel, kusjuures pĂ€ev jooksul sai vĂ€lja minna mitte rohkem kui tunniks. Ei saa öelda, et see oleks meile mingit olulist ebamugavust pĂ”hjustanud, suurem osa pĂ€evast istusime ikkagi ja töötasime. Toit oli tĂ”epoolest vĂ€ga tagasihoidlik, lĂ”unaks saime tassikese puljongit, piruka ja Ă”una, kuid jĂ€llegi ei rikkunud see meie tuju, olime keskendunud muudele asjadele.
Aeg-ajalt anti meile red bullâi, kaks purki inimese kohta, see tuli vĂ€ga Ă”igel ajal. Amatöörile teadaolev retsept energiajook + kohv vĂ”imaldas meil koodida terve öö ja jĂ€rgnev pĂ€ev, olles vĂ€rske nagu klaasikild. Teisel pĂ€eval olime sisuliselt juba lihtsalt rakendusele uusi funktsioone lisamas, tegime finantsnĂ€itajate arvutuse ja hakkasime nĂ€itama defektide statistika graafikuid. Meie rajal ei olnud tegelikult code reviewâd, eksperdid hindasid probleemilahendust kaggle.com stiilis, prognoosi tĂ€psuse jĂ€rgi, ja frontendi hindamine toimus visuaalselt. Meie ML lahendus osutus kĂ”ige tĂ€psemaks, vĂ”ib-olla just see aitas meil liidrite hulka tĂ”usta. LaupĂ€eva öösel töötasime kella kaheni hommikul ning siis lĂ€ksime magama korterisse, mida kasutasime baasina. Ootasime umbes 5 tundi, pĂŒhapĂ€eva hommikul kell 9 olime juba Kazan Expoâs. Ma kiirustasin midagi kohandama, kuid suurem osa ajast kulus ettevalmistusele kaitseks. Eelkaitsed toimusid kahes voos, kahe ekspertmeeskonna ees, meid paluti esineda viimastena, kuna mĂ”lemad ekspertide meeskonnad soovisid meid kuulata. VĂ”tsime seda kui head mĂ€rki. Rakendust nĂ€idati minu sĂŒlearvutist, jooksvas arendusserveris, me ei jĂ”udnud rakendust normaalselt ĂŒles laadida, kuid nii tegid kĂ”ik.
KokkuvĂ”ttes lĂ€ks kĂ”ik hĂ€sti, juhtisime tĂ€helepanu asjadele, kus me saime oma rakendust parandada, ja ajavahemikul enne kaitset proovisime isegi mĂ”nda neist mĂ€rkustest rakendada. Kaitse kulges ka ĂŒllatavalt sujuvalt. Eelkaitse tulemuste pĂ”hjal teadsime, et punktide osas olime esikohal, juhtisime lahenduse tĂ€psuses, meil oli hea front-end, hea disain ja ĂŒldiselt olid head ettekujutused. Veel ĂŒks soodne mĂ€rk oli see, et meie sektsiooni moderaator tegi enne kontserdisaali sisenemist meiega selfi, siis kahtlustasin, et ta vĂ”ib-olla teab midagi))). Kuid kaitse jĂ€rel ei teadnud me oma punkte, seega ootasime hetkeni, mil meie meeskond kuulutatakse, pisut nĂ€rviliselt. Lavale anti paber, mille peal oli kirjas 500000 rubla, ja igaleĂŒhele pakike kruusi ja mobiiltelefoni akuga. VĂ”idust ei saanud nautida ja korralikult tĂ€histada, sĂ”ime kiiresti Ă”htusöögi ja sĂ”itsime taksoga rongi poole.

WAICO meeskond vÔidab finaalis
Moskvasse tagasi tulles intervjueeris meid NTV reporterid. Filmiti terve tund kvartali 44 kohviku teisel korrusel Poljankal, kuid uudistes nÀidati ainult 10 sekundit. Igal juhul on see suur edasiminek vÔrreldes piirkondliku etapiga.
KokkuvĂ”ttes, ĂŒldised muljed Digitaalsest lĂ€bimurrest on jĂ€rgmised. Ăritusele kulutati tohutult raha, ma pole kunagi nĂ€inud selliseid hiiglaslikke hackathone. Kuid ma ei saa öelda, et see oli Ă”igustatud ja et see tĂ”esti tasub end Ă€ra. MĂ€rkimisvÀÀrne osa Kazani tulnud osalejatest olid lihtsalt ĂŒritustel osalejad, kes ei oska midagi oma kĂ€tega teha ja keda kutsuti rekordite seadmiseks. Ma ei saa öelda, et finaalis oli konkurents tugevam kui piirkondlikul etapil. Samuti kahtlustan ma teatud radade ĂŒlesannete vÀÀrtust ja kasulikkust. MĂ”ned ĂŒlesanded olid juba ammu tööstuse tasemel lahendatud. Hiljem selgus, et mĂ”ned organisatsioonid, kes vedasid radu, ei olnud nende lahendamise vastu isegi huvitatud. Ja see lugu pole veel lĂ”ppenud, iga raja paremad meeskonnad valiti eekiiterisse, ja on eeldatud, et neist saavad MURDELINE start-upid. Kuid ma ei ole veel valmis selle kohta kirjutama, vaatame, mis sellest vĂ€lja tuleb.
Allikas: habr.com
