Digitale deurbraak - hoe dit gebeur het

Dit is nie die eerste hackathon wat ek wen nie, nie die eerste een waaroor ek wen nie skryf, en dit is nie die eerste plasing op Habré gewy aan “Digitale Deurbraak” nie. Maar ek kon nie anders as om te skryf nie. Ek beskou my ervaring as uniek genoeg om te deel. Ek is seker die enigste persoon by hierdie hackathon wat die streekverhoog en eindronde as deel van verskillende spanne gewen het. Wil jy weet hoe dit gebeur het? Welkom by kat.

Streekstoneel (Moskou, 27 - 28 Julie 2019).

Ek het die eerste keer 'n advertensie vir "Digitale Deurbraak" iewers in Maart-April vanjaar gesien. Ek kon natuurlik nie so 'n groot hackathon laat verbygaan nie en het op die webwerf geregistreer. Daar het ek kennis gemaak met die voorwaardes en program van die kompetisie. Dit het geblyk dat om by die hackathon uit te kom, jy ’n aanlyntoets moes slaag, wat op 16 Mei begin het. En miskien sou ek gerieflik daarvan vergeet het, aangesien ek nie 'n brief ontvang het wat my herinner het aan die begin van die toets nie. En ek moet sê, in die toekoms het ALLE BRIEWE wat van die SVE na my gekom het konsekwent in die strooiposlêer beland. Al het ek elke keer die "nie aanstootlik"-knoppie geklik. Ek weet nie hoe hulle dit reggekry het om so 'n resultaat te bereik nie; dit het nie vir my uitgewerk met pos op MailGun nie. En die ouens weet blykbaar glad nie van die bestaan ​​van dienste soos isnotspam.com nie. Maar ons dwaal af.

Ek is by een van die vergaderings herinner aan die begin van toetsing opstartklub, daar het ons ook die vorming van die span bespreek. Nadat ek die lys toetse oopgemaak het, het ek eers die Javascript-toets gaan sit. Oor die algemeen was die take min of meer voldoende (soos wat die resultaat sal wees as jy 1 + '1' in die konsole byvoeg). Maar uit my ervaring sou ek sulke toetse gebruik wanneer ek werf vir 'n pos of 'n span met baie groot voorbehoude. Die feit is dat 'n programmeerder in werklike werk selde sulke dinge teëkom, met sy vermoë om kode vinnig te ontfout - hierdie kennis korreleer nie op enige manier nie, en jy kan redelik maklik vir sulke dinge vir onderhoude oefen (ek weet van myself). Oor die algemeen het ek redelik vinnig deur die toets geklik, in sommige gevalle het ek myself in die konsole nagegaan. In die luislangtoets was die take van ongeveer dieselfde tipe, ek het myself ook in die konsole getoets, en was verras om meer punte as in JS aan te teken, alhoewel ek nog nooit professioneel in Python geprogrammeer het nie. Later, in gesprekke met deelnemers, het ek stories gehoor oor hoe sterk programmeerders laag op toetse behaal het, hoe sommige mense briewe ontvang het dat hulle nie die keuringsproses vir die SVE geslaag het nie, en dan is hulle in elk geval daarna genooi. Dit is duidelik dat die skeppers van hierdie toetse heel waarskynlik niks van gehoor het nie toets teorie, nie oor hul betroubaarheid en geldigheid nie, ook nie oor hoe om dit te toets nie, en die idee met toetse sou van die begin af 'n mislukking gewees het, selfs al het ons nie die hoofdoel van die hackathon in ag geneem nie. En die hoofdoel van die hack, soos ek later geleer het, was om 'n Guinness-rekord op te stel, en die toetse het dit weerspreek.

Op 'n stadium nadat hulle die toetse geslaag het, het hulle my gebel, gevra of ek sou deelneem, die besonderhede uitgeklaar en my vertel hoe om in die klets te kom om 'n span te kies. Kort voor lank het ek die klets betree en kortliks oor myself geskryf. Daar was volledige rommel aan die gang in die klets; dit het gelyk of die organiseerders vir baie willekeurige mense adverteer wat niks met IT te doen gehad het nie. Talle produkbestuurders "op die vlak van Steve Jobs" ('n regte frase uit een deelnemer se voorlegging) het stories oor hulself geplaas, en normale ontwikkelaars was nie eers sigbaar nie. Maar ek was gelukkig en het gou by drie ervare JS-programmeerders aangesluit. Ons het mekaar reeds by die hackathon ontmoet, en toe het ons 'n meisie by die span gevoeg vir inspirasie en organisatoriese kwessies op te los. Ek kan nie onthou hoekom nie, maar ons het die onderwerp "Cybersecurity Training" geneem en dit by die "Science and Education 2"-snit ingesluit. Vir die eerste keer het ek myself in 'n span van 4 sterk programmeerders bevind en vir die eerste keer het ek gevoel hoe maklik dit was om in so 'n samestelling te wen. Ons het onvoorbereid gekom en gestry tot middagete en kon nie besluit wat ons sou doen nie: 'n mobiele toepassing of 'n web een. In enige ander situasie sou ek gedink het dit was 'n mislukking. Die belangrikste ding vir ons was om te verstaan ​​hoe ons beter as ons mededingers sou wees, want daar was baie spanne wat besig was om toetse, kuberveiligheidspeletjies en dies meer te sny. Nadat ons hierna gekyk het en opleidingsprogramme en toepassings gegoogle het, het ons besluit dat ons hoofdifferensieerder brandoefeninge sou wees. Ons het 'n aantal kenmerke gekies wat ons interessant gevind het om te implementeer (registrasie met e-pos en wagwoordverifikasie teen hacker-databasisse, die stuur van uitvissing-e-posse (in die vorm van briewe van bekende banke), opleiding in sosiale ingenieurswese in klets). Nadat ons besluit het oor wat ons doen en verstaan ​​het hoe ons kan uitstaan, het ons vinnig 'n volwaardige webtoepassing geskryf, en ek het die ongewone rol van 'n backend-ontwikkelaar gespeel. Ons het dus met selfvertroue ons baan gewen en as deel van drie ander spanne vir die eindronde in Kazan gekwalifiseer. Later, in Kazan, het ek geleer dat die keuring vir die eindronde 'n fiksie was; ek het daar baie bekende gesigte van die spanne ontmoet wat nie die keuring geslaag het nie. Ons is selfs deur joernaliste van Kanaal 1 gevoer. In die verslag daarvan is ons toepassing egter net vir 1 sekonde gewys.

Digitale deurbraak - hoe dit gebeur het
Gesneeude span, waar ek die streekverhoog gewen het

Finaal (Kazan, 27 – 29 September 2019)

Maar toe begin die mislukkings. Alle programmeerders van die Snowed-span het binne sowat 'n maand, een na die ander, berig dat hulle nie vir die eindronde Kazan toe sou kon gaan nie. En ek het daaraan gedink om 'n nuwe span te vind. Eerstens het ek 'n oproep gemaak in die algemene klets van die Russiese Hack Team, en alhoewel ek daar heelwat reaksies en uitnodigings ontvang het om by spanne aan te sluit, het nie een van hulle my aandag getrek nie. Daar was ongebalanseerde spanne, soos produk, mobiele ontwikkelaar, front-end, wat herinner aan 'n swaan, kreef en snoek uit 'n fabel. Daar was ook spanne wat nie vir my geskik was wat tegnologie betref nie (byvoorbeeld met die ontwikkeling van 'n mobiele toepassing in Flutter). Uiteindelik, in 'n geselsie wat ek as gemors beskou het (dieselfde VKontakte waar die keuring van spanne vir die streekverhoog plaasgevind het), is 'n advertensie geplaas oor die soektog na 'n frontender vir die span, en ek het bloot lukraak geskryf. Die ouens het geblyk nagraadse studente by Skoltech te wees en het dadelik aangebied om te ontmoet en kennis te maak. Ek het daarvan gehou; spanne wat verkies om mekaar dadelik by 'n hackathon te leer ken, skrik my gewoonlik met hul gebrek aan motivering. Ons het ontmoet by "Rake" op Pyatnitskaya. Die ouens het slim, gemotiveerd, selfversekerd en in oorwinning gelyk, en ek het die besluit net daar geneem. Ons het nog nie geweet watter bane en take in die finaal sou wees nie, maar ons het aanvaar dat ons iets sou kies wat met Masjienleer verband hou. En my taak sal wees om 'n admin vir hierdie saak te skryf, so ek het vooraf 'n sjabloon hiervoor voorberei gebaseer op antd-admin.
Ek het gratis na Kazan gegaan, ten koste van die organiseerders. Ek moet sê dat daar reeds baie ontevredenheid in geselsies en blogs uitgespreek is oor die aankoop van kaartjies en oor die algemeen die organisasie van die finaal, ek sal dit nie alles oorvertel nie.

Nadat ons by Kazan Expo aangekom het, geregistreer het (ek het 'n bietjie gesukkel om 'n kenteken te kry) en ontbyt geëet het, het ons 'n baan gaan kies. Ons het net vir ongeveer 10 minute na die groot opening, waar amptenare gepraat het, gegaan. Trouens, ons het reeds ons voorkeursnitte gehad, maar ons was geïnteresseerd in die besonderhede. In snit nr. 18 (Rostelecom) het dit byvoorbeeld geblyk dat dit nodig was om 'n mobiele toepassing te ontwikkel, hoewel dit nie in die kort beskrywing was nie. Ons het die hoofkeuse gemaak tussen spoor No. 8 Defektoskopie van pypleidings, Gazprom Neft PJSC en baan No. 13 Perinatale sentrums, Rekeningkamer van die Russiese Federasie. In beide gevalle was Data Science nodig, en in albei gevalle kon die web bygevoeg word. In snit nr. 13 is ons gestop deur die feit dat die Data Science-taak daar redelik swak was, dit was nodig om Rosstat te ontleed en dit was nie duidelik of 'n adminpaneel nodig is nie. En die waarde van die taak was in twyfel getrek. Op die ou end het ons besluit dat ons as 'n span meer geskik is vir baan 8, veral omdat die ouens reeds ondervinding gehad het om soortgelyke probleme op te los. Ons het begin deur die scenario waarin ons toepassing deur die eindgebruiker gebruik sou word deur te dink. Dit het geblyk dat ons twee soorte gebruikers sou hê: tegnologieë wat belangstel in tegniese inligting en bestuurders wat finansiële aanwysers nodig het. Toe 'n idee van die scenario na vore kom, het dit duidelik geword wat om aan die voorkant te doen, wat die ontwerper moet teken, en watter metodes aan die agterkant nodig is, het dit moontlik geword om take te versprei. Verantwoordelikhede in die span is soos volg verdeel: twee mense het ML opgelos met data wat van tegniese kundiges ontvang is, een persoon het die agterkant in Python geskryf, ek het die voorkant in React en Antd geskryf, die ontwerper het die koppelvlakke geteken. Ons het selfs gaan sit sodat dit vir ons geriefliker sou wees om te kommunikeer terwyl ons ons probleme oplos.

Die eerste dag het amper ongemerk verby gevlieg. In kommunikasie met tegniese kenners het dit geblyk dat hulle (Gazprom Neft) reeds hierdie probleem opgelos het, hulle het net gewonder of dit beter opgelos kan word. Ek sal nie sê dat dit my motivering verminder het nie, maar dit het 'n oorblyfsel gelaat. Ek was verbaas dat die afdeling se moderators snags kennis geneem het van die werkspanne (soos hulle gesê het vir statistieke); dit word gewoonlik nie by hackathons beoefen nie. Teen die oggend het ons 'n prototipe van die voorkant gehad, 'n paar beginsels van die agterkant en die eerste ML-oplossing gereed. Oor die algemeen was daar reeds iets om die kenners te wys. Saterdagmiddag het die ontwerper natuurlik meer koppelvlakke geteken as wat ek tyd sou hê om te kodeer en oorgeskakel na die skep van 'n aanbieding. Saterdag is opsy gesit vir die registrasie van die rekord, en die oggend is almal wat in die saal werk, in die gang uitgeskop, toe is toegang en uitgang uit die saal uitgevoer met behulp van kentekens, en dit was moontlik om te vertrek vir nie meer nie as 'n uur per dag. Ek sal nie sê dat dit ons enige noemenswaardige ongerief veroorsaak het nie; die meeste van die dag het ons steeds gesit en gewerk. Die kos was inderdaad baie karig; vir middagete het ons 'n glas sous, 'n pastei en 'n appel gekry, maar dit het ons weer nie veel ontstel nie, ons was op iets anders gefokus.

Hulle het gereeld rooi bul, twee blikkies per hand, uitgegee, wat baie nuttig was. Die energiedrankie + koffieresep, wat lank reeds by hackathons getoets is, het my toegelaat om die hele nag en die volgende dag te kodeer, so vrolik soos 'n glas. Op die tweede dag het ons in werklikheid eenvoudig nuwe kenmerke by die toepassing gevoeg, finansiële aanwysers bereken en grafieke oor die statistieke van defekte in snelweë begin vertoon. Daar was geen kodehersiening as sodanig in ons baan nie; kundiges het die oplossing vir die probleem in die kaggle.com-styl beoordeel, gebaseer op die akkuraatheid van die voorspelling, en die voorkant is visueel beoordeel. Ons ML-oplossing het geblyk die akkuraatste te wees, miskien is dit wat ons toegelaat het om leiers te word. Die nag van Saterdag tot Sondag het ons tot 2:5 gewerk, en toe gaan slaap by die woonstel wat ons as basis gebruik het. Ons het so 9 ure geslaap, Sondag 2 uur was ons reeds by Kazan Expo. Ek het inderhaas iets voorberei, maar die meeste van die tyd is bestee aan voorbereiding vir die voorverdediging. Die voorverdediging het in XNUMX strome plaasgevind, voor twee spanne kundiges; ons is gevra om laaste te praat, aangesien albei spanne kundiges na ons wou luister. Ons het dit as 'n goeie teken beskou. Die toepassing is vanaf my skootrekenaar gewys, vanaf 'n lopende dev-bediener; ons het nie tyd gehad om die toepassing behoorlik te ontplooi nie, maar almal het dieselfde gedoen.

Oor die algemeen het alles goed verloop, ons is punte uitgewys waarin ons ons toepassing kan verbeter, en in die tyd voor die verdediging het ons selfs probeer om van hierdie opmerkings te implementeer. Die verdediging het ook verbasend glad verloop. Gebaseer op die resultate van die voorverdediging, het ons geweet dat ons voor is wat punte betref, ons was voor in terme van oplossing akkuraatheid, ons het 'n goeie voorkant, goeie ontwerp en, in die algemeen, het ons goeie gevoelens. Nog 'n gunstige teken was dat die meisie-moderator van ons afdeling 'n selfie saam met ons geneem het voordat sy die konsertsaal binnegegaan het, en toe het ek vermoed dat sy dalk iets weet))). Maar ons het nie ons tellings ná die verdediging geken nie, so die tyd totdat ons span van die verhoog af aangekondig is, het effens gespanne verloop. Op die verhoog het hulle 'n karton met die inskripsie 500000 XNUMX roebels oorhandig en elke persoon het 'n sak met 'n beker en 'n selfoonbattery gekry. Ons het nie daarin geslaag om die oorwinning te geniet en behoorlik te vier nie; ons het vinnig aandete geëet en 'n taxi na die trein geneem.

Digitale deurbraak - hoe dit gebeur het
Span WAICO wen die finaal

Toe hulle na Moskou teruggekeer het, het joernaliste van NTV 'n onderhoud met ons gevoer. Ons het ’n hele uur lank op die tweede verdieping van die Kvartal 44-kafee op Polyanka verfilm, maar die nuus het net sowat 10 sekondes gewys, immers sterk vordering in vergelyking met die streekverhoog.

As ons die algemene indrukke van die Digitale Deurbraak opsom, is dit soos volg. Baie geld is aan die geleentheid bestee; ek het nog nooit voorheen hackathons van so 'n skaal gesien nie. Maar ek kan nie sê dat dit geregverdig is en dat dit werklik vrugte afwerp nie. ’n Beduidende deel van die deelnemers wat na Kazan gekom het, was bloot partytjiegangers wat nie geweet het hoe om iets met hul eie hande te doen nie, en wat gedwing is om ’n rekord op te stel. Ek kan nie sê dat die kompetisie in die eindronde hoër was as in die streekstadium nie. Ook die waarde en bruikbaarheid van die take van sommige snitte is twyfelagtig. Sommige probleme is lank reeds op industriële vlak opgelos. Soos dit later geblyk het, het sommige organisasies wat die spore uitgevoer het, nie daarin belanggestel om dit op te los nie. En hierdie storie is nog nie verby nie, die voorste spanne van elke baan is gekies vir die voorversneller, en daar word aanvaar dat hulle DEURBRAAK beginners sal blyk te wees. Maar ek is nog nie gereed om hieroor te skryf nie, ons sal sien wat daarvan kom.

Bron: will.com

Voeg 'n opmerking