Digitālais lēciens - kā tas notika

Tas nav pirmais hackathon, ko es uzvaru, ne pirmais, par kuru rakstu, un tas noteikti nav pirmais posts Habrā, kas veltÄ«ts "Digitālajam pārbaumam". Bet es nevarēju nenosÅ«tÄ«t Å”o ziņu. Uzskatu, ka mana pieredze ir pietiekami unikāla, lai ar to dalÄ«tos. Iespējams, es esmu vienÄ«gais Å”ajā hackathon, kurÅ” uzvarējis reÄ£ionālo posmu un finālu dažādās komandās. Gribat uzzināt, kā tas notika? Laipni lÅ«dzam zem katra.

ReÄ£ionālais posms (Maskava, 27. — 28. jÅ«lijs, 2019. gads).

Reklāmu "Digitālais pārbaums" es pirmo reizi redzēju kaut kur Ŕī gada martā — aprÄ«lÄ«. Protams, es nevarēju garām noglaudÄ«t tādu lielu hackathon un pieteicos mājaslapā. Tur arÄ« iepazinos ar konkursu nosacÄ«jumiem un programmu. IzrādÄ«jās, lai piedalÄ«tos hackathon, ir jāiziet tieÅ”saistes tests, kas sākās 16. maijā. Un, iespējams, es bÅ«tu par to aizmirsis, jo vēstule ar atgādinājumu par testēŔanas sākumu man nenāca. Jāteic, ka VISAS VĒSTULES, kas man nāca no CP, regulāri nokļuva surogātu mapē. Lai gan es katru reizi spiedu uz pogas "nav surogāts". Nezinu, kā viņiem izdevās panākt Ŕādu rezultātu, man ar MailGun izsÅ«tīŔanu tā neizdevās. Un par tādu servisu kā isnotspam.com viņi, Ŕķiet, vispār nezina. Bet mēs novirzÄ«jāmies.

Par testēŔanas sākumu man atgādināja vienā no sanāksmēm sāktapu klubā, tur mēs arÄ« apspriedām komandas izveidi. Atverot testu sarakstu, vispirms sāku ar Javascript testu. Kopumā uzdevumi bija vairāk vai mazāk saprātÄ«gi (piemēram, kāds bÅ«s rezultāts, ja konsolē saskaitÄ«sim 1 + '1'). Bet no savas pieredzes es varētu teikt, ka Ŕādu testu izmantoÅ”anai darba vai komandas atlasē bÅ«tu ļoti daudz atrunu. Problēma ir tā, ka reālajā darbā programmētājs ar tādām lietām sastopas reti, un viņa spēja ātri rakstÄ«t kodu – Ŕīs zināŔanas nemaz nav saistÄ«tas, un apmācÄ«ties uz Ŕādām lietām intervijām var diezgan viegli (zinu no sevis). Kopumā es testu ātri izpildÄ«ju, dažos gadÄ«jumos pārbaudot sevi konsolē. Python testā uzdevumi bija aptuveni tāda paÅ”a veida, arÄ« pārbaudÄ«ju sevi konsolē, ar pārsteigumu ieguvu vairāk punktu nekā JS testā, lai gan uz Python es nekad profesionāli neesmu programmējis. Vēlāk sazinoties ar dalÄ«bniekiem, dzirdēju stāstus, kā spēcÄ«gi programmētāji testos ieguva zemas atzÄ«mes, kā daži cilvēki saņēma vēstules par to, ka viņi nav izturējuÅ”i atlasīŔanu uz CP, bet pēc tam viņus tomēr aicināja uz to. Ir skaidrs, ka testu izveidotāji, visticamāk, neko nebija dzirdējuÅ”i ne par testu teoriju, ne par to uzticamÄ«bu un derÄ«gumu, ne par to, kā tos apstiprināt, un ideja ar testiem sākotnēji bÅ«tu bijusi neveiksmÄ«ga, pat ņemot vērā galveno hackatona mērÄ·i. Un galvenais hakatona mērÄ·is, kā es vēlāk uzzināju, bija uzstāt Ginesa rekordu, un testi tam pretstatÄ«ja.

Kādā brÄ«dÄ« pēc testu nokārtoÅ”anas man piezvanÄ«ja, jautāja, vai es piedalīŔos, precizēja detaļas un pastāstÄ«ja, kā pievienoties komandai piemēroÅ”anas čatam. DrÄ«z es pievienojos čatam un Ä«si pastāstÄ«ju par sevi. Čatā valdÄ«ja pilnÄ«gs haoss, radās iespaids, ka organizatori bija piesaistÄ«juÅ”i daudz nejauÅ”u cilvēku, kuriem nav nekāda sakara ar IT. Daudzie "produktmenedžeri lÄ«meņa StÄ«vs Džobs" (Ä«stā frāze no viena dalÄ«bnieka stāsta) publicēja stāstus par sevi, bet normālu izstrādātāju pat nebija redzams. Bet man paveicās, un es drÄ«z pievienojos trim pieredzējuÅ”iem JS programmētājiem. Mēs satuvinājāmies jau hakatona laikā, tad arÄ« pievienojām komandai meiteni iedvesmas un organizācijas jautājumu risināŔanai. Jau neatceros, kāpēc, bet mēs izvēlējāmies tēmu "KiberizsardzÄ«bas apmācÄ«ba" un iekļuvām trasē "Zinātne un izglÄ«tÄ«ba 2". Es pirmo reizi atrados komandā no 4 spēcÄ«giem programmētājiem un pirmo reizi sajutu, cik viegli ir uzvarēt tādā sastāvā. Mēs ieradāmies neapbruņoti un lÄ«dz pusdienlaikam strÄ«dējāmies un nevarējām izlemt, ko darÄ«sim: mobilo aplikāciju vai tÄ«mekļa kārtÄ«bu. Jebkurā citā situācijā es domātu, ka tas ir fiasko. Mums visvairāk vajadzēja saprast, ar ko mēs bÅ«sim labāki par konkurentiem, jo apkārt bija daudz komandu, kas veidoja testus, spēles par kiberizsardzÄ«bu un tamlÄ«dzÄ«gas lietas. Ieskatoties tajā un meklējot mācÄ«bu programmas un aplikācijas, mēs nolemām, ka mÅ«su galvenā atŔķirÄ«bas iezÄ«me bÅ«s treniņi lugtā, kā ugunsgrēka signalizācija. Mēs izvēlējāmies veselu virkni elementu, kas mums Ŕķita interesanti realizēŔanai (reÄ£istrācija ar e-pasta un paroli pārbaudi hakeru datubāzēs, surogātpasta vēstuļu izsÅ«tīŔana (kā vēstules no pazÄ«stamiem bankām), sociālās inženierijas treniņi čatā). Kad mēs bijām izlēmuÅ”i, ko darām, un sapratuÅ”i, kā mēs varam izcelties, mēs diezgan ātri uzrakstÄ«jām pilnvērtÄ«gu tÄ«mekļa aplikāciju, un es uzstājos nesavā rakstura loma kā aizmugures izstrādātājs. Tādā veidā mēs pārliecinoÅ”i uzvarējām savā trasē un kopā ar vēl trim komandām iekļuvām finālā Kazaņā. Vēlāk Kazaņā uzzināju, ka iekļūŔana finālā bija fiktÄ«va, es tur satiku daudz pazÄ«stamu seju no komandām, kuras Å”o atlasi nenokārtojās. Mums pat interviju veica žurnālisti no 1. kanāla. PatiesÄ«bā, no reportāžas tikai uz 1 sekundi parādÄ«ja mÅ«su aplikāciju.

Digitālais lēciens - kā tas notika
Snowed komanda, ar kuru es uzvarēju reģionālo posmu

Fināls (Kazaņa, 27. – 29. septembris 2019. gads)

Tomēr vēlāk sākās neveiksmes. Visi programmētāji no Snowed komandas aptuveni mēneÅ”a laikā viens pēc otra paziņoja, ka nevarēs doties uz Kazāņu finālā. Es sāku domāt par jaunas komandas meklēŔanu. Sākumā es rakstÄ«ju paziņojumu kopējā Russian Hack Team čatā, un, lai gan tur saņēmu diezgan daudz atsauksmju un piedāvājumu pievienoties komandām, neviena no tām mani neaizrāva. Bija nesabalansētas komandas, piemēram, produktu vadÄ«tājs, mobilais izstrādātājs, front-end izstrādātājs, kas lÄ«dzÄ«gi atgādina leļļu stāstu par gulbiem, vēžiem un lÄ«daci. Bija arÄ« komandas, kas man nederēja tehnoloÄ£iju dēļ (piemēram, ar mobilā lietojuma izstrādi uz Flutter). Beidzot, čatā, kuru uzskatÄ«ju par nekvalitatÄ«vu (tieÅ”i tas, kur notika komandu atlase reÄ£ionālajam posmam), tika publicēts paziņojums par meklēŔanu front-end izstrādātājam, un es uzrakstÄ«ju tÄ«ri pēc nejauŔības. Jauko puiÅ”i izrādÄ«jās vadoÅ”ie studenti no skoltēka un uzreiz piedāvāja satikties un iepazÄ«ties. Man tas patika, komandas, kas dod priekÅ”roku iepazÄ«ties tieÅ”i hackathonā, parasti mani baida ar motivācijas trÅ«kumu. Mēs satikāmies ā€žGrablēsā€ Pjatņickajā. PuiÅ”i izskatÄ«jās saprātÄ«gi, motivēti, pārliecināti par sevi un uzvaru, un es pieņēmu lēmumu tieÅ”i tur. Mēs vēl nezinājām, kādi bÅ«s trases un uzdevumi finālā, bet pieņēmām, ka izvēlēsimies kaut ko saistÄ«tu ar MaŔīnmācīŔanos. Manas uzdevums bÅ«s uzrakstÄ«t administrācijas paneli Å”im projektam, tāpēc es iepriekÅ” sagatavojos paraugu, balstoties uz antd-admin.
Uz Kazāņu es devos bez maksas, pateicoties organizatoriem. Jāteic, ka čatos un blogos jau tika izteikta diezgan liela neapmierinātÄ«ba saistÄ«bā ar biļeÅ”u iegādi un kopumā fināla organizāciju, nepārsniegÅ”u to visu Å”eit.

Iergājoties Kazan Expo, reÄ£istrējoties (man radās nelielas problēmas ar identifikatora saņemÅ”anu) un brokastojot, mēs devāmies izvēlēties trasi. Uz svinÄ«go atklāŔanu, kur piedalÄ«jās oficiālas personas, mēs aizgājām tikai uz desmit minÅ«tēm. PatiesÄ«bā mums jau bija priekÅ”roka pēc trasēm, bet mÅ«s interesēja detaļas. Trase Nr. 18 (Rostelecom) izrādÄ«jās, ka jāizstrādā mobilā lietotne, lai gan tās Ä«sajā aprakstā tas nebija minēts. Galvenā izvēle bija starp trasi Nr. 8, kas attiecās uz cauruļvadu defektoskopiju, PŠŠž "Gazprom neft" un trasi Nr. 13, Perinatālajiem centriem, Krievijas Federācijas RevÄ«zijas palātu. Abās situācijās bija nepiecieÅ”ams Data Science, un abās varēja pievienot tÄ«mekli. Trase Nr. 13 mÅ«s apturēja ar to, ka uzdevums Data Science bija diezgan vājÅ”, bija jāsavāc dati no Rosstat, un nebija skaidrs, vai ir nepiecieÅ”ama administratÄ«vā saskarne. Turklāt paÅ”as uzdevuma vērtÄ«bu radÄ«ja Å”aubas. Beigās mēs nolēmām, ka kā komanda mēs vairāk esam vērsti uz 8. trasi, jo puiÅ”iem jau bija pieredze lÄ«dzÄ«gu uzdevumu risināŔanā. Sākām ar to, ka izstrādājām scenāriju, kā lietotājs izmantos mÅ«su lietotni. IzrādÄ«jās, ka mums bÅ«s divi lietotāju veidi: tehniskie speciālisti, kuri interesējas par tehnisko informāciju, un vadÄ«tāji, kuriem bija nepiecieÅ”ami finanÅ”u rādÄ«tāji. Kad radās skaidrs priekÅ”stats par scenāriju, kļuva skaidrs, ko darÄ«t frontē, ko zÄ«mēt dizainerim un kādi metodes nepiecieÅ”ami backend'ā, bija iespējams sadalÄ«t uzdevumus. Lomu sadalÄ«jums komandā bija Ŕāds: divi cilvēki risināja ML ar datiem, ko ieguvuÅ”i no tehniskajiem ekspertiem, viens cilvēks rakstÄ«ja backend Python valodā, es izstrādāju frontend React un antd, dizainers zÄ«mēja saskarnes. Mēs pat sēdējām tā, lai mums bÅ«tu ērtāk sazināties, risinot savus uzdevumus.

Pirmās dienas pagāja praktiski nemanāmi. Sarunās ar tehniskajiem ekspertiem noskaidrojās, ka Å”o uzdevumu viņi ("Gazprom neft") jau ir atrisinājuÅ”i, viņiem vienkārÅ”i bija interesanti, vai to var izdarÄ«t labāk. Nesaku, ka tas pazemināja motivāciju, bet palika neliels aizkaitinājums. Pārsteidza, ka naktÄ« sekciju moderatori atzÄ«mēja strādājoŔās komandas (kā viņi teica, statistikai), parasti hakatonos tas netiek praktizēts. No rÄ«ta mums jau bija gatavs fronta prototips, daži sākumi beka, pirmā ML risinājuma versija. Kopumā jau bija ko rādÄ«t ekspertiem. Otrajā dienas pusē dizainers bija uzzÄ«mējis jau acÄ«mredzami vairāk interfeisu, nekā es varētu bÅ«t uzrakstÄ«jis, un pārgāja pie prezentācijas izveides. Sestdiena tika veltÄ«ta rekorda reÄ£istrācijai, un no rÄ«ta visus, kas strādāja zālē, izsvieda uz koridora, pēc tam ieeja un izeja no zāles notika, izmantojot identifikācijas kartes, turklāt dienā varēja iziet ne vairāk kā uz stundu. Nesaku, ka tas radÄ«ja mums kādas bÅ«tiskas neērtÄ«bas, lielāko daļu dienas mēs tomēr sēdējām un strādājām. Uzturs tieŔām bija ļoti nabadzÄ«gs, pusdienās mēs saņēmām glāzi buljona, pÄ«rāgu un ābolu, bet atkal, tas mÅ«s pārāk nesatrauca, mēs bijām koncentrējuÅ”ies uz citu lietu.

Periodiski tika izsniegtas red bull, divas kannas uz rokas, tas bija ļoti lietderÄ«gi. Ilgu laiku izmēģināts hackathon recepts enerÄ£ijas dzēriens + kafija ļāva kodēt visu nakti un nākamo dienu, jÅ«toties modram kā stikla gabals. Otrajā dienā mēs, faktiski, vienkārÅ”i pievienojām jaunus elementus lietotnei, izstrādājām finansu rādÄ«tāju aprēķinus, sākām izstrādāt grafikus par defektu statistiku maÄ£istrālēs. Kā tāda code review mÅ«su track nebija, eksperti novērtēja problēmas risināŔanu kā kaggle.com, pēc prognozes precizitātes, un frontend tika novērtēts vizuāli. MÅ«su ML risinājums izrādÄ«jās visprecÄ«zākais, iespējams, tieÅ”i tas mums palÄ«dzēja izsisties lÄ«deros. NaktÄ« no svētdienas uz svētdienu mēs strādājām lÄ«dz diviem naktÄ«, pēc tam devāmies izgulēties dzÄ«voklÄ«, ko izmantojām kā bāzi. Mēs gulējām apmēram 5 stundas, svētdien plkst. 9 no rÄ«ta jau bijām Kazan Expo. Es kaut ko steidzÄ«gi piestrādāju, bet lielāko daļu laika aizņēma sagatavoÅ”anās priekÅ”sargu aizsardzÄ«bai. PriekÅ”sardzÄ«bas notika divās plÅ«smās, pirms divām ekspertu komandām, mums lÅ«dza uzstāties pēdējiem, jo abas ekspertu komandas vēlējās mÅ«s dzirdēt. Mēs to uztveram kā labu zÄ«mi. Lietotni parādÄ«jām no mana klēpjdatora, no palaista dev servera, normāli uzlikt lietotni mēs nesanāca, tomēr tā darÄ«ja visi.

Kopumā viss gāja labi, mums norādÄ«ja uz momentiem, kuros mēs varējām uzlabot mÅ«su lietotni, un laikā lÄ«dz aizsardzÄ«bai mēs pat mēģinājām ko no Å”iem komentāriem realizēt. AizsardzÄ«ba arÄ« notika pārsteidzoÅ”i gludi. Pēc priekÅ”sardzÄ«bas mēs zinājām, ka punktos esam priekŔā, mēs vadÄ«jāmies pēc risinājuma precizitātes, mums bija labs frontend, labs dizains un, kopumā, labas nojautas. Vēl viens labvēlÄ«gs zÄ«me bija tas, ka meitene moderatore no mÅ«su sekcijas, pirms ieieÅ”anas koncertzālē, izveidoja selfie ar mums, tajā brÄ«dÄ« man radās aizdomas, ka viņa, iespējams, zina kaut ko))). Bet mēs savus punktus pēc aizsardzÄ«bas nezinājām, tāpēc laiks lÄ«dz brÄ«dim, kad mÅ«su komandu izsludināja no skatuves, pagāja nedaudz saspringti. Uz skatuves mums pasniedza kartonku ar uzrakstu 500000 rubļu un katram paciņu ar krÅ«zi un mobilā akumulatoru. IzbaudÄ«t uzvaru un normāli to atzÄ«mēt neizdevās, mēs ātri paēdām vakariņas un devāmies ar taksi uz vilcienu.

Digitālais lēciens - kā tas notika
WAICO komanda uzvar finālā

At our return to Moscow, we were interviewed by journalists from NTV. They filmed for a whole hour on the second floor of the cafƩ "Kvartal 44" on Polyanka, but only about 10 seconds were shown on the news. Still, it's a strong progress compared to the regional stage.

To summarize the overall impressions from Digital Breakthrough, they are as follows. A staggering amount of money was spent on the event; I've never seen hackathons of this scale before. However, I can't say it's justified or that it will truly pay off. A significant part of the participants who arrived in Kazan were merely party-goers who can't do anything with their hands and were brought in to set a record. I can't say the competition in the finals was stronger than at the regional stage. Additionally, the value and usefulness of some track tasks are questionable. Some problems have long been solved at the industrial level. Later, it turned out that some organizations leading the tracks were not even interested in solving them. And this story is not over; the leading teams from each track were selected for the pre-accelerator, and it is expected that they will produce DISRUPTIVE startups. But I'm not ready to write about this yet; let's see what comes of it.

Avots: habr.com

Iegādājieties uzticamu tÄ«mekļa hostingu ar DDoS aizsardzÄ«bu, VPS VDS serveriem šŸ”„ Iegādājieties uzticamu tÄ«mekļa hostingu ar DDoS aizsardzÄ«bu, VPS VDS serveriem | ProHoster