Digitalt gjennombrudd — hvordan det skjedde.

Dette er ikke fÞrste hackathon jeg vinner, ikke fÞrste som jeg skriver om, og dette er langt fra det fÞrste innlegget pÄ Habr, som handler om 'Digitalt gjennombrudd'. Men jeg kunne ikke unngÄ Ä skrive. Jeg mener min erfaring er unik nok til Ä dele. Sannsynligvis er jeg den eneste pÄ dette hackathonet som har vunnet bÄde regionalt og finalen med forskjellige lag. Vil du vite hvordan det skjedde? Velkommen under kat.

Regionalt nivĂ„ (Moskva, 27. — 28. juli 2019).

Jeg sĂ„ reklamen for 'Digitalt gjennombrudd' for fĂžrste gang et sted i mars — april i Ă„r. Selvsagt kunne jeg ikke gĂ„ forbi et sĂ„ stort hackathon, sĂ„ jeg registrerte meg pĂ„ nettsiden. Deretter ble jeg kjent med betingelsene og programmet for konkurransen. Det viste seg at for Ă„ delta pĂ„ hackathonet, mĂ„tte man bestĂ„ en online test som startet 16. mai. Og kanskje hadde jeg glemt det, siden jeg ikke mottok pĂ„minnelsesbrev om oppstarten av testen. Jeg mĂ„ si at alle brevene jeg mottok fra CP havnet konsekvent i spam-mappen. Selv om jeg hver gang trykket 'ikke er sĂžppelpost'. Jeg vet ikke hvordan de fikk til det, jeg klarte ikke det med utsendelsen min pĂ„ MailGun. Og det virker som gutta ikke kjenner til tjenester som isnotspam.com. Men vi kom ut av sporet.

Jeg ble minnet om starten pÄ testen pÄ et av mÞtene til oppstartsklubben, der diskuterte vi ogsÄ dannelsen av teamet. Da jeg Äpnet listen over tester, satte jeg meg fÞrst ned med JavaScript-testen. Generelt var oppgavene mer eller mindre rimelige (som, hva vil resultatet bli hvis man legger sammen 1 + '1' i konsollen). Men basert pÄ min erfaring ville jeg hatt store forbehold om Ä bruke slike tester i ansettelser eller for teamvalg. Poenget er at i den virkelige jobben mÞter programmerere sjelden slike ting; evnen deres til Ä raskt skrive kode korrelerer ikke med disse kunnskapene, og man kan lett trene seg pÄ slike oppgaver i intervjuer (vet det av egen erfaring). Uansett, jeg gjennomfÞrte testen ganske raskt, og i noen tilfeller sjekket jeg meg selv i konsollen. I Python-testen var oppgavene omtrent av samme type; jeg sjekket ogsÄ meg selv i konsollen og med forblÞffelse oppnÄdde jeg flere poeng enn pÄ JS, selv om jeg aldri har programmert profesjonelt i Python. Senere hÞrte jeg fra deltakerne om historier der dyktige programmerere fikk lave poengsummer pÄ testene, noen fikk brev om at de ikke besto til CP, men ble likevel invitert til det. Det er klart at skaperne av disse testene sannsynligvis ikke har hÞrt noe om testteori, heller ikke om pÄlitelighet og gyldighet, eller om hvordan man prÞver dem ut, og ideen med testene ville opprinnelig vÊrt en fiasko, selv om man ikke tar hensyn til hovedmÄlet med hackathonet. Og hovedmÄlet med hacket, som jeg senere fikk vite, var Ä sette en Guinness-rekord, og testene var i strid med dette.

I en eller annen fase etter Ä ha gjennomfÞrt testene, fikk jeg en telefon der de spurte om jeg ville delta, avklarte detaljer og fortalte hvordan jeg skulle bli med i chatten for teamutvelgelse. Snart logget jeg inn i chatten og skrev kort om meg selv. Det var fullstendig kaos i chatten, det fÞltes som om arrangÞrene hadde lokket mange tilfeldige personer med annonser, folk som ikke har noe Ä gjÞre med IT. Mange produktledere pÄ "Steve Jobs-nivÄ" (en faktisk frase fra en deltakers presentasjon) postet historier om seg selv, og det var knapt noen normale utviklere Ä se. Men jeg var heldig og ble snart med tre erfarne JS-programmerere. Vi ble kjent med hverandre pÄ hackathonen, da la vi ogsÄ til en jente i teamet for inspirasjon og lÞsninga av organisatoriske spÞrsmÄl. Jeg husker ikke hvorfor, men vi valgte temaet "Utdanning i cybersikkerhet" og havnet med det i sporet "Vitenskap og utdanning 2". Jeg var fÞrste gangen i et team med 4 sterke programmerere, og jeg opplevde for fÞrste gang hvor lett det er Ä vinne i et slikt lag. Vi kom dit uten forberedelse og diskuterte til lunsj uten Ä kunne bestemme oss for hva vi skulle gjÞre: mobilapplikasjon eller web. I enhver annen situasjon ville jeg tenkt at dette var et nederlag. Det viktigste for oss var Ä forstÄ hvordan vi skulle skille oss fra konkurrentene, for det var fullt av lag som laget tester, spill om cybersikkerhet og lignende ting. NÄr jeg sÄ pÄ dette og googlet opplÊringsprogrammer og applikasjoner, bestemte vi oss for at vÄr hoveddistinksjon ville vÊre treninger i likhet med brannÞvelser. Vi plukket ut en rekke funksjoner som virket interessante for oss Ä implementere (registrering med sjekk av e-post og passord mot hacker-databaser, utsendelse av phishing-e-poster (i form av brev fra kjente banker), treninger i sosial ingeniÞrkunst i chatten). Etter Ä ha bestemt oss for hva vi skulle gjÞre og forstÄtt hva som ville skille oss ut, utviklet vi ganske raskt en fullverdig webapplikasjon, og jeg tok pÄ meg en rolle som backend-utvikler som ikke var vanlig for meg. Slik vant vi trygt vÄrt spor, og sammen med tre andre lag kvalifiserte vi oss til finalen i Kazan. Senere, i Kazan, fikk jeg vite at kvalifiseringen til finalen var en fiksjon, jeg traff mange kjente ansikter fra lag som ikke kom videre i kvalifiseringen. Selv journalister fra 1. kanal tok intervju med oss. Men i reportasjen viste de bare applikasjonen vÄr i ett sekund.

Digitalt gjennombrudd — hvordan det skjedde.
Snowed-laget, der jeg vant den regionale etappen

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

Men deretter begynte uhellene. Alle programmerer i Snowed-laget meldte seg en etter en i lÞpet av omtrent en mÄned og sa at de ikke kunne reise til Kazan for finalen. Jeg begynte Ä tenke pÄ Ä finne et nytt lag. FÞrst sendte jeg ut et kall i den felles chatten til Russian Hack Team, og selv om jeg fikk mange tilbakemeldinger og invitasjoner til lag, var ingen av dem interessante for meg. Det var ubalanserte lag, som for eksempel et produktteam, en mobilutvikler, en frontend-utvikler, som fikk meg til Ä tenke pÄ svanen, reke og gjedde fra fabelen. Det var ogsÄ lag som ikke passet meg teknologisk (for eksempel lag som utviklet mobilapplikasjoner pÄ Flutter). Til slutt, i en chat som jeg ansÄ for Ä vÊre sÞppel (den pÄ VKontakte hvor lagene ble samlet for den regionale etappen), ble det postet en annonse om at de sÞkte etter en frontend-utvikler, og jeg skrev ganske tilfeldig. Guttene viste seg Ä vÊre doktorgradsstudenter fra Skoltech og tilbÞd straks Ä mÞtes og bli kjent. Jeg likte dette, lag som foretrekker Ä bli kjent pÄ hackathon pleier vanligvis Ä bekymre meg med sin mangel pÄ motivasjon. Vi mÞttes pÄ «Grablja» pÄ Pyatnitskaya. Guttene virket fornuftige, motiverte, selvsikre og trodde pÄ seier, sÄ jeg bestemte meg der og da. Vi visste fortsatt ikke hvilke spor og oppgaver det ville vÊre i finalen, men vi antok at vi ville velge noe relatert til maskinlÊring. Min oppgave ville vÊre Ä lage en adminpanel for dette, sÄ jeg forberedte en mal basert pÄ antd-admin pÄ forhÄnd.
Jeg reiste til Kazan gratis, bekostet av arrangÞrene. Det mÄ sies at det allerede hadde vÊrt uttrykt veldig mye misnÞye i chatter og blogger angÄende billettkjÞp og generelt organiseringen av finalen, og jeg vil ikke gÄ nÊrmere inn pÄ det.

Da vi kom til Kazan Expo, registrerte oss (jeg hadde noen smÄ problemer med Ä fÄ navnetegnet) og hadde frokost, gikk vi for Ä velge spor. For Äpningsseremonien, hvor offisielle personer deltok, var vi bare inne i ti minutter. Egentlig hadde vi allerede prefererte spor, men vi var nysgjerrige pÄ detaljene. I spor nr. 18 (Rostelekom) viste det seg at vi mÄtte utvikle en mobilapp, selv om dette ikke var inkludert i den korte beskrivelsen. Hovedvalget vÄrt var mellom spor nr. 8, Pipe Inspection, PAO «Gazprom Neft», og spor nr. 13, Perinatale sentre, Den statsrevisjonen i Russland. BÄde der og der var det behov for Data Science, og begge steder kunne vi implementere web-lÞsninger. I spor nr. 13 ble vi stoppet av at Data Science-oppgaven der var ganske svak, vi mÄtte parse ROSSTAT, og det var uklart om en adminpanel var nÞdvendig. I tillegg var verdien av oppgaven tvilsom. Til slutt bestemte vi oss for at som et team var vi mer tilpasset spor nr. 8, spesielt siden guttene allerede hadde erfaring med Ä lÞse lignende oppgaver. Vi begynte med Ä tenke gjennom scenariet som sluttbrukeren ville bruke vÄr applikasjon til. Det viste seg at vi ville ha to typer brukere: teknikere som var interessert i teknisk informasjon, og ledere som trengte finansielle indikatorer. NÄr vi hadde fÄtt en forstÄelse av scenariet, ble det klart hva som mÄtte gjÞres pÄ fronten, hva designeren mÄtte tegne, og hvilke metoder som var nÞdvendige pÄ backend, noe som gjorde det mulig Ä fordele oppgavene. Ansvarsfordelingen i teamet ble fÞlgende: to personer jobbet med ML med dataene fra tekniske eksperter, én person skrev backend i Python, jeg bygde fronten med React og Ant Design, og designeren tegnet grensesnittene. Vi satt til og med slik at det var lettere for oss Ä kommunisere mens vi lÞste oppgavene vÄre.

De fÞrste 24 timer flÞy forbi nesten uten at vi merket det. I samtale med tekniske eksperter kom det fram at denne oppgaven allerede var lÞst av dem ("Gazprom Neft"), de var bare nysgjerrige pÄ om den kunne lÞses enda bedre. Jeg kan ikke si at det senket motivasjonen, men det ble en liten skygge av tvil. Det overrasket meg at moderatorene om natten merket de fungerende teamene (som de sa for statistikkens skyld), vanligvis er ikke dette vanlig pÄ hackathons. Om morgenen hadde vi en prototype av fronten klar, noen tidlige skisser av baksiden, og en fÞrste ML-lÞsning. Med andre ord, vi hadde allerede noe Ä vise ekspertpanelene. I lÞpet av lÞrdagens ettermiddag hadde designeren laget flere grensesnitt enn jeg ville ha rukket Ä kode, og han begynte pÄ presentasjonen. LÞrdag var avsatt til Ä registrere rekorden, og om morgenen ble alle som jobbet i salen sendt ut i korridoren, deretter skjedde inn- og utgangen av salen via badges, og vi kunne ikke gÄ ut mer enn en time i lÞpet av dagen. Jeg kan ikke si at dette medfÞrte noen betydelige ulemper for oss, mesteparten av dagen satt vi uansett og arbeidet. Maten var faktisk ganske knapp, til lunsj fikk vi en kopp med buljong, en pastei og et eple, men igjen, det gjorde oss ikke sÄ mye opprÞrt; vi var fokusert pÄ noe annet.

Av og til fikk vi utdelt Red Bull, to bokser per person, noe som var veldig passende. Den lenge utprÞvde oppskriften med energidrikk + kaffe lot oss kode hele natten og neste dag, med energi som en nyfÞdt. PÄ den andre dagen begynte vi stort sett bare Ä legge til nye funksjoner til applikasjonen, laget finansielle beregninger og begynte Ä vise grafer over feilstatistikken i hovedlinjene. Det var ikke noe formelt code review i vÄr bane, ekspertene vurderte lÞsningen i stil med kaggle.com, basert pÄ nÞyaktigheten av forutsigelsene, mens frontend ble vurdert visuelt. VÄr ML-lÞsning viste seg Ä vÊre den mest nÞyaktige, noe som muligens bidro til at vi kunne ta ledelsen. Natten mellom lÞrdag og sÞndag jobbet vi til klokken 2 om natten, fÞr vi dro for Ä sove pÄ leiligheten vi brukte som base. Vi sov i omtrent 5 timer, og sÞndag klokken 9 var vi allerede pÄ Kazan Expo. Jeg holdt pÄ med hastig tilpasning, men mesteparten av tiden gikk med til Ä forberede oss til pre-varen. Pre-varen ble holdt i 2 runder, foran to team av eksperter, og vi ble bedt om Ä gÄ sist, siden begge team Þnsket Ä hÞre oss. Vi tolket det som et godt tegn. Vi viste applikasjonen fra min bÊrbare datamaskin, fra en kjÞrende dev-server, vi fikk ikke tid til Ä deployere applikasjonen ordentlig, men det var slik alle gjorde det.

Alt i alt gikk det bra, vi fikk tilbakemelding pÄ omrÄdene der vi kunne forbedre applikasjonen vÄr, og i tiden frem til forsvarsprosessen forsÞkte vi til og med Ä implementere noen av disse tilbakemeldingene. Forsvaret ogsÄ gikk overraskende greit. Etter pre-varen visste vi at vi ledet pÄ poeng, vi var i front nÄr det gjaldt nÞyaktigheten av lÞsningen, vi hadde god frontend, godt design, og generelt hadde vi en god fÞlelse. En annen positiv bekreftelse var at jenta som var moderator for vÄr seksjon, tok et selfie med oss fÞr vi gikk inn i konsertsalen, jeg begynte da Ä mistenke at hun kanskje visste noe. Men vi visste ikke vÄre poeng etter forsvaret, sÄ tiden frem til kunngjÞringen av laget vÄrt fra scenen var litt nervÞs. PÄ scenen fikk vi en papirlapp med «500000 rubler» skrevet pÄ, og hver av oss fikk en pose med en kopp og en ladebatteri for mobiltelefonen. Vi fikk ikke tid til Ä nyte seieren og feire den ordentlig, vi spiste raskt middag og tok taxi til toget.

Digitalt gjennombrudd — hvordan det skjedde.
Team WAICO vinner finalen

NÄr vi kom tilbake til Moskva, ble vi intervjuet av journalister fra NTV. De filmet i en hel time pÄ andre etasje av kafeen «Kvartal 44» pÄ Polyanka, men i nyhetene viste de bare ti sekunder. Tross alt er det betydelig fremgang sammenlignet med den regionale fasen.

Hvis jeg skal oppsummere de generelle inntrykkene fra Digital Breakthrough, er de som fÞlger. Det ble brukt enormt med penger pÄ arrangementet, jeg har aldri sett hackathoner av denne stÞrrelsen fÞr. Men Ä si at dette er berettiget, og at det virkelig vil lÞnne seg, kan jeg ikke. En betydelig del av deltakerne som kom til Kazan, var bare festdeltakere som ikke kan gjÞre noe med egne hender, og som ble invitert for Ä sette rekorder. Jeg kan ikke si at konkurransen i finalen var hÞyere enn pÄ den regionale fasen. OgsÄ verdien og nytten av oppgavene i noen av sporene virker tvilsom. Noen oppgaver har allerede lenge vÊrt lÞst pÄ industrielt nivÄ. Som det senere viste seg, var noen organisasjoner som ledet sporene ikke engang interessert i Ä lÞse dem. Og denne historien er fortsatt ikke over, lederteamene fra hvert spor ble valgt til pre-inkubator, og det er antatt at det vil bli REVOLUTIONERENDE oppstartsselskaper av dem. Men jeg er fortsatt ikke klar til Ä skrive om dette, la oss se hva som kommer ut av det.

Kilde: habr.com

KjĂžp pĂ„litelig hosting for nettsteder med DDoS-beskyttelse, VPS VDS-servere đŸ”„ KjĂžp pĂ„litelig hosting for nettsteder med DDoS-beskyttelse, VPS VDS-servere | ProHoster