Digitális áttörés – hogyan történt

Nem ez az első hackathon, amelyet megnyerek, és nem az első írás, és nem ez az első bejegyzés a Habré-n, amelyet a „Digitális áttörésnek” szentelnek. De nem tudtam nem írni. Tapasztalatamat elég egyedinek tartom ahhoz, hogy megosszam. Valószínűleg én vagyok az egyetlen ember ezen a hackathonon, aki megnyerte a regionális szakaszt és a döntőt különböző csapatok tagjaként. Szeretné tudni, hogyan történt ez? Üdvözöljük a macskában.

Regionális szakasz (Moszkva, 27. július 28-2019.).

Valahol idén március-áprilisban láttam először a „Digitális áttörés” hirdetését. Természetesen nem hagyhattam ki egy ekkora hackathont és regisztráltam az oldalra. Ott megismerkedtem a verseny feltételeivel és programjával. Kiderült, hogy a hackathonra való eljutáshoz egy online tesztet kell teljesíteni, amely május 16-án kezdődött. És talán kényelmesen meg is feledkeztem volna róla, mivel nem kaptam a tesztelés kezdetére emlékeztető levelet. És meg kell mondanom, hogy a jövőben MINDEN LEVÉL, ami a CPU-tól érkezett hozzám, következetesen a spam mappába került. Annak ellenére, hogy minden alkalommal rákattintottam a „nem kifogásolható” gombra. Nem tudom, hogy sikerült ilyen eredményt elérniük, nekem nem jött be a MailGun-on való levelezés. És úgy tűnik, hogy a srácok egyáltalán nem tudnak az olyan szolgáltatások létezéséről, mint az isnotspam.com. De elkalandozunk.

Az egyik találkozón eszembe jutott a tesztelés kezdete startup klub, ott megbeszéltük a csapat kialakítását is. Miután megnyitottam a tesztek listáját, először a Javascript teszthez ültem. Általánosságban elmondható, hogy a feladatok többé-kevésbé megfelelőek voltak (például mi lesz az eredmény, ha hozzáadunk 1 + '1'-et a konzolban). De tapasztalataim szerint az ilyen teszteket nagyon nagy fenntartásokkal alkalmaznám állásba vagy csapatba toborzáskor. Az a helyzet, hogy a valós munkában egy programozó ritkán találkozik ilyesmivel, gyors kód hibakeresési képességével - ez a tudás semmiféle összefüggésben nem áll egymással, és az ilyenekre elég könnyen lehet edzeni az interjúkhoz (tudom magamtól). Általában elég gyorsan átkattintottam a tesztet, néhol a konzolban ellenőriztem magam. A python tesztben nagyjából azonos típusúak voltak a feladatok, a konzolban is kipróbáltam magam, és meglepődtem, hogy több pontot szereztem, mint JS-ben, bár Pythonban még sosem programoztam profin. Később, a résztvevőkkel folytatott beszélgetések során hallottam történeteket arról, hogy az erős programozók alacsony pontszámot értek el a teszteken, hogy egyesek leveleket kaptak arról, hogy nem mentek át a CPU kiválasztási folyamatán, aztán mégis meghívták őket. Nyilvánvaló, hogy ezeknek a teszteknek az alkotói valószínűleg semmit sem hallottak róluk tesztelmélet, sem a megbízhatóságukról és érvényességükről, sem a tesztelésükről, és a tesztekkel való ötlet már az elején kudarc lett volna, még ha nem is vesszük figyelembe a hackathon fő célját. A hack fő célja pedig, mint később megtudtam, a Guinness-rekord felállítása volt, és a tesztek ennek ellentmondtak.

Valamikor a tesztek sikeres letétele után felhívtak, megkérdezték, hogy részt vennék-e, tisztázták a részleteket, és elmondták, hogyan tudok belépni a csapatválasztási chatbe. Hamarosan beléptem a chatbe, és röviden írtam magamról. A chaten teljes szemétség zajlott, úgy tűnt, hogy a szervezők sok véletlenszerű embernek hirdettek, akiknek semmi közük az informatikához. Számos termékmenedzser „Steve Jobs szintjén” (valódi kifejezés az egyik résztvevő beadványából) posztolt sztorikat magáról, és a normál fejlesztők nem is látszottak. De szerencsém volt, és hamarosan csatlakoztam három tapasztalt JS programozóhoz. Már a hackathonon találkoztunk, majd egy lánnyal bővült a csapat inspirációra, szervezési problémák megoldására. Nem emlékszem miért, de vettük a „Kiberbiztonsági képzés” témát, és beépítettük a „Tudomány és oktatás 2” pályájába. Először találtam magam egy 4 erős programozóból álló csapatban, és először éreztem, milyen könnyű nyerni egy ilyen összeállításban. Felkészületlenül jöttünk, ebédig vitatkoztunk, és nem tudtuk eldönteni, mit csináljunk: mobilalkalmazást vagy webeset. Minden más helyzetben azt hittem volna, hogy ez kudarc. Számunkra az volt a legfontosabb, hogy megértsük, miben leszünk jobbak versenytársainknál, mert rengeteg csapat volt körülöttünk, akik vágóteszteket, kiberbiztonsági játékokat és hasonlókat végeztek. Miután megnéztük ezt, és átkerestük a képzési programokat és alkalmazásokat, úgy döntöttünk, hogy a fő megkülönböztető tényezőnk a tűzoltó gyakorlatok lesznek. Számos olyan funkciót választottunk ki, amelyek megvalósítását érdekesnek találtuk (regisztráció e-mail-címmel és jelszó-ellenőrzéssel a hacker-adatbázisok ellen, adathalász e-mailek küldése (ismert bankoktól származó levelek formájában), social engineering képzés chatben). Miután eldöntöttük, hogy mit csinálunk, és megértettük, hogyan tudunk kiemelkedni, gyorsan megírtunk egy teljes értékű webalkalmazást, és én játszottam a szokatlan háttérfejlesztő szerepet. Így magabiztosan nyertük meg pályánkat, és három másik csapat tagjaként bejutottunk a kazanyi döntőbe. Később Kazanyban megtudtam, hogy a döntőbe jutás kitaláció volt, ott sok ismerős arccal találkoztam azon csapatokból, akik nem jutottak át a válogatón. Még az 1-es csatorna újságírói is interjúvoltak velünk. Az erről készült riportban azonban csak 1 másodpercig volt látható az alkalmazásunk.

Digitális áttörés – hogyan történt
Snowed csapat, ahol megnyertem a regionális szakaszt

Döntő (Kazan, 27. szeptember 29–2019.)

De aztán kezdődtek a kudarcok. A Snowed csapat összes programozója körülbelül egy hónapon belül egymás után jelentette, hogy nem tud Kazanyba menni a döntőbe. És arra gondoltam, hogy új csapatot keresek. Először a Russian Hack Team általános chaten telefonáltam, és bár ott elég sok választ és felkérést kaptam, hogy csatlakozzam csapatokhoz, egyik sem keltette fel a figyelmemet. Voltak kiegyensúlyozatlan csapatok, például termék, mobil fejlesztő, front-end, hattyúra emlékeztető, rák és csuka egy meséből. Voltak olyan csapatok is, amelyek technológiailag nem feleltek meg nekem (például a Flutter mobilalkalmazásának fejlesztésével). Végül egy általam szemetesnek tartott csevegésben (ugyanaz a VKontakte, ahol a regionális szakaszra a csapatok kiválasztása zajlott) felkerült egy hirdetés a csapat frontenderének kereséséről, és én teljesen véletlenszerűen írtam. A srácokról kiderült, hogy a Skoltech végzős hallgatói, és azonnal felajánlották, hogy találkoznak és ismerkednek. Tetszett, azok a csapatok, amelyek inkább egy hackathonon szeretnek azonnal megismerni egymást, általában motiválatlanságukkal riasztanak. Találkoztunk a „Rake”-ben a Pyatnitskaya-n. A srácok okosnak, motiváltnak, önmagukban és a győzelemben magabiztosnak tűntek, én pedig ott döntöttem. Még nem tudtuk, hogy milyen pályák és feladatok lesznek a döntőben, de feltételeztük, hogy valami gépi tanulással kapcsolatos dolgot választunk. Az én feladatom pedig az lesz, hogy írjak ehhez az ügyhöz egy adminisztrátort, ezért ehhez előre elkészítettem egy sablont az antd-admin alapján.
Ingyen mentem Kazanyba, a szervezők költségén. Azt kell mondanom, hogy a chaten, blogokon már eddig is sok elégedetlenség hangzott el a jegyvásárlással és általában a döntő lebonyolításával kapcsolatban, nem fogom újra elmesélni.

Miután megérkeztünk a Kazan Expóra, regisztráltunk (kicsit gondom volt a kitűzővel) és megreggeliztünk, elmentünk pályát választani. Csak az ünnepélyes megnyitóra mentünk el, ahol az illetékesek beszéltek, körülbelül 10 percig, sőt, már megvoltak a kedvenc számaink, de érdekeltek minket a részletek. A 18-as pályán (Rostelecom) például kiderült, hogy mobilalkalmazást kell fejleszteni, bár ez nem szerepelt a rövid leírásban. A fő választást a Gazprom Neft PJSC 8. számú csővezeték defektoszkópia és a 13. számú Perinatális központok, az Orosz Föderáció Számviteli Kamara között választottuk. Mindkét esetben szükség volt a Data Science-re, és mindkét esetben hozzá lehetett volna adni a webet. A 13-as pályán az állított meg minket, hogy az ottani Data Science feladat elég gyenge volt, elemezni kellett a Rosstatot, és nem derült ki, hogy kell-e admin panel. A feladat értéke pedig kétséges volt. Végül úgy döntöttünk, hogy csapatként alkalmasabbak vagyunk a 8-as pályára, főleg, hogy a srácoknak már volt tapasztalatuk hasonló problémák megoldásában. Kezdtük azzal, hogy végiggondoltuk azt a forgatókönyvet, amelyben az alkalmazásunkat a végfelhasználó használja. Kiderült, hogy kétféle felhasználónk lesz: a technikai információk iránt érdeklődő technikusok és a pénzügyi mutatókra szoruló menedzserek. Amikor felmerült a forgatókönyv ötlete, világossá vált, hogy mit kell tenni az előoldalon, mit kell rajzolnia a tervezőnek, és milyen módszerekre van szükség a hátoldalon, lehetővé vált a feladatok elosztása. A csapatban a feladatkörök a következőképpen oszlottak meg: ketten technikai szakértőktől kapott adatokkal oldották meg az ML-t, egy fő Pythonban írta a backendet, én Reactban és Antd-ben írtam a front endet, a tervező megrajzolta a felületeket. Le is ültünk, hogy kényelmesebben kommunikáljunk a problémáink megoldása közben.

Az első nap szinte észrevétlenül elrepült. A műszaki szakemberekkel folytatott kommunikáció során kiderült, hogy ők (Gazprom Neft) már megoldották ezt a problémát, csak arra voltak kíváncsiak, hogy lehet-e jobban megoldani. Nem mondom, hogy ez csökkentette a motivációmat, de maradványt hagyott maga után. Meglepődtem, hogy éjszaka a szekció moderátorai feljegyezték a dolgozó csapatokat (ahogy a statisztikákhoz mondták), ezt általában nem gyakorolják a hackathonokon. Reggelre megvolt az előlap prototípusa, a hátul néhány alapeleme és az első ML megoldás. Általában már volt mit mutatni a szakértőknek. Szombat délután a tervező nyilvánvalóan több felületet rajzolt, mint amennyi időm lenne kódolni, és áttért prezentáció készítésére. Szombaton a rekord rögzítésére volt szánva, reggel pedig mindenkit a teremben dolgozókat kirúgtak a folyosóra, majd a teremből való ki- és belépés jelvényekkel történt, és tovább nem lehetett távozni. mint egy óra naponta. Nem mondom, hogy ez jelentős kényelmetlenséget okozott nekünk, a nap nagy részében még mindig ültünk és dolgoztunk. Az étel valóban nagyon csekély volt, ebédre kaptunk egy pohár húslevest, egy pitét és egy almát, de ez megint nem nagyon idegesített, másra koncentráltunk.

Időnként kiadtak red bullt, két konzervdobozt kézenként, ami nagyon hasznos volt. A hackathonokon régóta tesztelt energiaital+kávé recept lehetővé tette, hogy egész éjszaka és másnap is kódoljak, vidám voltam, mint egy pohár. A második napon valójában egyszerűen új funkciókat adtunk hozzá az alkalmazáshoz, kiszámítottuk a pénzügyi mutatókat, és elkezdtük megjeleníteni az autópályák hibáinak statisztikáit. A mi pályánkon nem volt kódellenőrzés, mint olyan, a szakértők a kaggle.com stílusban, az előrejelzés pontossága alapján értékelték a probléma megoldását, az előlapot pedig vizuálisan. A mi ML megoldásunk bizonyult a legpontosabbnak, talán ez tette lehetővé, hogy vezetőkké váljunk. Szombatról vasárnapra éjjel hajnali 2-ig dolgoztunk, majd a bázisnak használt lakásba mentünk aludni. Kb. 5 órát aludtunk, vasárnap reggel 9-kor már a Kazan Expón voltunk. Kapkodva készítettem elő valamit, de az idő nagy része az elővédésre való felkészüléssel telt. Az elővédések 2 folyamban, két szakértői gárda előtt zajlottak, utoljára szólítottak fel bennünket, mivel mindkét szakértői csoport meg akart hallgatni minket. Ezt jó jelnek vettük. Az alkalmazás a laptopomról, egy futó fejlesztői szerverről jelent meg, nem volt időnk megfelelően telepíteni az alkalmazást, de mindenki így tett.

Összességében minden jól ment, pontokat kaptunk, amelyekben javítani lehet a pályázatunkon, és a védés előtti időben meg is próbáltuk ezeket a megjegyzéseket megvalósítani. A védekezés is meglepően gördülékenyen ment. Az elővédés eredményei alapján tudtuk, hogy pontok tekintetében előrébb járunk, megoldási pontosságban az élen járunk, jó az élünk, jó a dizájnunk, és összességében is jó volt. érzéseket. Kedvező jel volt még, hogy rovatunk moderátorlánya a koncertterembe való belépés előtt készített velünk egy szelfit, és akkor gyanítottam, hogy tud valamit))). De a védekezés után nem tudtuk a pontszámainkat, így kissé feszülten telt el az idő, amíg a szakaszról kihirdették csapatunkat. A színpadon 500000 XNUMX rubel feliratú kartont adtak át, és mindenki kapott egy táskát egy bögrével és egy mobiltelefon akkumulátorral. Nem sikerült kiélveznünk és megünnepelnünk a győzelmet, gyorsan megvacsoráztunk és taxival mentünk a vonathoz.

Digitális áttörés – hogyan történt
A WAICO csapat nyeri a döntőt

Moszkvába visszatérve az NTV újságírói interjút készítettek velünk. Egy egész órát forgattunk a Kvartal 44 kávézó második emeletén Polyankán, de csak 10 másodpercet mutattak a hírek, végül is erős előrelépés a regionális szakaszhoz képest.

Ha összefoglaljuk a Digital Breakthrough általános benyomásait, akkor azok a következők. Nagyon sok pénzt költöttek a rendezvényre, ekkora hackathont még nem láttam. De nem mondhatom, hogy ez indokolt, és valóban kifizetődik. A Kazanyba érkező résztvevők jelentős része egyszerűen bulizni nem tudott saját kezűleg semmit, és rekordot kellett döntenie. Nem mondhatom, hogy a döntőben magasabb volt a verseny, mint a regionális szakaszon. Emellett egyes pályák feladatainak értéke és hasznossága is kérdéses. Néhány probléma ipari szinten már régóta megoldódott. Mint később kiderült, egyes, a nyomokat lebonyolító szervezetek nem voltak érdekeltek a megoldásukban. És ennek a történetnek még nincs vége, minden pályáról beválogatták az élcsapatokat az előgyorsítóba, és a feltételezések szerint belőlük lesznek ÁTTÖRŐ startupok. De még nem állok készen arra, hogy erről írjak, meglátjuk, mi sül ki belőle.

Forrás: will.com

Hozzászólás