Digitalt genombrott – hur det gick till

Det här är inte det första hackathon jag vinner, inte det första om skrivande, och detta är inte det första inlägget på Habré dedikerat till "Digitalt genombrott". Men jag kunde inte låta bli att skriva. Jag anser att min erfarenhet är unik nog att dela med mig av. Jag är förmodligen den enda personen på detta hackathon som vann den regionala scenen och finalerna som en del av olika lag. Vill du veta hur detta hände? Välkommen till katten.

Regional scen (Moskva, 27 - 28 juli 2019).

Jag såg första gången en annons för "Digital Breakthrough" någonstans i mars-april i år. Naturligtvis kunde jag inte missa ett så stort hackathon och registrerade mig på sajten. Där satte jag mig in i tävlingens förutsättningar och program. Det visade sig att man för att komma till hackathon måste klara ett onlinetest som började den 16 maj. Och kanske skulle jag bekvämt ha glömt det, eftersom jag inte fick ett brev som påminner mig om att testet började. Och, jag måste säga, i framtiden hamnade ALLA BREV som kom till mig från CPU:n konsekvent i skräppostmappen. Även om jag klickade på "inte stötande"-knappen varje gång. Jag vet inte hur de lyckades uppnå ett sådant resultat; det fungerade inte för mig med utskick på MailGun. Och killarna verkar inte veta alls om existensen av tjänster som isnotspam.com. Men vi avviker.

Jag blev påmind om teststarten vid ett av mötena startup klubb, där diskuterade vi också bildandet av laget. Efter att ha öppnat listan med tester satte jag mig först till Javascript-testet. I allmänhet var uppgifterna mer eller mindre tillräckliga (som vad resultatet blir om du lägger till 1 + '1' i konsolen). Men av min erfarenhet skulle jag använda sådana tester när jag rekryterar till ett jobb eller ett team med mycket stora reservationer. Faktum är att i verkligt arbete stöter en programmerare sällan på sådana saker, med sin förmåga att snabbt felsöka kod - denna kunskap korrelerar inte på något sätt, och du kan träna för sådana saker för intervjuer ganska enkelt (jag vet från mig själv). I allmänhet klickade jag igenom testet ganska snabbt, i vissa fall kollade jag själv i konsolen. I pythontestet var uppgifterna av ungefär samma typ, jag testade mig även i konsolen, och blev förvånad över att få fler poäng än i JS, även om jag aldrig har programmerat professionellt i Python. Senare, i samtal med deltagare, fick jag höra historier om hur starka programmerare fick låga poäng på tester, hur en del personer fick brev om att de inte klarade urvalsprocessen för processorn, och sedan blev de inbjudna till det ändå. Det är tydligt att skaparna av dessa test med största sannolikhet inte har hört något om testteori, varken om deras tillförlitlighet och giltighet, eller om hur man testar dem, och idén med tester hade varit ett misslyckande från första början, även om vi inte tog hänsyn till huvudmålet med hackathon. Och huvudmålet med hacket, som jag lärde mig senare, var att sätta ett Guinness-rekord, och testerna motsade det.

Vid något tillfälle efter att ha klarat testerna ringde de mig, frågade om jag skulle delta, förtydligade detaljerna och berättade för mig hur jag skulle komma in i chatten för att välja ett lag. Snart gick jag in i chatten och skrev kort om mig själv. Det var fullständigt skräp på gång i chatten, det verkade som att arrangörerna annonserade till många slumpmässiga personer som inte hade något med IT att göra. Många produktchefer "på nivå med Steve Jobs" (en riktig fras från en deltagares bidrag) postade berättelser om sig själva, och normala utvecklare var inte ens synliga. Men jag hade tur och gick snart med tre erfarna JS-programmerare. Vi träffade varandra redan på hackathonet och sedan lade vi till en tjej i laget för inspiration och lösa organisatoriska frågor. Jag minns inte varför, men vi tog ämnet "Cybersäkerhetsutbildning" och inkluderade det i "Science and Education 2"-spåret. För första gången befann jag mig i ett team av 4 starka programmerare och för första gången kände jag hur lätt det var att vinna i en sådan komposition. Vi kom oförberedda och bråkade fram till lunch och kunde inte bestämma oss för vad vi skulle göra: en mobilapplikation eller en webb. I vilken annan situation som helst skulle jag ha trott att det var ett misslyckande. Det viktigaste för oss var att förstå hur vi skulle vara bättre än våra konkurrenter, eftersom det fanns många team runt omkring som höll på med tester, cybersäkerhetsspel och liknande. Efter att ha tittat på detta och googlat utbildningsprogram och appar bestämde vi oss för att vår främsta skillnad skulle vara brandövningar. Vi valde ut ett antal funktioner som vi fann intressanta att implementera (registrering med e-post- och lösenordsverifiering mot hackerdatabaser, skicka nätfiskemail (i form av brev från välkända banker), social ingenjörsutbildning i chatt). Efter att ha bestämt oss för vad vi gjorde och förstått hur vi kunde sticka ut skrev vi snabbt en fullfjädrad webbapplikation och jag spelade den ovanliga rollen som backend-utvecklare. Därmed vann vi med säkerhet vår bana och, som en del av tre andra lag, kvalificerade vi oss till finalen i Kazan. Senare, i Kazan, fick jag veta att uttagningen till finalen var en fiktion, jag träffade där många bekanta ansikten från lagen som inte klarade uttagningen. Vi blev till och med intervjuade av journalister från Kanal 1. Men i rapporten från den visades vår applikation bara i 1 sekund.

Digitalt genombrott – hur det gick till
Snöat lag, där jag vann den regionala etappen

Final (Kazan, 27–29 september 2019)

Men sedan började misslyckandena. Alla programmerare från Snowed-teamet inom ungefär en månad, en efter en, rapporterade att de inte skulle kunna åka till Kazan för finalen. Och jag funderade på att hitta ett nytt lag. Först ringde jag i den allmänna chatten för det ryska hackteamet, och även om jag där fick ganska många svar och inbjudningar att gå med i team, fångade ingen av dem min uppmärksamhet. Det var obalanserade team, som produkt, mobil utvecklare, front-end, som påminde om en svan, kräftor och gädda från en fabel. Det fanns även team som inte var lämpliga för mig tekniskt sett (till exempel med utvecklingen av en mobilapplikation i Flutter). Slutligen, i en chatt som jag ansåg trashig (samma VKontakte där valet av lag för den regionala scenen ägde rum), postades en annons om sökandet efter en frontender för laget, och jag skrev rent slumpmässigt. Killarna visade sig vara doktorander på Skoltech och erbjöd sig genast att träffas och bekanta sig. Jag gillade det, lag som föredrar att lära känna varandra direkt på ett hackathon brukar alarmera mig med sin bristande motivation. Vi träffades på "Rake" på Pyatnitskaya. Killarna verkade smarta, motiverade, säkra på sig själva och i seger, och jag tog beslutet direkt. Vi visste ännu inte vilka spår och uppgifter som skulle vara i finalen, men vi antog att vi skulle välja något relaterat till Machine Learning. Och min uppgift blir att skriva en admin för den här frågan, så jag förberedde en mall för detta i förväg baserat på antd-admin.
Jag åkte till Kazan gratis, på arrangörernas bekostnad. Jag måste säga att det redan har uttryckts mycket missnöje i chattar och bloggar angående köp av biljetter och i allmänhet arrangemanget av finalen, jag kommer inte att återberätta det hela.

Efter att ha kommit till Kazan Expo, registrerat (jag hade lite problem med att få ett märke) och ätit frukost, gick vi för att välja ett spår. Vi gick bara till den stora invigningen, där funktionärerna talade, i cirka 10 minuter. Vi hade faktiskt redan våra favoritlåtar, men vi var intresserade av detaljerna. I spår nr 18 (Rostelecom) visade det sig till exempel att det var nödvändigt att utveckla en mobilapplikation, även om detta inte fanns i den korta beskrivningen. Vi gjorde huvudvalet mellan spår nr 8 defektoskopi av rörledningar, Gazprom Neft PJSC och spår nr 13 perinatala centra, Ryska federationens kontokammare. I båda fallen behövdes Data Science och i båda fallen kunde webben ha lagts till. I spår nr 13 stoppades vi av att uppgiften Data Science där var ganska svag, det var nödvändigt att analysera Rosstat och det var inte klart om en adminpanel behövdes. Och själva värdet av uppgiften var ifrågasatt. Till slut bestämde vi oss för att vi som lag var mer lämpade för spår 8, särskilt eftersom killarna redan hade erfarenhet av att lösa liknande problem. Vi började med att tänka igenom scenariot där vår applikation skulle användas av slutanvändaren. Det visade sig att vi skulle ha två typer av användare: tekniker som var intresserade av teknisk information och chefer som behövde finansiella indikatorer. När en idé om scenariot dök upp, blev det klart vad man skulle göra på fronten, vad designern skulle rita och vilka metoder som behövdes på baksidan, blev det möjligt att fördela uppgifter. Ansvaret i teamet fördelades på följande sätt: två personer löste ML med data från tekniska experter, en person skrev backend i Python, jag skrev frontend i React och Antd, designern ritade gränssnitten. Vi satte oss till och med ner för att det skulle vara bekvämare för oss att kommunicera samtidigt som vi löser våra problem.

Första dagen flög nästan obemärkt förbi. I kommunikation med tekniska experter visade det sig att de (Gazprom Neft) redan hade löst detta problem, de undrade bara om det kunde lösas bättre. Jag kommer inte säga att detta minskade min motivation, men det lämnade en rest. Jag blev förvånad över att sektionsmoderatorerna på natten noterade arbetslagen (som de sa för statistik); detta praktiseras vanligtvis inte vid hackathons. På morgonen hade vi en prototyp av fronten, några rudiment av baksidan och den första ML-lösningen klar. I allmänhet fanns det redan något att visa experterna. På lördagseftermiddagen ritade designern uppenbarligen fler gränssnitt än vad jag skulle hinna koda och gick över till att skapa en presentation. Lördagen var avsatt för registrering av rekordet och på morgonen sparkades alla som arbetade i hallen ut i korridoren, sedan genomfördes in- och utträde ur hallen med hjälp av märken och det var möjligt att lämna för inte längre än en timme per dag. Jag ska inte säga att detta orsakade oss några betydande besvär; större delen av dagen satt vi fortfarande och arbetade. Maten var visserligen mycket mager, till lunch fick vi ett glas buljong, en paj och ett äpple, men återigen detta gjorde oss inte så upprörda, vi var fokuserade på något annat.

De gav med jämna mellanrum ut red bull, två burkar per hand, vilket var till stor hjälp. Receptet energidryck + kaffe, som länge testats på hackathons, gjorde att jag kunde koda hela natten och dagen efter, glad som ett glas. På den andra dagen lade vi faktiskt helt enkelt till nya funktioner i applikationen, beräknade finansiella indikatorer och började visa grafer över statistik över defekter på motorvägar. Det fanns ingen kodgranskning som sådan i vårt spår; experter bedömde lösningen på problemet i kaggle.com-stilen, baserat på prognosens noggrannhet, och gränssnittet bedömdes visuellt. Vår ML-lösning visade sig vara den mest korrekta, kanske var det detta som gjorde att vi kunde bli ledare. Natten från lördag till söndag jobbade vi till klockan 2 och somnade sedan i lägenheten som vi använde som bas. Vi sov i ca 5 timmar, på söndagen kl 9 var vi redan på Kazan Expo. Jag förberedde snabbt något, men den mesta tiden gick åt till att förbereda förförsvaret. Förförsvaren ägde rum i 2 strömmar, inför två team av experter, vi ombads att tala sist, eftersom båda teamen av experter ville lyssna på oss. Vi tog detta som ett gott tecken. Applikationen visades från min bärbara dator, från en utvecklarserver som körs, vi hade inte tid att distribuera applikationen ordentligt, men alla gjorde detsamma.

Generellt sett gick allt bra, vi blev utpekade på punkter där vi kunde förbättra vår applikation och under tiden innan disputationen försökte vi till och med implementera några av dessa kommentarer. Försvaret gick också förvånansvärt smidigt. Baserat på resultaten från förförsvaret visste vi att vi var före poängmässigt, vi var i ledningen när det gäller lösningsnoggrannhet, vi hade ett bra front-end, bra design och generellt sett hade vi bra känslor. Ett annat positivt tecken var att tjejmoderatorn från vår sektion tog en selfie med oss ​​innan hon gick in i konserthuset, och då misstänkte jag att hon kanske visste något))). Men vi visste inte våra poäng efter försvaret, så tiden innan vårt lag tillkännagavs från scenen gick lite spänt. På scenen räckte de en kartong med inskriptionen 500000 XNUMX rubel och varje person fick en påse med en mugg och ett mobiltelefonbatteri. Vi lyckades inte njuta av segern och fira den ordentligt, vi åt snabbt middag och tog en taxi till tåget.

Digitalt genombrott – hur det gick till
Team WAICO vinner finalen

När vi återvände till Moskva intervjuade journalister från NTV oss. Vi filmade i en hel timme på andra våningen i kaféet Kvartal 44 på Polyanka, men nyheterna visade bara cirka 10 sekunder, trots allt starka framsteg jämfört med den regionala scenen.

Om vi ​​sammanfattar de allmänna intrycken av det digitala genombrottet är de följande. Mycket pengar spenderades på evenemanget, jag har aldrig sett hackathon i en sådan omfattning förut. Men jag kan inte säga att detta är motiverat och att det verkligen kommer att löna sig. En betydande del av deltagarna som kom till Kazan var helt enkelt festdeltagare som inte visste hur man skulle göra något med sina egna händer, och som tvingades sätta rekord. Jag kan inte säga att konkurrensen i finalen var högre än på det regionala stadiet. Dessutom är värdet och användbarheten av uppgifterna för vissa spår tveksamt. Vissa problem är sedan länge lösta på industriell nivå. Som det visade sig senare var vissa organisationer som genomförde spåren inte intresserade av att lösa dem. Och den här historien är inte över än, de ledande teamen från varje bana valdes ut för pre-acceleratorn, och det antas att de kommer att visa sig vara BROTTANDE startups. Men jag är inte redo att skriva om det här än, vi får se vad det blir av det.

Källa: will.com

Lägg en kommentar