See ei ole esimene hackathon, mille ma vĂ”idan, mitte esimene, millest , ja see kaugeltki ei ole esimene postitus habras, mis on pĂŒhendatud "Digitaalsele murdele". Kuid mitte kirjutamine ei oleks olnud Ă”ige. Pean oma kogemust piisavalt ainulaadseks, et sellega jagada. TĂ”enĂ€oliselt olen ma ainus sellel hackathonil, kes vĂ”itis piirkondliku etapi ja finaali erinevates meeskondades. Kas soovite teada, kuidas see juhtus? Tere tulemast sisse.
Piirkondlik etapp (Moskva, 27 â 28. juuli 2019).
Reklaami "Digitaalne lĂ€bimurre" nĂ€gin esmakordselt kuskil mĂ€rtsis-aprillis sel aastal. Loomulikult ei saanud ma mööda minna nii suurest hackathon'ist ja registreerisin end saidil. Seal tutvusin konkursi tingimuste ja programmiga. Selgus, et hackathon'ile pÀÀsemiseks tuli lĂ€bida 16. maist algav tasuta veebitest. Ja vĂ”ib-olla oleksin ma sellest rahulikult unustanud, kuna mulle ei tulnud meeldetuletava kirja startimise kohta. Pean ĂŒtlema, et kĂ”ik KIRJAD, mis mulle CP-st tulid, sattusid pidevalt rĂ€mpsposti kausta. Kuigi ma iga kord vajutasin nuppu âei ole reklaamâ. Ei tea, kuidas neil Ă”nnestus selline tulemus saavutada, mul ei saanud MailGun'i jagamisega nii hĂ€sti hakkama. Ja paistab, et nad ei tea isnotspam.com tĂŒĂŒpi teenustest ĂŒldse. Aga me kaldusime teemast kĂ”rvale.
Testimise algusest meenutati mulle ĂŒhes kohtumises , seal arutasime tiimi loomist. Kui avasin testide nimekirja, asusin kohe Javascripti testi kallale. Ăldiselt olid ĂŒlesanded enam-vĂ€hem adekvaatsed (nt, mis on tulemuseks, kui konsoolis liita 1 + '1'). Aga oma kogemuse pĂ”hjal kasutaksin ma selliseid teste tööle vĂ”i meeskonda vĂ€rbamisel vĂ€ga ettevaatlikult. Asjaolu on selles, et reaalses töös kohtub programmeerija selliste asjadega harva; tema vĂ”ime kiiresti koodi kirjutada â nĂ€mĂ€ teadmised ei korreleeru millegagi, ja selliste asjade harjutamine vestlusteks on ĂŒsna lihtne (tean omast kogemusest). KokkuvĂ”ttes tegin testi ĂŒsna kiiresti, mĂ”nes olukorras kontrollisin ennast konsoolis. Python'i testis olid ĂŒlesanded umbes sama tĂŒĂŒpi, samuti kontrollisin ennast konsoolis, ĂŒllatusega saavutasin rohkem punkte kui JS-is, ehkki ma pole kunagi professionaalselt Pythonis programmeerinud. Hiljem suhtlemisel osalejatega kuulsin lugusid, kuidas tugevad programmeerijad said testides madalaid punkte, kuidas mĂ”nele inimesele tuli kiri, et nad ei lĂ€binud valikut, kuid siis kutsuti nad ikkagi kutsele. On selge, et nende testide koostajad ei teadnud ilmselt sellest midagi. , ei nende usaldusvÀÀrsuse ja kehtivuse kohta, ega selle kohta, kuidas neid katsetada, ja idee testidest oleks algselt olnud lĂ€bikukkumine, isegi kui mitte arvestada hĂ€katoni peamist eesmĂ€rki. Ja hĂ€ka peamine eesmĂ€rk, nagu ma hiljem teada sain, oli pĂŒstitada Guinnessi rekord, ja testid olid sellele vastuolus.
Kuna hetk pĂ€rast testide sooritamist helistati mulle, kĂŒsiti, kas ma osalen, tĂ€psustati detaile ja öeldi, kuidas liituda tiimi koondamise vestlusega. Peatselt liitusin vestlusega ja kirjutasin endast lĂŒhidalt. Vestluses valitses tĂ€ielik kaos, tekkis mulje, et korraldajad olid reklaami abil kogunud palju juhuslikke inimesi, kellel ei olnud IT valdkonnaga mingit seost. Rohkelt "Steve Jobsi tasemel" tootejuhte (reaalne fraas ĂŒhe osaleja esitlusest) jagasid enda lugusid, samas ei paistnud normaalseid arendajaid ĂŒldse. Kuid mul vedas ja liitusin peagi kolme kogenud JS-programmeerijaga. Me tutvusime juba hackathonil, kus lisasime meeskonda ka ĂŒhe tĂŒdruku inspiratsiooni ja korralduslike kĂŒsimuste lahendamiseks. Miks, ma enam ei mĂ€leta, aga valisime teema "KĂŒberkaitse Ă”petamine" ja pÀÀsesime sellega "Teadus ja haridus 2" rajale. Ma olin esmakordselt nelja tugeva programmeerija tiimis ja tundsin esmakordselt, kui lihtne on sellises koosseisus vĂ”ita. Me tulime ettevalmistamata ja enne lĂ”unat vaieldes ei suutnud otsustada, kas teeme mobiilirakenduse vĂ”i veebirakenduse. Igas muus olukorras oleksin mĂ”elnud, et see on lĂ€bikukkumine. Meie jaoks oli kĂ”ige tĂ€htsam mĂ”ista, millega me konkurentidest paremad oleme, sest ĂŒmberringi oli palju meeskondi, kes arendasid teste, mĂ€nge kĂŒberkaitse alal ja sarnaseid asju. Vaadates seda ja otsides Ă”petusprogramme ja rakendusi, otsustasime, et meie peamine eristav omadus on treeningud hĂ€irete printsiiibil. VĂ€lja valisime terve rea funktsioone, mis tundusid meile huvitavad teostada (registreerimine e-posti ja parooli kontrollimisega hĂ€kkerite andmebaaside jĂ€rgi, fiĆĄingukirjade saatmine (kuulsate pankade kirjade kujul), sotsiaalse inseneritehnika harjutamine vestluses). Otsustades, mida me teeme, ja mĂ”istes, millega saadakse eristuda, kirjutasime me ĂŒsna kiiresti vĂ€lja tervikliku veebirakenduse, samas astusin ma endale ebaharilikus rollis tagarikka arendajana. Nii vĂ”itsime kindlalt oma rajal ja veel kolme meeskonna seas pÀÀsesime finaali Kazanis. Hiljem, Kazanis, sain teada, et finaali valimine oli fiktivne, kohtasin seal palju tuttavaid nĂ€gusid meeskondadest, kes seda valikut ei lĂ€binud. Meid intervjueeris isegi 1. kanali ajakirjanikud. TĂ”si, sellest reportaaĆŸist nĂ€idati meie rakendust vaid ĂŒhe sekundi jooksul.

Snowed meeskond, kellega ma vÔitsin piirkondlikku etappi
Finaal (Kazan, 27. â 29. september 2019)
Aga edaspidi algasid ebaĂ”nnestumised. KĂ”ik Snowed meeskonna arendajad teatasid umbes kuu jooksul, ĂŒksiku teise jĂ€rel, et nad ei saa Kazani finaali minna. See pani mind mĂ”tlema uue meeskonna leidmisele. Alguses pöördusin ma venna Russian Hack Team ĂŒldises vestlusgrupis ja kuigi sain sealt mitmeid vastuseid ja kutseid meeskondadesse, ei huvitanud mind ĂŒkski neist. Oli tasakaalustamata meeskondi, nagu nĂ€iteks, tootejuhiks, mobiiliarendajaks ja front-end arendajaks, meenutas see tuvisid, vĂ€hki ja siigfishi muinasjutust. Oli ka meeskondi, mis ei sobinud mulle tehnoloogia poolest (nĂ€iteks mobiilirakenduse arendamine Flutteris). LĂ”puks, vestlusgrupis, mida pidasin prĂŒgiseks (see sama VK-s, kus viidi lĂ€bi meeskondade valik piirkondlikuks etapiks), postitati kuulutus front-end arendaja otsimiseks, ja ma kirjutasin lihtsalt juhuslikult. Poisid osutusid Skoltechi doktorantideks ning pakkusid kohe kohtuda ja tutvuda. Mulle see meeldis, meeskonnad, kes eelistavad juba hackathonil kohtuda, tavaliselt tekitavad minus kĂŒsimusi oma motivatsiooni puudumise osas. Kohtusime âGrablisâ PiĂ€tnitskaja tĂ€naval. Poisid tundusid olevat head, motiveeritud, enesekindlad ja kindlad vĂ”idus, ning otsuse tegin kohe seal. Me ei teadnud veel, millised on finaalis teemad ja ĂŒlesanded, kuid oletame, et valime midagi, mis on seotud MasinĂ”ppega. Ja minu ĂŒlesanne on selle jaoks adminpaneeli kirjutamine, seega olin selleks juba ette valmistanud mudeli antd-admini pĂ”hjal.
Kazanisse sĂ”itsin tasuta, korraldajate kulul. Pean ĂŒtlema, et keskustes ja blogides on juba vĂ€ga palju rahulolematust piletite ostmise ja ĂŒldiselt finaali korraldamise kohta vĂ€ljendatud, ma ei hakka seda kĂ”ike kordama.
Kazan Expo'sse saabudes, registreerudes (olge tĂ€helepanelik, mul oli badge'i saamisel vĂ€ikesed probleemid) ja hommikusööki nautides, lĂ€ksime rada valima. Ărituse ametlikuks avamiseks, kus esinesid ametnikud, lĂ€ksime ainult 10 minutiks. Tegelikult olid meil juba eelistatud rajad, kuid meid huvitasid detailid. Rada number 18 (Rostelecom) puhul selgus nĂ€iteks, et tuleb arendada mobiilirakendust, kuigi lĂŒhikirjelduses seda ei olnud. Peamine valik oli rada number 8 Torujuhtmete defektoskoopia, PAO âGazprom Neftâ ja rada number 13 Perinataalsed keskused, Venemaa Arvukam Kontor. MĂ”lemas vajas Data Science'i, mĂ”lemas oleks saanud veebiga liita. Rada number 13 peatus meid, kuna Data Science'i ĂŒlesanne oli seal ĂŒsna nĂ”rk, tuli roosteitset analĂŒĂŒsida ja ei olnud selge, kas admin paneel on vajalik. Ja ĂŒlesande vÀÀrtus ise tekitas kahtlusi. LĂ”puks otsustasime, et meeskonnana sobime rohkem 8. rajale, mida rohkemgi, et poistel oli juba sarnaste ĂŒlesannete lahendamisel kogemusi. Alustasime sellest, et mĂ”tlesime lĂ€bi stsenaariumi, kuidas meie rakendust lĂ”ppkasutaja kasutab. Selgus, et meil on kaks tĂŒĂŒpi kasutajaid: tehnikud, keda huvitab tehniline teave, ja juhid, kellele olid vajalikud finantsnĂ€itajad. Kui stsenaariumi idee tekkis, sai selgeks, mida front-end'is teha, mida disainerile joonistada ja milliseid meetodeid backend'is vajatakse, ning ĂŒlesannete jaotamine muutus vĂ”imalikuks. Meeskonnas jaotati kohustused jĂ€rgmiselt: kaks inimest lahendasid ML ĂŒlesandeid tehniliste ekspertide kĂ€est saadud andmetega, ĂŒks inimene kirjutas Pythonis backend'i, mina kirjutasin front-end'i Reactis ja AntD-s, designer joonistas liideseid. Me isegi istusime nii, et meie suhtlemine oleks mugavam, lahendades oma ĂŒlesandeid.
Esimene pĂ€ev möödus peaaegu mĂ€rkamatult. Suheldes tehniliste ekspertidega selgus, et see ĂŒlesanne on juba lahendatud ("Gazprom Neft"), nad lihtsalt kĂŒsivad, kas seda vĂ”iks paremini lahendada. Ma ei ĂŒtle, et see vĂ€hendas motivatsiooni, kuid siiski jĂ€i kerge vimm. Ăllatav oli nĂ€ha, et öösel mĂ€rkisid sektsioonide moderaatorid töötavaid meeskondi (nagu nad ĂŒtlesid statistika jaoks), tavaliselt ei praktiseerita hackathonidel sellist asja. Hommikuks oli meil valmis esialgne esikĂŒlg, mĂ”ned alged tagakĂŒljest ja esimene ML lahendus. ĂhesĂ”naga oli juba, mida ekspertidele nĂ€idata. LaupĂ€eva teises pooles joonistas disainer juba selgelt rohkem liideseid, kui ma oleksin suutnud kodeerida, ning keskendus esitluse loomisele. LaupĂ€ev oli ette nĂ€htud rekordite registreerimiseks, ning hommikul visati kĂ”ik tööruumis olevad koridori; sisse- ja vĂ€ljapÀÀs saali toimus badge'idega, ning pĂ€evase vĂ€ljumise aeg oli piiratud ĂŒhe tunni vĂ”rra. Ma ei ĂŒtle, et see tegi meile suuri ebamugavusi, suure osa pĂ€evast olime ikkagi istunud ja töötanud. Toit oli tĂ”epoolest vĂ€ga toimetulev, lĂ”unaks saime tassi puljongit, piruka ja Ă”una, kuid see ei hĂ€irinud meid eriti, olime keskendunud millelegi muule.
Aeg-ajalt jagati red bulli, kaks purki igaĂŒhele, see tuli vĂ€ga Ă”igel ajal. Aastaid proovitud retsept energiajook + kohv vĂ”imaldas kodeerida terve öö ja jĂ€rgmise pĂ€eva, olles virgem kui kunagi varem. Teisel pĂ€eval lisasime lihtsalt rakendusse uusi funktsioone, tegime finantsnĂ€itajate arvutused ja hakkasime vĂ€lja tooma graafikuid defektide statistika kohta. Meie rajal ei olnud tegelikult code review'd, eksperdid hindasid probleemilahendust stiilis kaggle.com, prognoosi tĂ€psuse jĂ€rgi, ja front-end'i hinnati visuaalselt. Meie ML lahendus osutus kĂ”ige tĂ€psemaks, vĂ”ib-olla see vĂ”imaldas meil liidrite hulka tĂ”usta. LaupĂ€eva öösel töötasime kell 2-ni, siis lĂ€ksime korterisse, mida kasutasime baasina, magama. Magasime umbes 5 tundi ja pĂŒhapĂ€eval kell 9 olime juba Kazan Expo's. Ma lisasin midagi kiirusel, kuid enamiku ajast kulutasin ettevalmistusele eelverifikatsiooniks. Eelverifikatsioonid toimusid kaks voo kaupa, kahe ekspertmeeskonna ees, meid paluti esineda viimaste seas, sest mĂ”lemad ekspertmeeskonnad soovisid meid kuulata. Vaatasime rakendust minu sĂŒlearvutist, kĂ€ivitatud arendusteenusest, me ei jĂ”udnud rakendust korralikult juurutada, aga kĂ”ik tegid nii.
Ăldiselt lĂ€ks kĂ”ik hĂ€sti, meid juhiti tĂ€helepanu punktidele, kus saime oma rakendust parandada, ja kaitsmise ajaks proovisime isegi mĂ”ned neist mĂ€rkustest ellu viia. Kaitsmine ise sujus ĂŒllatavalt hĂ€sti. EelanalĂŒĂŒsi tulemuste pĂ”hjal teadsime, et oleme punktide poolest ees, olime lahenduse tĂ€psuses liidrid, meil oli hea front-end, hea disain ja ĂŒldiselt olid head eeldused. Veel ĂŒks soodne mĂ€rk oli see, et meie sektsiooni moderaator tegi enne kontsertisaali sisenemist meiega selfie, siis kahtlustasin, et vĂ”ib-olla teab ta midagi))). Aga me ei teadnud pĂ€rast kaitset oma punkte, seega kulges aeg kuni meie meeskonna kuulutamiseni lavalt veidi pingeliselt. Lavale anti meile paber, millel oli kiri 500000 rubla, ja igale pakile kaasas kruus ja mobiiliaku. VĂ”idust ei saanud korralikult nautida ega tĂ€histada, sĂ”ime kiiresti Ă”htusööki ja sĂ”itsime taksoga rongile.

WAICO meeskond vÔidab finaalis
Moskvasse na returni intervjueerisid meid ajakirjanikud NTV-st. Filmisime terve tunni kvartali 44 kohvikus Poljankal, kuid uudistes nĂ€idati umbes 10 sekundi jagu. KĂŒll aga on see suur edusamm vĂ”rreldes piirkondliku etapiga.
KokkuvĂ”ttes vĂ”ib öelda, et Digitaalne lĂ€bimurre oli muljetavaldav, kuid kahtlusi tekitav. Ăritusele kulutati tohutult raha, ma pole kunagi nĂ€inud nii suurt hackathon'i. Kuid ma ei saa öelda, et see oli Ă”igustatud ja et see tĂ”eliselt tasus end Ă€ra. Suur osa osalejatest, kes olid Kazanis, olid lihtsalt nĂ€htamatud, kellel pole oskusi midagi ette vĂ”tta, ja keda kutsuti rekordite tegemiseks. Ma ei saa vĂ€ita, et finaalis oli konkurents kĂ”rgem kui piirkondlikul etapil. Samuti on mĂ”ned ĂŒlesanded kahtluse alla seadnud oma vÀÀrtuse ja kasulikkuse. Teatud probleeme oli tööstuslikul tasemel juba ammu lahendatud. Hiljem selgus, et mĂ”ned organisatsioonid, kes jĂ€lgisid radasid, ei olnud huvitatud nende lahendamisest. Ja see lugu pole veel lĂ”ppenud; igast rajast valiti liidrite meeskonnad eelakseleraatorisse, ning oodatakse, et neist saavad LĂBIMURDE ettevĂ”tted. Kuid ma ei ole veel valmis sellest kirjutama, vaatame, kuidas see vĂ€lja kukub.
Allikas: habr.com
