Digitalt gjennombrudd – hvordan skjedde det

Dette er ikke det første hackathonet jeg vinner, ikke det første om skriving, og dette er ikke det første innlegget på Habré dedikert til "Digitalt gjennombrudd". Men jeg kunne ikke la være å skrive. Jeg anser min erfaring som unik nok til å dele. Jeg er sannsynligvis den eneste personen på dette hackathonet som vant den regionale etappen og finalen som en del av forskjellige lag. Vil du vite hvordan dette skjedde? Velkommen til katt.

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

Jeg så først en annonse for "Digitalt gjennombrudd" et sted i mars-april i år. Naturligvis kunne jeg ikke gå glipp av et så stort hackathon og registrerte meg på nettstedet. Der ble jeg kjent med betingelsene og programmet for konkurransen. Det viste seg at for å komme til hackathonet, måtte man bestå en online test, som begynte 16. mai. Og kanskje jeg praktisk talt hadde glemt det, siden jeg ikke mottok et brev som minner meg om starten av testen. Og, jeg må si, i fremtiden havnet ALLE BOKSTAVER som kom til meg fra CPU konsekvent i spam-mappen. Selv om jeg klikket på "ikke upassende"-knappen hver gang. Jeg vet ikke hvordan de klarte å oppnå et slikt resultat; det fungerte ikke for meg med mailing på MailGun. Og gutta ser ikke ut til å vite i det hele tatt om eksistensen av tjenester som isnotspam.com. Men vi går bort.

Jeg ble påminnet om start av test på et av møtene oppstartsklubb, der diskuterte vi også dannelsen av laget. Etter å ha åpnet listen over tester, satte jeg meg først til Javascript-testen. Generelt var oppgavene mer eller mindre tilstrekkelige (som hva resultatet blir hvis du legger til 1 + '1' i konsollen). Men etter min erfaring ville jeg brukt slike tester når jeg rekrutterer til en jobb eller et team med veldig store forbehold. Faktum er at i virkelig arbeid møter en programmerer sjelden slike ting, med sin evne til raskt å feilsøke kode - denne kunnskapen korrelerer ikke på noen måte, og du kan trene for slike ting for intervjuer ganske enkelt (jeg vet fra meg selv). Generelt klikket jeg gjennom testen ganske raskt, i noen tilfeller sjekket jeg meg selv i konsollen. I python-testen var oppgavene av omtrent samme type, jeg testet meg også i konsollen, og ble overrasket over å få flere poeng enn i JS, selv om jeg aldri har programmert profesjonelt i Python. Senere, i samtaler med deltakere, hørte jeg historier om hvordan sterke programmerere scoret lavt på tester, hvordan noen fikk brev om at de ikke bestod utvelgelsesprosessen for CPU, og så ble de invitert til det likevel. Det er tydelig at skaperne av disse testene mest sannsynlig ikke har hørt noe om testteori, verken om deres reliabilitet og validitet, eller om hvordan man tester dem, og ideen med tester ville vært en fiasko helt fra begynnelsen, selv om vi ikke tok hensyn til hovedmålet med hackathon. Og hovedmålet med hacket, som jeg lærte senere, var å sette Guinness-rekord, og testene motsa det.

På et tidspunkt etter å ha bestått testene, ringte de meg, spurte om jeg ville delta, avklarte detaljene og fortalte meg hvordan jeg skulle komme inn i chatten for å velge et lag. Snart gikk jeg inn i chatten og skrev kort om meg selv. Det foregikk fullstendig søppel i chatten; det så ut til at arrangørene annonserte til mange tilfeldige mennesker som ikke hadde noe med IT å gjøre. Tallrike produktledere "på nivå med Steve Jobs" (en ekte setning fra en deltakers innsending) la ut historier om seg selv, og vanlige utviklere var ikke engang synlige. Men jeg var heldig og ble snart med tre erfarne JS-programmerere. Vi møtte hverandre allerede på hackathon, og så la vi til en jente på laget for inspirasjon og løsning av organisatoriske problemer. Jeg husker ikke hvorfor, men vi tok emnet «Cybersecurity Training» og inkluderte det i «Science and Education 2»-sporet. For første gang fant jeg meg selv i et team på 4 sterke programmerere og for første gang kjente jeg hvor lett det var å vinne i en slik sammensetning. Vi kom uforberedte og kranglet frem til lunsj og kunne ikke bestemme oss for hva vi skulle gjøre: en mobilapplikasjon eller en nettbasert. I enhver annen situasjon ville jeg trodd det var en fiasko. Det viktigste for oss var å forstå hvordan vi ville være bedre enn konkurrentene våre, fordi det var mange lag rundt som drev med tester, cybersikkerhetsspill og lignende. Etter å ha sett på dette og googlet treningsprogrammer og apper, bestemte vi oss for at vår viktigste differensiator ville være brannøvelse. Vi valgte ut en rekke funksjoner som vi fant interessante å implementere (registrering med e-post- og passordverifisering mot hackerdatabaser, sending av phishing-e-poster (i form av brev fra kjente banker), sosialingeniøropplæring i chat). Etter å ha bestemt oss for hva vi gjorde og forstått hvordan vi kunne skille oss ut, skrev vi raskt en fullverdig nettapplikasjon, og jeg spilte den uvanlige rollen som backend-utvikler. Dermed vant vi vår bane trygt og, som en del av tre andre lag, kvalifiserte vi oss til finalen i Kazan. Senere, i Kazan, fikk jeg vite at valget til finalen var en fiksjon; jeg møtte der mange kjente fjes fra lagene som ikke besto utvalget. Vi ble til og med intervjuet av journalister fra Channel 1. Men i rapporten fra den ble applikasjonen vår bare vist i 1 sekund.

Digitalt gjennombrudd – hvordan skjedde det
Snødd lag, der jeg vant den regionale etappen

Finale (Kazan, 27.–29. september 2019)

Men så begynte feilene. Alle programmerere fra Snowed-teamet i løpet av omtrent en måned, den ene etter den andre, rapporterte at de ikke ville være i stand til å dra til Kazan for finalen. Og jeg tenkte på å finne et nytt lag. Først ringte jeg i den generelle chatten til det russiske hackteamet, og selv om jeg der fikk jeg ganske mange svar og invitasjoner til å bli med i team, fanget ingen av dem oppmerksomheten min. Det var ubalanserte lag, som produkt, mobilutvikler, front-end, som minner om en svane, kreps og gjedde fra en fabel. Det var også team som ikke var egnet for meg med tanke på teknologi (for eksempel med utvikling av en mobilapplikasjon i Flutter). Til slutt, i en chat som jeg betraktet som trashy (den samme VKontakte der utvelgelsen av lag for den regionale scenen fant sted), ble det lagt ut en annonse om søket etter en frontender for laget, og jeg skrev rent tilfeldig. Gutta viste seg å være hovedfagsstudenter ved Skoltech og tilbød seg umiddelbart å møte og bli kjent. Jeg likte det; lag som foretrekker å bli kjent med hverandre med en gang på et hackathon, skremmer meg vanligvis med mangel på motivasjon. Vi møttes på "Rake" på Pyatnitskaya. Gutta virket smarte, motiverte, trygge på seg selv og på seier, og jeg tok avgjørelsen akkurat der. Vi visste ennå ikke hvilke spor og oppgaver som ville være i finalen, men vi antok at vi ville velge noe relatert til Machine Learning. Og min oppgave blir å skrive en admin for denne saken, så jeg utarbeidet en mal for dette på forhånd basert på antd-admin.
Jeg dro til Kazan gratis, på bekostning av arrangørene. Jeg må si at det allerede har blitt uttrykt mye misnøye i chatter og blogger angående kjøp av billetter og generelt organiseringen av finalen, jeg vil ikke gjenfortelle det hele.

Etter å ha kommet til Kazan Expo, registrert (jeg hadde litt problemer med å få et merke) og spist frokost, gikk vi for å velge et spor. Vi gikk bare til den store åpningen, hvor funksjonærene snakket, i omtrent 10 minutter. Faktisk hadde vi allerede våre foretrukne spor, men vi var interessert i detaljene. I spor nr. 18 (Rostelecom) viste det seg for eksempel at det var nødvendig å utvikle en mobilapplikasjon, selv om dette ikke sto i den korte beskrivelsen. Vi tok hovedvalget mellom spor nr. 8 defektoskopi av rørledninger, Gazprom Neft PJSC og spor nr. 13 perinatale sentre, Accounts Chamber of the Russian Federation. I begge tilfeller var det nødvendig med Data Science, og i begge tilfeller kunne nettet vært lagt til. I spor nr. 13 ble vi stoppet av at Data Science-oppgaven der var ganske svak, det var nødvendig å analysere Rosstat og det var ikke klart om et adminpanel var nødvendig. Og selve verdien av oppgaven var i tvil. Til slutt bestemte vi oss for at vi som et lag var mer egnet til spor 8, spesielt siden gutta allerede hadde erfaring med å løse lignende problemer. Vi startet med å tenke gjennom scenariet der applikasjonen vår skulle brukes av sluttbrukeren. Det viste seg at vi ville ha to typer brukere: teknologer som var interessert i teknisk informasjon og ledere som trengte økonomiske indikatorer. Da en idé om scenariet dukket opp, ble det klart hva man skulle gjøre på frontenden, hva designeren skulle tegne, og hvilke metoder som var nødvendig på bakenden, ble det mulig å fordele oppgaver. Ansvaret i teamet ble fordelt som følger: to personer løste ML med data mottatt fra tekniske eksperter, en person skrev backend i Python, jeg skrev frontend i React og Antd, designeren tegnet grensesnittene. Vi satte oss til og med ned slik at det ville være mer praktisk for oss å kommunisere mens vi løser problemene våre.

Den første dagen fløy nesten ubemerket forbi. I kommunikasjon med tekniske eksperter viste det seg at de (Gazprom Neft) allerede hadde løst dette problemet, de lurte bare på om det kunne løses bedre. Jeg vil ikke si at dette reduserte motivasjonen min, men det etterlot seg en rest. Jeg ble overrasket over at seksjonsmoderatorene om natten noterte arbeidslagene (som de sa for statistikk); dette praktiseres vanligvis ikke på hackathons. Om morgenen hadde vi en prototype av fronten, noen rudimenter av baksiden og den første ML-løsningen klar. Generelt var det allerede noe å vise ekspertene. Lørdag ettermiddag tegnet designeren tydeligvis flere grensesnitt enn jeg ville ha tid til å kode og gikk over til å lage en presentasjon. Lørdagen var satt av til registrering av rekorden, og om morgenen ble alle som jobbet i hallen sparket ut i korridoren, deretter ble inn- og utstigning fra hallen utført ved hjelp av merker, og det var mulig å forlate for ikke mer enn en time per dag. Jeg vil ikke si at dette forårsaket oss noen betydelige ulemper; mesteparten av dagen satt vi fortsatt og jobbet. Maten var faktisk veldig mager, til lunsj fikk vi et glass buljong, en pai og et eple, men igjen gjorde dette oss ikke så mye opprørt, vi var fokusert på noe annet.

De ga med jevne mellomrom ut red bull, to bokser per hånd, noe som var veldig nyttig. Oppskriften på energidrikk + kaffe, som lenge hadde vært testet på hackathons, tillot meg å kode hele natten og dagen etter, blid som et glass. På den andre dagen la vi faktisk ganske enkelt til nye funksjoner i applikasjonen, beregnet økonomiske indikatorer og begynte å vise grafer over statistikken over defekter på motorveier. Det var ingen kodegjennomgang som sådan i sporet vårt; eksperter vurderte løsningen på problemet i kaggle.com-stilen, basert på nøyaktigheten til prognosen, og frontenden ble vurdert visuelt. Vår ML-løsning viste seg å være den mest nøyaktige, kanskje det var dette som gjorde at vi kunne bli ledere. Natt fra lørdag til søndag jobbet vi til 2, og la oss så i leiligheten som vi brukte som base. Vi sov i ca 5 timer, søndag kl 9 var vi allerede på Kazan Expo. Jeg forberedte meg raskt noe, men mesteparten av tiden gikk med til forberedelse til forhåndsforsvar. Forforsvarene fant sted i 2 strømmer, foran to team med eksperter; vi ble bedt om å snakke sist, siden begge teamene med eksperter ønsket å lytte til oss. Vi tok dette som et godt tegn. Applikasjonen ble vist fra den bærbare datamaskinen min, fra en kjørende utviklerserver; vi hadde ikke tid til å distribuere applikasjonen riktig, men alle gjorde det samme.

Generelt gikk alt bra, vi ble påpekt punkter der vi kunne forbedre søknaden vår, og i tiden før forsvaret prøvde vi til og med å implementere noen av disse kommentarene. Forsvaret gikk også overraskende greit. Basert på resultatene fra forhåndsforsvaret visste vi at vi var foran når det gjelder poeng, vi var i ledelsen når det gjelder løsningsnøyaktighet, vi hadde en god front-end, god design og generelt sett hadde vi gode følelser. Et annet gunstig tegn var at jentemoderatoren fra vår seksjon tok en selfie med oss ​​før han gikk inn i konsertsalen, og da mistenkte jeg at hun kanskje visste noe))). Men vi visste ikke scoringene våre etter forsvaret, så tiden før laget vårt ble annonsert fra scenen gikk litt spent. På scenen overrakte de en papp med påskriften 500000 XNUMX rubler og hver person fikk en pose med et krus og et mobiltelefonbatteri. Vi klarte ikke å nyte seieren og feire den ordentlig, vi spiste raskt middag og tok en taxi til toget.

Digitalt gjennombrudd – hvordan skjedde det
Team WAICO vinner finalen

Da vi kom tilbake til Moskva, intervjuet journalister fra NTV oss. Vi filmet i en hel time i andre etasje på Kvartal 44-kafeen på Polyanka, men nyhetene viste bare rundt 10 sekunder.Troligs sterk fremgang sammenlignet med regionscenen.

Hvis vi oppsummerer de generelle inntrykkene av det digitale gjennombruddet, er de som følger. Det ble brukt mye penger på arrangementet, jeg har aldri sett hackathon av et slikt omfang før. Men jeg kan ikke si at dette er berettiget og at det virkelig vil lønne seg. En betydelig del av deltakerne som kom til Kazan var rett og slett festdeltakere som ikke visste hvordan de skulle gjøre noe med egne hender, og som ble tvunget til å sette rekord. Jeg kan ikke si at konkurransen i finalen var høyere enn på den regionale scenen. Også verdien og nytten av oppgavene til noen spor er tvilsom. Noen problemer er for lengst løst på industrinivå. Som det viste seg senere, var noen organisasjoner som gjennomførte sporene ikke interessert i å løse dem. Og denne historien er ikke over ennå, de ledende lagene fra hvert spor ble valgt ut til pre-akseleratoren, og det antas at de vil vise seg å være GJENNOMSNITTENDE startups. Men jeg er ikke klar til å skrive om dette ennå, vi får se hva som kommer ut av det.

Kilde: www.habr.com

Legg til en kommentar