Digitalt gennembrud - hvordan skete det

Dette er ikke det første hackathon, jeg vinder, ikke det første om skrivning, og dette er ikke det første indlæg på Habré dedikeret til "Digitalt gennembrud". Men jeg kunne ikke lade være med at skrive. Jeg anser min erfaring for unik nok til at dele. Jeg er nok den eneste person ved dette hackathon, der vandt den regionale etape og finaler som en del af forskellige hold. Vil du vide, hvordan dette skete? Velkommen til kat.

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

Jeg så første gang en annonce for "Digitalt gennembrud" et sted i marts-april i år. Jeg kunne naturligvis ikke gå glip af et så stort hackathon og registrerede mig på hjemmesiden. Der stiftede jeg bekendtskab med konkurrencens betingelser og program. Det viste sig, at for at komme til hackathon skulle man bestå en online test, som begyndte den 16. maj. Og måske ville jeg bekvemt have glemt det, da jeg ikke modtog et brev, der minder mig om starten af ​​testen. Og, jeg må sige, i fremtiden endte ALLE BOGSTAVER, der kom til mig fra CPU'en, konsekvent i spam-mappen. Også selvom jeg har klikket på knappen "ikke stødende" hver gang. Jeg ved ikke, hvordan det lykkedes dem at opnå et sådant resultat; det fungerede ikke for mig med mailing på MailGun. Og fyrene synes slet ikke at vide om eksistensen af ​​tjenester som isnotspam.com. Men vi afviger.

Jeg blev mindet om starten af ​​testen på et af møderne startup klub, der diskuterede vi også dannelsen af ​​holdet. Efter at have åbnet listen over tests, satte jeg mig først til Javascript-testen. Generelt var opgaverne mere eller mindre fyldestgørende (som hvad resultatet bliver, hvis du tilføjer 1 + '1' i konsollen). Men ud fra min erfaring ville jeg bruge sådanne tests, når jeg rekrutterer til et job eller et team med meget store forbehold. Faktum er, at i virkeligt arbejde støder en programmør sjældent på sådanne ting, med sin evne til hurtigt at debugge kode - denne viden korrelerer ikke på nogen måde, og du kan træne til sådanne ting til interviews ret nemt (jeg kender fra mig selv). Generelt klikkede jeg ret hurtigt igennem testen, i nogle tilfælde tjekkede jeg mig selv i konsollen. I python-testen var opgaverne af nogenlunde samme type, jeg testede også mig selv i konsollen, og blev overrasket over at score flere point end i JS, selvom jeg aldrig har programmeret professionelt i Python. Senere, i samtaler med deltagere, hørte jeg historier om, hvordan stærke programmører scorede lavt i tests, hvordan nogle mennesker modtog breve om, at de ikke bestod udvælgelsesprocessen for CPU'en, og så blev de alligevel inviteret til det. Det er klart, at skaberne af disse test højst sandsynligt ikke har hørt noget om testteori, hverken om deres reliabilitet og validitet, eller om hvordan man tester dem, og ideen med test ville have været en fiasko helt fra begyndelsen, selvom vi ikke tog højde for hovedmålet med hackathonet. Og hovedmålet med hacket, som jeg lærte senere, var at sætte en Guinness-rekord, og testene modsagde det.

På et tidspunkt efter at have bestået testene, ringede de til mig, spurgte, om jeg ville deltage, afklarede detaljerne og fortalte mig, hvordan jeg kom ind i chatten for at vælge et hold. Snart gik jeg ind i chatten og skrev kort om mig selv. Der foregik fuldstændig skrald i chatten; det så ud til, at arrangørerne reklamerede for en masse tilfældige mennesker, der ikke havde noget med IT at gøre. Talrige produktchefer "på niveau med Steve Jobs" (en rigtig sætning fra en deltagers indsendelse) postede historier om sig selv, og normale udviklere var ikke engang synlige. Men jeg var heldig og sluttede mig hurtigt til tre erfarne JS-programmører. Vi mødte hinanden allerede ved hackathonet, og så tilføjede vi en pige til holdet til inspiration og løsning af organisatoriske problemer. Jeg kan ikke huske hvorfor, men vi tog emnet "Cybersikkerhedstræning" og inkluderede det i "Science and Education 2"-sporet. For første gang befandt jeg mig i et team på 4 stærke programmører, og for første gang følte jeg, hvor nemt det var at vinde i sådan en sammensætning. Vi kom uforberedte og skændtes indtil frokost og kunne ikke beslutte os for, hvad vi ville gøre: en mobilapplikation eller en web. I enhver anden situation ville jeg have troet, at det var en fiasko. Det vigtigste for os var at forstå, hvordan vi ville være bedre end vores konkurrenter, for der var en masse hold rundt omkring, som var i gang med at lave test, cybersikkerhedsspil og lignende. Efter at have set på dette og googlet træningsprogrammer og apps besluttede vi, at vores vigtigste differentiator ville være brandøvelser. Vi udvalgte en række funktioner, som vi fandt interessante at implementere (registrering med e-mail og adgangskodebekræftelse mod hackerdatabaser, afsendelse af phishing-e-mails (i form af breve fra kendte banker), social ingeniøruddannelse i chat). Efter at have besluttet, hvad vi lavede og forstå, hvordan vi kunne skille os ud, skrev vi hurtigt en fuldgyldig webapplikation, og jeg spillede den usædvanlige rolle som backend-udvikler. Dermed vandt vi selvsikkert vores bane og kvalificerede os som en del af tre andre hold til finalen i Kazan. Senere, i Kazan, lærte jeg, at udtagelsen til finalen var en fiktion; jeg mødte der mange kendte ansigter fra de hold, der ikke bestod udvælgelsen. Vi blev endda interviewet af journalister fra Kanal 1. Men i rapporten fra den blev vores applikation kun vist i 1 sekund.

Digitalt gennembrud - hvordan skete det
Sneet hold, hvor jeg vandt den regionale etape

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

Men så begyndte fiaskoerne. Alle programmører fra Snowed-teamet inden for omkring en måned, den ene efter den anden, rapporterede, at de ikke ville være i stand til at tage til Kazan til finalen. Og jeg tænkte på at finde et nyt hold. Først ringede jeg i det russiske hackteams generelle chat, og selvom jeg der modtog en del svar og invitationer til at deltage i teams, fangede ingen af ​​dem min opmærksomhed. Der var ubalancerede hold, såsom produkt, mobiludvikler, front-end, der minder om en svane, krebs og gedder fra en fabel. Der var også teams, der ikke var egnede til mig rent teknologisk (f.eks. med udviklingen af ​​en mobilapplikation i Flutter). Til sidst, i en chat, som jeg betragtede som trashy (den samme VKontakte, hvor udvælgelsen af ​​hold til den regionale scene fandt sted), blev der sendt en annonce om søgningen efter en frontender til holdet, og jeg skrev rent tilfældigt. Fyrene viste sig at være kandidatstuderende på Skoltech og tilbød straks at mødes og stifte bekendtskab. Jeg kunne godt lide det; hold, der foretrækker at lære hinanden at kende med det samme ved et hackathon, alarmerer mig normalt med deres manglende motivation. Vi mødtes ved "Rake" på Pyatnitskaya. Drengene virkede smarte, motiverede, sikre på sig selv og sejre, og jeg tog beslutningen lige der. Vi vidste endnu ikke, hvilke spor og opgaver der ville være i finalen, men vi antog, at vi ville vælge noget relateret til Machine Learning. Og min opgave bliver at skrive en admin til denne sag, så jeg udarbejdede en skabelon til dette på forhånd baseret på antd-admin.
Jeg tog til Kazan gratis på arrangørernes bekostning. Jeg må sige, at der allerede er udtrykt megen utilfredshed i chats og blogs vedrørende køb af billetter og generelt tilrettelæggelsen af ​​finalen, jeg vil ikke genfortælle det hele.

Da vi var ankommet til Kazan Expo, registreret (jeg havde lidt problemer med at få et badge) og spiste morgenmad, gik vi for at vælge et spor. Vi gik kun til den store åbning, hvor embedsmændene talte, i cirka 10 minutter. Faktisk havde vi allerede vores foretrukne numre, men vi var interesserede i detaljerne. I spor nr. 18 (Rostelecom) viste det sig for eksempel, at det var nødvendigt at udvikle en mobilapplikation, selvom det ikke stod i den korte beskrivelse. Vi traf hovedvalget mellem spor nr. 8 defektoskopi af rørledninger, Gazprom Neft PJSC og spor nr. 13 perinatale centre, Accounts Chamber of the Russian Federation. I begge tilfælde var der brug for Data Science, og i begge tilfælde kunne nettet være tilføjet. I spor nr. 13 blev vi stoppet af, at Data Science opgaven der var ret svag, det var nødvendigt at parse Rosstat, og det var ikke klart, om der var behov for et adminpanel. Og selve værdien af ​​opgaven var der tvivl om. Til sidst besluttede vi, at vi som et hold var mere egnede til spor 8, især da gutterne allerede havde erfaring med at løse lignende problemer. Vi startede med at gennemtænke scenariet, hvor vores applikation ville blive brugt af slutbrugeren. Det viste sig, at vi ville have to typer brugere: Teknikere, der var interesserede i teknisk information, og ledere, der havde brug for økonomiske indikatorer. Da en idé om scenariet dukkede op, blev det klart, hvad man skulle gøre på frontenden, hvad designeren skulle tegne, og hvilke metoder der var nødvendige på bagenden, blev det muligt at fordele opgaver. Ansvaret i teamet blev fordelt som følger: to personer løste ML med data modtaget fra tekniske eksperter, én person skrev backend i Python, jeg skrev frontend i React og Antd, designeren tegnede interfaces. Vi satte os endda ned, så det ville være mere bekvemt for os at kommunikere, mens vi løser vores problemer.

Den første dag fløj næsten ubemærket forbi. I kommunikation med tekniske eksperter viste det sig, at de (Gazprom Neft) allerede havde løst dette problem, de spekulerede bare på, om det kunne løses bedre. Jeg vil ikke sige, at dette reducerede min motivation, men det efterlod en rest. Jeg var overrasket over, at sektionsmoderatorerne om natten noterede arbejdsholdene (som de sagde til statistik); dette praktiseres normalt ikke ved hackathons. Om morgenen havde vi en prototype af fronten, nogle rudimenter af bagsiden og den første ML-løsning klar. Generelt var der allerede noget at vise eksperterne. Lørdag eftermiddag tegnede designeren åbenbart flere interfaces, end jeg ville nå at kode, og gik over til at lave en præsentation. Lørdagen var afsat til registrering af rekorden, og om morgenen blev alle, der arbejdede i hallen, smidt ud på gangen, derefter blev ind- og udgang fra hallen udført ved hjælp af badges, og det var muligt at komme afsted for ikke mere end en time om dagen. Jeg vil ikke sige, at dette voldte os væsentlige gener; det meste af dagen sad vi stadig og arbejdede. Maden var faktisk meget sparsom; til frokost fik vi et glas bouillon, en tærte og et æble, men igen det gjorde os ikke meget oprørte, vi var fokuseret på noget andet.

De gav med jævne mellemrum red bull ud, to dåser pr. hånd, hvilket var meget nyttigt. Opskriften på energidrik + kaffe, som længe var blevet testet ved hackathons, gav mig mulighed for at kode hele natten og dagen efter og være så munter som et glas. På den anden dag tilføjede vi faktisk blot nye funktioner til applikationen, beregnede økonomiske indikatorer og begyndte at vise grafer baseret på statistikken over defekter på motorveje. Der var ingen kodegennemgang som sådan i vores spor; eksperter vurderede løsningen på problemet i kaggle.com-stilen, baseret på nøjagtigheden af ​​prognosen, og frontenden blev vurderet visuelt. Vores ML-løsning viste sig at være den mest præcise, måske var det det, der tillod os at blive ledere. Natten fra lørdag til søndag arbejdede vi til kl. 2, og gik så i seng i lejligheden, som vi brugte som base. Vi sov i omkring 5 timer, søndag kl. 9 var vi allerede på Kazan Expo. Jeg skyndte mig at forberede noget, men det meste af tiden gik med at forberede sig til forforsvaret. Forforsvarene fandt sted i 2 strømme foran to hold af eksperter; vi blev bedt om at tale sidst, da begge hold af eksperter ønskede at lytte til os. Vi tog det som et godt tegn. Applikationen blev vist fra min bærbare computer fra en kørende udviklerserver; vi havde ikke tid til at implementere applikationen korrekt, men alle gjorde det samme.

Generelt gik alt godt, vi fik peget på punkter, hvor vi kunne forbedre vores applikation, og i tiden før forsvaret forsøgte vi endda at implementere nogle af disse kommentarer. Forsvaret gik også overraskende glat. Baseret på resultaterne af forforsvaret vidste vi, at vi var foran i forhold til point, vi var i spidsen med hensyn til løsningsnøjagtighed, vi havde en god front-end, godt design og generelt havde vi gode følelser. Et andet gunstigt tegn var, at pige-moderatoren fra vores sektion tog en selfie med os, inden hun gik ind i koncertsalen, og så havde jeg mistanke om, at hun kunne vide noget))). Men vi kendte ikke vores scoringer efter forsvaret, så tiden indtil vores hold blev annonceret fra scenen gik lidt spændt. På scenen overrakte de et pap med inskriptionen 500000 rubler, og hver person fik en taske med et krus og et mobiltelefonbatteri. Vi nåede ikke at nyde sejren og fejre den ordentligt, vi spiste hurtigt aftensmad og tog en taxa til toget.

Digitalt gennembrud - hvordan skete det
Team WAICO vinder finalen

Da vi vendte tilbage til Moskva, interviewede journalister fra NTV os. Vi filmede i en hel time på anden sal i cafeen Kvartal 44 på Polyanka, men nyhederne viste kun omkring 10 sekunder, trods alt stærk fremgang i forhold til den regionale scene.

Hvis vi opsummerer de generelle indtryk af det digitale gennembrud, er de som følger. Der blev brugt mange penge på arrangementet; jeg har aldrig set hackathons af sådan en skala før. Men jeg kan ikke sige, at dette er berettiget, og at det virkelig vil betale sig. En væsentlig del af deltagerne, der kom til Kazan, var simpelthen festdeltagere, der ikke vidste, hvordan de skulle gøre noget med deres egne hænder, og som blev tvunget til at sætte rekord. Jeg kan ikke sige, at konkurrencen i finalen var højere end på den regionale scene. Værdien og anvendeligheden af ​​opgaverne i nogle spor er også tvivlsom. Nogle problemer er længe blevet løst på industriniveau. Som det viste sig senere, var nogle organisationer, der udførte sporene, ikke interesserede i at løse dem. Og denne historie er ikke slut endnu, de førende hold fra hvert spor blev udvalgt til pre-acceleratoren, og det antages, at de vil vise sig at være GENNEMBRUDT startups. Men jeg er ikke klar til at skrive om det her endnu, vi må se hvad der kommer ud af det.

Kilde: www.habr.com

Tilføj en kommentar