Digital breakthrough - kung paano ito nangyari

Hindi ito ang unang hackathon na napanalunan ko, hindi ang una tungkol sa pagsusulat, at hindi ito ang unang post sa HabrΓ© na nakatuon sa "Digital Breakthrough". Ngunit hindi ko maiwasang magsulat. Itinuturing kong kakaiba ang aking karanasan upang maibahagi. Marahil ako lang ang tao sa hackathon na ito na nanalo sa regional stage at finals bilang bahagi ng iba't ibang team. Gusto mong malaman kung paano ito nangyari? Maligayang pagdating sa pusa.

Panrehiyong yugto (Moscow, Hulyo 27 - 28, 2019).

Una kong nakita ang isang ad para sa "Digital Breakthrough" sa isang lugar noong Marso-Abril ng taong ito. Naturally, hindi ko mapalampas ang ganoong kalaking hackathon at nakarehistro sa site. Doon ko nakilala ang mga kondisyon at programa ng kompetisyon. Ito ay lumabas na upang makapunta sa hackathon, kailangan mong pumasa sa isang online na pagsubok, na nagsimula noong Mayo 16. At, marahil, maginhawa kong nakalimutan ang tungkol dito, dahil hindi ako nakatanggap ng isang liham na nagpapaalala sa akin tungkol sa pagsisimula ng pagsubok. At, dapat kong sabihin, sa hinaharap LAHAT NG MGA LETRA na dumating sa akin mula sa CPU ay patuloy na napunta sa folder ng spam. Kahit na pinindot ko ang "not objectionable" button sa bawat oras. Hindi ko alam kung paano nila nagawang makamit ang ganoong resulta; hindi ito gumana para sa akin sa pagpapadala ng koreo sa MailGun. At mukhang hindi alam ng mga lalaki ang tungkol sa pagkakaroon ng mga serbisyo tulad ng isnotspam.com. Ngunit lumihis kami.

Naalala ko ang tungkol sa pagsisimula ng pagsubok sa isa sa mga pagpupulong startup club, doon din namin napag-usapan ang pagbuo ng team. Nang mabuksan ko ang listahan ng mga pagsubok, umupo muna ako sa pagsubok ng Javascript. Sa pangkalahatan, ang mga gawain ay higit pa o hindi gaanong sapat (tulad ng kung ano ang magiging resulta kung magdagdag ka ng 1 + '1' sa console). Ngunit mula sa aking karanasan, gagamit ako ng mga ganitong pagsubok kapag nagre-recruit para sa isang trabaho o isang team na may napakalaking reserbasyon. Ang katotohanan ay sa totoong trabaho, ang isang programmer ay bihirang makatagpo ng mga ganoong bagay, sa kanyang kakayahang mabilis na mag-debug ng code - ang kaalamang ito ay hindi nauugnay sa anumang paraan, at maaari kang magsanay para sa mga naturang bagay para sa mga panayam nang madali (alam ko mula sa aking sarili). Sa pangkalahatan, mabilis akong nag-click sa pagsubok, sa ilang mga kaso sinuri ko ang aking sarili sa console. Sa pagsubok ng python, ang mga gawain ay humigit-kumulang sa parehong uri, sinubukan ko rin ang aking sarili sa console, at nagulat ako na makakuha ng higit pang mga puntos kaysa sa JS, bagama't hindi pa ako nakapagprogram ng propesyonal sa Python. Nang maglaon, sa mga pakikipag-usap sa mga kalahok, narinig ko ang mga kuwento tungkol sa kung gaano kalakas ang mga programmer na nakakuha ng mababang marka sa mga pagsusulit, kung paano nakatanggap ang ilang tao ng mga liham na nagsasabing hindi sila pumasa sa proseso ng pagpili para sa CPU, at pagkatapos ay inanyayahan pa rin sila dito. Malinaw na ang mga gumawa ng mga pagsubok na ito ay malamang na walang narinig tungkol sa anumang bagay pagsubok ng teorya, ni tungkol sa kanilang pagiging maaasahan at bisa, o tungkol sa kung paano subukan ang mga ito, at ang ideya na may mga pagsubok ay magiging isang kabiguan mula pa sa simula, kahit na hindi natin isinasaalang-alang ang pangunahing layunin ng hackathon. At ang pangunahing layunin ng hack, tulad ng natutunan ko sa ibang pagkakataon, ay upang magtakda ng isang talaan ng Guinness, at ang mga pagsubok ay sumalungat dito.

Sa ilang mga punto pagkatapos na makapasa sa mga pagsusulit, tinawag nila ako, tinanong kung sasali ako, nilinaw ang mga detalye at sinabi sa akin kung paano makapasok sa chat para sa pagpili ng isang koponan. Hindi nagtagal, pumasok ako sa chat at nagsulat ng maikling tungkol sa aking sarili. Nagkaroon ng kumpletong basurang nangyayari sa chat; tila nag-a-advertise ang mga organizer sa maraming random na tao na walang kinalaman sa IT. Maraming tagapamahala ng produkto "sa antas ng Steve Jobs" (isang tunay na parirala mula sa pagsusumite ng isang kalahok) ang nag-post ng mga kuwento tungkol sa kanilang sarili, at ang mga normal na developer ay hindi man lang nakikita. Ngunit ako ay masuwerte at hindi nagtagal ay sumali ako sa tatlong makaranasang JS programmer. Nakilala namin ang isa't isa sa hackathon, at pagkatapos ay nagdagdag kami ng isang batang babae sa koponan para sa inspirasyon at paglutas ng mga isyu sa organisasyon. Hindi ko maalala kung bakit, ngunit kinuha namin ang paksang "Cybersecurity Training" at isinama ito sa track na "Science and Education 2". Sa unang pagkakataon ay natagpuan ko ang aking sarili sa isang pangkat ng 4 na malalakas na programmer at sa unang pagkakataon naramdaman ko kung gaano kadaling manalo sa naturang komposisyon. Dumating kami nang hindi nakahanda at nagtalo hanggang sa tanghalian at hindi makapagpasya kung ano ang aming gagawin: isang mobile application o isang web. Sa anumang iba pang sitwasyon ay akala ko ito ay isang kabiguan. Ang pinakamahalagang bagay para sa amin ay maunawaan kung paano kami magiging mas mahusay kaysa sa aming mga kakumpitensya, dahil maraming mga koponan sa paligid na nag-cut ng mga pagsubok, mga laro sa cybersecurity at iba pa. Matapos tingnan ito at ang mga programa at app sa pagsasanay sa pag-googling, napagpasyahan namin na ang aming pangunahing pagkakaiba ay ang mga fire drill drill. Pinili namin ang isang bilang ng mga tampok na nakita naming kawili-wiling ipatupad (pagpaparehistro na may pag-verify ng email at password laban sa mga database ng hacker, pagpapadala ng mga email sa phishing (sa anyo ng mga liham mula sa mga kilalang bangko), pagsasanay sa social engineering sa chat). Napagpasyahan kung ano ang aming ginagawa at nauunawaan kung paano kami mamumukod-tangi, mabilis kaming nagsulat ng isang ganap na web application, at ginampanan ko ang hindi pangkaraniwang papel ng isang developer ng backend. Kaya, kumpiyansa kaming napanalunan ang aming track at, bilang bahagi ng tatlong iba pang mga koponan, naging kwalipikado para sa finals sa Kazan. Nang maglaon, sa Kazan, nalaman ko na ang pagpili para sa finals ay isang kathang-isip; Doon ko nakilala ang maraming pamilyar na mukha mula sa mga koponan na hindi pumasa sa pagpili. Kinapanayam pa kami ng mga mamamahayag mula sa Channel 1. Gayunpaman, sa ulat mula dito, ipinakita lamang ang aming aplikasyon sa loob ng 1 segundo.

Digital breakthrough - kung paano ito nangyari
Snowed team, kung saan nanalo ako sa regional stage

Pangwakas (Kazan, Setyembre 27 – 29, 2019)

Ngunit pagkatapos ay nagsimula ang mga kabiguan. Lahat ng programmer mula sa Snowed team sa loob ng halos isang buwan, sunod-sunod, ay nag-ulat na hindi sila makakapunta sa Kazan para sa finals. At naisipan kong maghanap ng bagong team. Una, tumawag ako sa pangkalahatang chat ng Russian Hack Team, at bagama't doon ako nakatanggap ng napakaraming tugon at imbitasyon na sumali sa mga team, wala ni isa sa kanila ang nakakuha ng atensyon ko. May mga hindi balanseng koponan, tulad ng produkto, mobile developer, front-end, na parang isang sisne, crayfish at pike mula sa isang pabula. Mayroon ding mga koponan na hindi angkop para sa akin sa mga tuntunin ng teknolohiya (halimbawa, sa pagbuo ng isang mobile application sa Flutter). Sa wakas, sa isang chat na itinuturing kong basura (ang parehong VKontakte kung saan naganap ang pagpili ng mga koponan para sa yugto ng rehiyon), isang advertisement ang nai-post tungkol sa paghahanap para sa isang frontender para sa koponan, at nagsulat ako nang random. Ang mga lalaki ay naging mga mag-aaral na nagtapos sa Skoltech at agad na nag-alok na makipagkita at makipagkilala. Nagustuhan ko ito; ang mga koponan na mas gustong makilala kaagad ang isa't isa sa isang hackathon ay kadalasang nag-aalala sa akin sa kanilang kawalan ng pagganyak. Nagkita kami sa "Rake" sa Pyatnitskaya. Ang mga lalaki ay tila matalino, motivated, tiwala sa kanilang sarili at sa tagumpay, at ginawa ko ang desisyon doon mismo. Hindi pa namin alam kung anong mga track at gawain ang magiging final, ngunit ipinapalagay namin na pipili kami ng isang bagay na nauugnay sa Machine Learning. At ang aking gawain ay magsulat ng isang admin para sa bagay na ito, kaya naghanda ako ng isang template para dito nang maaga batay sa antd-admin.
Nagpunta ako sa Kazan nang libre, sa gastos ng mga organizer. Dapat kong sabihin na maraming kawalang-kasiyahan ang naipahayag na sa mga chat at blog tungkol sa pagbili ng mga tiket at, sa pangkalahatan, ang pag-aayos ng pangwakas, hindi ko na muling sasabihin ang lahat.

Pagdating sa Kazan Expo, nagparehistro (Medyo nahirapan akong makakuha ng badge) at nag-almusal, pumunta kami para pumili ng track. Nagpunta lang kami sa grand opening, kung saan nagsalita ang mga opisyal, mga 10 minuto. Sa katunayan, mayroon na kaming mga ginustong track, ngunit interesado kami sa mga detalye. Sa track No. 18 (Rostelecom), halimbawa, lumabas na kinakailangan upang bumuo ng isang mobile application, kahit na wala ito sa maikling paglalarawan. Ginawa namin ang pangunahing pagpipilian sa pagitan ng track No. 8 Defectoscopy ng mga pipeline, Gazprom Neft PJSC at track No. 13 Perinatal centers, Accounts Chamber ng Russian Federation. Sa parehong mga kaso, kinakailangan ang Data Science, at sa parehong mga kaso, maaaring naidagdag ang web. Sa track No. 13, napatigil kami sa katotohanan na ang gawain ng Data Science doon ay medyo mahina, kinakailangang i-parse ang Rosstat at hindi malinaw kung kailangan ng admin panel. At ang tunay na halaga ng gawain ay may pagdududa. Sa huli, napagpasyahan namin na bilang isang koponan, mas angkop kaming sumubaybay sa 8, lalo na't ang mga lalaki ay mayroon nang karanasan sa paglutas ng mga katulad na problema. Nagsimula kami sa pamamagitan ng pag-iisip sa senaryo kung saan ang aming application ay gagamitin ng end user. Lumalabas na magkakaroon kami ng dalawang uri ng mga user: mga techie na interesado sa teknikal na impormasyon at mga tagapamahala na nangangailangan ng mga tagapagpahiwatig ng pananalapi. Nang lumitaw ang isang ideya ng senaryo, naging malinaw kung ano ang gagawin sa harap na dulo, kung ano ang dapat iguhit ng taga-disenyo, at kung anong mga pamamaraan ang kinakailangan sa likod na dulo, naging posible na ipamahagi ang mga gawain. Ang mga responsibilidad sa koponan ay ipinamahagi bilang mga sumusunod: dalawang tao ang nalutas ang ML na may data na natanggap mula sa mga teknikal na eksperto, isang tao ang nagsulat ng backend sa Python, sinulat ko ang front end sa React at Antd, ang taga-disenyo ay gumuhit ng mga interface. Umupo pa kami para mas maging convenient para sa amin ang pakikipag-usap habang nireresolba ang aming mga problema.

Ang unang araw ay lumipad ng halos hindi napapansin. Sa pakikipag-usap sa mga teknikal na eksperto, lumabas na nalutas na nila (Gazprom Neft) ang problemang ito, iniisip lang nila kung ito ay mas mahusay na malutas. Hindi ko sasabihin na binawasan nito ang aking pagganyak, ngunit nag-iwan ito ng nalalabi. Nagulat ako na sa gabi ay binanggit ng mga moderator ng seksyon ang mga nagtatrabaho na koponan (tulad ng sinabi nila para sa mga istatistika); ito ay karaniwang hindi ginagawa sa mga hackathon. Pagsapit ng umaga, mayroon na kaming prototype sa harap, ilang mga simulain sa likod, at handa na ang unang solusyon sa ML. Sa pangkalahatan, mayroon nang maipapakita sa mga eksperto. Noong Sabado ng hapon, ang taga-disenyo ay malinaw na gumuhit ng higit pang mga interface kaysa sa magkakaroon ako ng oras upang mag-code at lumipat sa paglikha ng isang pagtatanghal. Ang Sabado ay inilaan para sa pagpaparehistro ng rekord, at sa umaga, ang lahat ng nagtatrabaho sa bulwagan ay pinalayas sa koridor, pagkatapos ay ang pagpasok at paglabas mula sa bulwagan ay isinagawa gamit ang mga badge, at posible na umalis nang hindi na. kaysa sa isang oras bawat araw. Hindi ko sasabihin na nagdulot ito sa amin ng anumang makabuluhang abala; halos buong araw ay nakaupo at nagtatrabaho pa rin kami. Ang pagkain, sa katunayan, ay napakaliit; para sa tanghalian ay nakatanggap kami ng isang baso ng sabaw, isang pie at isang mansanas, ngunit muli ito ay hindi gaanong nagalit sa amin, nakatuon kami sa ibang bagay.

Pana-panahong nagbibigay sila ng pulang toro, dalawang lata bawat kamay, na lubhang nakakatulong. Ang recipe ng energy drink + coffee, na matagal nang nasubok sa hackathon, ay nagpahintulot sa akin na mag-code buong gabi at kinabukasan, na kasing saya ng isang baso. Sa ikalawang araw, kami, sa katunayan, ay nagdagdag lamang ng mga bagong tampok sa application, kinakalkula ang mga tagapagpahiwatig ng pananalapi, at nagsimulang magpakita ng mga graph sa mga istatistika ng mga depekto sa mga highway. Walang ganoong pagsusuri sa code sa aming track; tinasa ng mga eksperto ang solusyon sa problema sa istilo ng kaggle.com, batay sa katumpakan ng hula, at biswal na nasuri ang front end. Ang aming solusyon sa ML ay naging pinaka-tumpak, marahil ito ang nagbigay-daan sa amin upang maging pinuno. Sa gabi mula Sabado hanggang Linggo ay nagtrabaho kami hanggang 2 am, at pagkatapos ay natulog sa apartment na ginamit namin bilang base. Mga 5 oras kaming natulog, noong Linggo ng 9 am ay nasa Kazan Expo na kami. Nagmamadali akong naghanda ng isang bagay, ngunit karamihan sa oras ay ginugol sa paghahanda para sa pre-defense. Ang mga pre-defense ay naganap sa 2 stream, sa harap ng dalawang koponan ng mga eksperto; kami ay hiniling na magsalita nang huli, dahil ang parehong koponan ng mga eksperto ay gustong makinig sa amin. Kinuha namin ito bilang isang magandang senyales. Ang application ay ipinakita mula sa aking laptop, mula sa isang tumatakbong dev server; wala kaming oras upang maayos na i-deploy ang application, gayunpaman, lahat ay ginawa ang parehong.

Sa pangkalahatan, naging maayos ang lahat, itinuro sa amin ang mga punto kung saan mapapabuti namin ang aming aplikasyon, at sa oras bago ang pagtatanggol sinubukan pa naming ipatupad ang ilan sa mga komentong ito. Nakakagulat din na naging maayos ang depensa. Batay sa mga resulta ng pre-defense, alam namin na kami ay nangunguna sa mga punto, kami ang nangunguna sa mga tuntunin ng katumpakan ng solusyon, mayroon kaming magandang front-end, magandang disenyo at, sa pangkalahatan, mayroon kaming magandang damdamin. Ang isa pang paborableng senyales ay nakipag-selfie sa amin ang babaeng moderator mula sa aming seksyon bago pumasok sa bulwagan ng konsiyerto, at pagkatapos ay naghinala ako na maaaring may alam siya))). Ngunit hindi namin alam ang aming mga marka pagkatapos ng depensa, kaya ang oras hanggang sa ang aming koponan ay inanunsyo mula sa entablado ay lumipas nang kaunti. Sa entablado ay nag-abot sila ng isang karton na may nakasulat na 500000 rubles at bawat tao ay binigyan ng isang bag na may mug at baterya ng cell phone. Hindi namin nagawang tamasahin ang tagumpay at ipagdiwang ito nang maayos; mabilis kaming naghapunan at sumakay ng taxi papunta sa tren.

Digital breakthrough - kung paano ito nangyari
Nanalo ang Team WAICO sa final

Pagbalik sa Moscow, kinapanayam kami ng mga mamamahayag mula sa NTV. Nag-film kami ng isang buong oras sa ikalawang palapag ng Kvartal 44 cafe sa Polyanka, ngunit ang balita ay nagpakita lamang ng mga 10 segundo. Pagkatapos ng lahat, malakas na pag-unlad kumpara sa yugto ng rehiyon.

Kung ibubuod natin ang mga pangkalahatang impression ng Digital Breakthrough, ang mga ito ay ang mga sumusunod. Napakaraming pera ang ginugol sa kaganapan; Hindi pa ako nakakita ng mga hackathon na kasing laki nito. Ngunit hindi ko masasabi na ito ay makatwiran at ito ay talagang magbubunga. Ang isang makabuluhang bahagi ng mga kalahok na dumating sa Kazan ay simpleng mga partygoer na hindi alam kung paano gumawa ng anuman sa kanilang sariling mga kamay, at pinilit na magtakda ng isang talaan. Hindi ko masasabi na mas mataas ang kompetisyon sa finals kaysa sa regional stage. Gayundin, ang halaga at pagiging kapaki-pakinabang ng mga gawain ng ilang mga track ay kaduda-dudang. Ang ilang mga problema ay matagal nang nalutas sa antas ng industriya. Nang maglaon, ang ilang mga organisasyon na nagsagawa ng mga track ay hindi interesado sa paglutas ng mga ito. At ang kwentong ito ay hindi pa tapos, ang mga nangungunang koponan mula sa bawat track ay pinili para sa pre-accelerator, at ipinapalagay na sila ay magiging BREAKTHROUGH startup. Ngunit hindi pa ako handang magsulat tungkol dito, tingnan natin kung ano ang mangyayari.

Pinagmulan: www.habr.com

Magdagdag ng komento