Թվային առաջընթաց. ինչպես դա տեղի ունեցավ

Սա առաջին հաքաթոնը չէ, որում ես հաղթում եմ, առաջինը չէ, որի մասին ես հաղթում եմ գրելը, և սա Habré-ում առաջին գրառումը չէ՝ նվիրված «Թվային առաջընթացին»։ Բայց ես չէի կարող չգրել. Ես համարում եմ, որ իմ փորձը բավական եզակի է՝ կիսվելու համար: Ես, հավանաբար, միակ մարդն եմ այս հաքաթոնում, ով տարբեր թիմերի կազմում հաղթել է տարածաշրջանային փուլում և եզրափակիչներում: Ցանկանու՞մ եք իմանալ, թե ինչպես է դա տեղի ունեցել: Բարի գալուստ կատու:

Տարածաշրջանային փուլ (Մոսկվա, հուլիսի 27 - 28, 2019 թ.):

Ես առաջին անգամ տեսա «Digital Breakthrough»-ի գովազդը ինչ-որ տեղ այս տարվա մարտ-ապրիլին։ Բնականաբար, ես չկարողացա շրջանցել այսքան մեծ հաքաթոնը և գրանցվել կայքում։ Այնտեղ ծանոթացա մրցույթի պայմաններին ու ծրագրին։ Պարզվեց, որ հաքաթոնին հասնելու համար պետք է անցնեիր առցանց թեստ, որը սկսվել էր մայիսի 16-ին։ Եվ, միգուցե, ես հարմար կերպով մոռանայի այդ մասին, քանի որ նամակ չստացա, որով հիշեցնում էի թեստավորման մեկնարկի մասին։ Եվ, պետք է ասեմ, որ ապագայում ԲՈԼՈՐ ՏԱՌԵՐԸ, որոնք գալիս էին ինձ CPU-ից, հետևողականորեն հայտնվում էին սպամի թղթապանակում։ Չնայած ես ամեն անգամ սեղմում էի «անառարկելի» կոճակը: Ես չգիտեմ, թե ինչպես են նրանց հաջողվել նման արդյունքի հասնել, դա ինձ մոտ չստացվեց MailGun-ում փոստով ուղարկելով: Իսկ տղաները կարծես թե ընդհանրապես չգիտեն isnotspam.com-ի նման ծառայությունների գոյության մասին։ Բայց մենք շեղվում ենք.

Հանդիպումներից մեկում ինձ հիշեցրին թեստավորման մեկնարկի մասին ստարտափ ակումբ, այնտեղ քննարկել ենք նաեւ թիմի կազմավորման հարցը։ Բացելով թեստերի ցանկը՝ ես նախ նստեցի Javascript թեստին։ Ընդհանուր առմամբ, առաջադրանքները քիչ թե շատ համարժեք էին (օրինակ, թե ինչ արդյունք կունենա, եթե վահանակում ավելացնեք 1 + «1»): Բայց իմ փորձից ելնելով, ես կօգտագործեի նման թեստեր՝ աշխատանքի կամ շատ մեծ վերապահումներով թիմում հավաքագրելիս: Փաստն այն է, որ իրական աշխատանքում ծրագրավորողը հազվադեպ է հանդիպում նման բաների, կոդն արագ կարգաբերելու իր ունակությամբ. Ընդհանուր առմամբ, ես բավականին արագ կտտացրեցի թեստը, որոշ դեպքերում ես ստուգեցի ինձ վահանակում: Python-ի թեստում առաջադրանքները մոտավորապես նույն տիպի էին, ես նույնպես ինձ փորձարկեցի կոնսոլում և զարմացա, որ ավելի շատ միավորներ հավաքեցի, քան JS-ում, չնայած ես երբեք պրոֆեսիոնալ չեմ ծրագրավորել Python-ում։ Հետագայում մասնակիցների հետ զրույցում ես լսեցի պատմություններ այն մասին, թե ինչպես են ուժեղ ծրագրավորողները ցածր միավորներ են հավաքել թեստերում, ինչպես ոմանք նամակներ են ստանում, որ չեն անցել պրոցեսորի ընտրության գործընթացը, իսկ հետո, այնուամենայնիվ, հրավիրվել են դրան: Հասկանալի է, որ այս թեստերը ստեղծողները, ամենայն հավանականությամբ, ոչինչ չեն լսել թեստի տեսություն, ոչ դրանց հավաստիության ու վավերականության, ոչ թե փորձարկելու մասին, իսկ թեստերով գաղափարն ի սկզբանե ձախողված կլիներ, նույնիսկ եթե հաշվի չառնեինք հաքաթոնի հիմնական նպատակը։ Իսկ հաքի գլխավոր նպատակը, ինչպես հետո իմացա, Գինեսի ռեկորդ սահմանելն էր, և թեստերը հակասում էին դրան։

Թեստերն անցնելուց հետո ինչ-որ պահի զանգահարեցին, հարցրին՝ կմասնակցե՞մ, ճշտեցին մանրամասները և ասացին, թե ինչպես մտնել չաթ՝ թիմ ընտրելու համար։ Շուտով մտա չաթ ու կարճ գրեցի իմ մասին։ Չաթում լրիվ աղբ էր գնում, թվում էր, թե կազմակերպիչները գովազդում էին շատ պատահական մարդկանց, ովքեր կապ չունեն ՏՏ-ի հետ: Բազմաթիվ արտադրանքի մենեջերներ «Սթիվ Ջոբսի մակարդակով» (իրական արտահայտություն մեկ մասնակցի ներկայացումից) տեղադրեցին իրենց մասին պատմություններ, և նորմալ մշակողները նույնիսկ տեսանելի չէին: Բայց ես բախտ ունեցա և շուտով միացա երեք փորձառու JS ծրագրավորողների: Մենք իրար հանդիպեցինք արդեն հաքաթոնին, իսկ հետո թիմին մի աղջիկ ավելացրինք՝ ոգեշնչվելու և կազմակերպչական հարցեր լուծելու համար։ Չեմ հիշում, թե ինչու, բայց մենք վերցրեցինք «Կիբերանվտանգության ուսուցում» թեման և ներառեցինք «Գիտություն և կրթություն 2» թրեքում։ Առաջին անգամ հայտնվեցի 4 ուժեղ ծրագրավորողների թիմում և առաջին անգամ զգացի, թե որքան հեշտ է հաղթել նման կազմի մեջ։ Մենք եկանք անպատրաստ և վիճեցինք մինչև ճաշ և չկարողացանք որոշել, թե ինչ ենք անելու՝ բջջային հավելված, թե վեբ: Ցանկացած այլ իրավիճակում ես կմտածեի, որ դա անհաջող է: Մեզ համար ամենակարևորը հասկանալն էր, թե ինչպես ենք մենք ավելի լավը լինելու, քան մեր մրցակիցները, քանի որ շուրջը շատ թիմեր կային, որոնք կրճատում էին թեստերը, կիբերանվտանգության խաղերը և այլն: Դիտելով այս և Google-ի ուսուցողական ծրագրերն ու հավելվածները՝ մենք որոշեցինք, որ մեր հիմնական տարբերակիչը կլինեն կրակային վարժանքները: Մենք ընտրեցինք մի շարք գործառույթներ, որոնք մեզ համար հետաքրքիր էր իրագործել (գրանցում էլեկտրոնային փոստով և գաղտնաբառի ստուգմամբ հաքերների տվյալների բազաների դեմ, ֆիշինգ նամակների ուղարկում (հայտնի բանկերից նամակների տեսքով), սոցիալական ինժեներիայի ուսուցում չաթում): Որոշելով, թե ինչով ենք մենք անում և հասկանալով, թե ինչպես կարող ենք առանձնանալ, մենք արագ գրեցինք լիարժեք վեբ հավելված, և ես խաղացա հետին պլանի մշակողի անսովոր դերը: Այսպիսով, մենք վստահորեն հաղթեցինք մեր վազքուղում և երեք այլ թիմերի կազմում նվաճեցինք Կազանի եզրափակիչ փուլի ուղեգիր: Ավելի ուշ Կազանում իմացա, որ եզրափակիչի ընտրությունը ֆիկցիա էր, այնտեղ հանդիպեցի շատ ծանոթ դեմքերի այն թիմերից, որոնք չեն անցել ընտրությունը։ Մեզ հետ նույնիսկ 1-ին ալիքի լրագրողներն են զրուցել։ Սակայն դրանից ստացված ռեպորտաժում մեր հավելվածը ցուցադրվել է ընդամենը 1 վայրկյան։

Թվային առաջընթաց. ինչպես դա տեղի ունեցավ
Ձյունածածկ թիմ, որտեղ ես հաղթեցի մարզային փուլում

Եզրափակիչ (Կազան, սեպտեմբերի 27 - 29, 2019)

Բայց հետո սկսվեցին անհաջողությունները։ Snowed թիմի բոլոր ծրագրավորողները մոտ մեկ ամսվա ընթացքում, մեկը մյուսի հետևից, հայտնեցին, որ չեն կարողանա մեկնել Կազան՝ եզրափակիչ: Եվ ես մտածեցի նոր թիմ գտնելու մասին։ Նախ, ես զանգահարեցի Russian Hack Team-ի ընդհանուր չաթում, և թեև այնտեղ բավականին շատ արձագանքներ և թիմեր միանալու հրավերներ ստացա, նրանցից ոչ մեկը ուշադրությունս չգրավեց: Կային անհավասարակշռված թիմեր, ինչպիսիք են արտադրանքը, բջջային ծրագրավորողը, ճակատային մասը, որը հիշեցնում է կարապ, խեցգետին և առակից բերված պիկ: Կային նաև թիմեր, որոնք ինձ հարմար չէին տեխնոլոգիական առումով (օրինակ՝ Flutter-ում բջջային հավելվածի մշակմամբ)։ Վերջապես, մի ​​չաթում, որը ես համարեցի անպետք (նույն VKontakte-ն, որտեղ տեղի ունեցավ թիմերի ընտրությունը տարածաշրջանային փուլի համար), տեղադրվեց գովազդ թիմի համար ֆրոնտենդեր փնտրելու մասին, և ես գրեցի զուտ պատահականության սկզբունքով։ Պարզվեց, որ տղաները Skoltech-ի ասպիրանտներ են ու անմիջապես առաջարկեցին հանդիպել ու ծանոթանալ։ Ինձ դուր եկավ, այն թիմերը, որոնք նախընտրում են անմիջապես ծանոթանալ հեքըթոնի ժամանակ, սովորաբար ինձ ահազանգում են իրենց մոտիվացիայի պակասով: Մենք հանդիպեցինք Պյատնիցկայայի «Ռաքե»-ում։ Տղաները թվացին խելացի, մոտիվացված, վստահ իրենց վրա և հաղթանակի մեջ, և ես որոշումը կայացրեցի հենց այնտեղ։ Մենք դեռ չգիտեինք, թե ինչ հետքեր և առաջադրանքներ են լինելու եզրափակչում, բայց ենթադրում էինք, որ կընտրենք մեքենայական ուսուցման հետ կապված ինչ-որ բան։ Եվ իմ խնդիրն է լինելու ադմին գրել այս հարցի համար, այնպես որ ես նախօրոք պատրաստեցի դրա ձևանմուշը՝ հիմնված antd-admin-ի վրա։
Կազան գնացի անվճար՝ կազմակերպիչների հաշվին։ Ասեմ, որ չաթերում ու բլոգներում արդեն իսկ մեծ դժգոհություն է արտահայտվել տոմսերի գնման և, ընդհանրապես, եզրափակչի կազմակերպման հետ կապված, չեմ վերապատմելու այդ ամենը։

Հասնելով Կազան Էքսպո, գրանցվելով (մի փոքր դժվարություն ունեցա կրծքանշան ստանալու համար) և նախաճաշելով՝ գնացինք ուղու ընտրության: Մենք գնացինք բացման հանդիսավոր բացմանը, որտեղ խոսում էին պաշտոնյաները, մոտ 10 րոպե, փաստորեն, մենք արդեն ունեինք մեր նախընտրած ուղին, բայց մեզ մանրամասներ էին հետաքրքրում։ Թիվ 18 թրեքում (Ռոստելեկոմ), օրինակ, պարզվեց, որ անհրաժեշտ է մշակել բջջային հավելված, թեև դա չկար հակիրճ նկարագրության մեջ։ Մենք կատարեցինք հիմնական ընտրությունը խողովակաշարերի թիվ 8 դեֆեկտոսկոպիայի, «Գազպրոմ Նեֆտ» ՓԲԸ-ի և թիվ 13 պերինատալ կենտրոնների, Ռուսաստանի Դաշնության հաշվապահական պալատի միջև: Երկու դեպքում էլ անհրաժեշտ էր Data Science-ը, և երկու դեպքում էլ համացանցը կարող էր ավելացվել: Թիվ 13 ուղու մեջ մեզ կանգնեցրեց այն փաստը, որ այնտեղ Data Science առաջադրանքը բավականին թույլ էր, անհրաժեշտ էր վերլուծել Rosstat-ը և պարզ չէր, թե արդյոք անհրաժեշտ է ադմինիստրատորի վահանակ: Եվ առաջադրանքի բուն արժեքը կասկածի տակ էր։ Ի վերջո, մենք որոշեցինք, որ որպես թիմ մեզ ավելի հարմար է 8-ի հետքերը, հատկապես, որ տղաներն արդեն ունեին նմանատիպ խնդիրներ լուծելու փորձ: Մենք սկսեցինք մտածել այն սցենարի մասին, որով մեր հավելվածը կօգտագործվի վերջնական օգտագործողի կողմից: Պարզվեց, որ մենք կունենանք երկու տեսակի օգտատերեր՝ տեխնոլոգներ, ովքեր հետաքրքրված էին տեխնիկական տեղեկատվությամբ և մենեջերներ, ովքեր ֆինանսական ցուցանիշների կարիք ունեն։ Երբ հայտնվեց սցենարի գաղափարը, պարզ դարձավ, թե ինչ անել ճակատային մասում, ինչ պետք է նկարի դիզայները և ինչ մեթոդներ են անհրաժեշտ հետևի մասում, հնարավոր դարձավ առաջադրանքների բաշխումը: Թիմում պարտականությունները բաշխվեցին հետևյալ կերպ. երկու հոգի ML-ն լուծեցին տեխնիկական փորձագետներից ստացված տվյալներով, մեկ հոգի գրեց backend-ը Python-ում, ես գրեցի ճակատը React-ում և Antd-ում, դիզայները նկարեց ինտերֆեյսները: Նույնիսկ նստեցինք, որ մեր հարցերը լուծելիս ավելի հարմար լինի շփվել։

Առաջին օրը գրեթե աննկատ անցավ: Տեխնիկական փորձագետների հետ շփվելիս պարզվեց, որ նրանք (Գազպրոմ Նեֆթ) արդեն լուծել են այս խնդիրը, նրանք պարզապես մտածում էին, թե արդյոք դա կարելի է ավելի լավ լուծել։ Չեմ ասի, որ դա նվազեցրեց իմ մոտիվացիան, բայց այն մնացորդ թողեց: Ես զարմացա, որ գիշերը բաժնի վարիչները նշում էին աշխատանքային թիմերը (ինչպես ասում էին վիճակագրության համար), դա սովորաբար չի կիրառվում հաքաթոններում։ Առավոտյան մենք ունեինք առջևի նախատիպը, հետևի որոշ տարրեր և առաջին ML լուծումը պատրաստ: Ընդհանուր առմամբ, փորձագետներին արդեն ցույց տալու բան կար։ Շաբաթ օրը կեսօրին դիզայները ակնհայտորեն նկարեց ավելի շատ ինտերֆեյսեր, քան ես ժամանակ կունենայի կոդավորելու համար և անցավ շնորհանդես ստեղծելուն: Շաբաթ օրը հատկացվել է ռեկորդի գրանցման համար, իսկ առավոտյան դահլիճում աշխատող բոլորին դուրս են մղել միջանցք, այնուհետև դահլիճից մուտքն ու ելքը կատարվել են տարբերանշաններով, և հնարավոր է եղել հեռանալ այլևս։ օրական մեկ ժամից ավելի: Չեմ ասի, որ դա մեզ որևէ էական անհարմարություն պատճառեց, օրվա մեծ մասը մենք դեռ նստած և աշխատում էինք։ Ուտելիքը, իրոք, շատ խղճուկ էր, ճաշի համար մենք ստացանք մի բաժակ արգանակ, կարկանդակ և խնձոր, բայց նորից դա մեզ շատ չտխրեց, մենք կենտրոնացած էինք այլ բանի վրա։

Նրանք պարբերաբար կարմիր բուլ էին տալիս, մեկ ձեռքի համար երկու բանկա, ինչը շատ օգտակար էր: Էներգետիկ ըմպելիք + սուրճի բաղադրատոմսը, որը վաղուց փորձարկվել էր հաքաթոններում, ինձ թույլ տվեց կոդավորել ամբողջ գիշեր և հաջորդ օրը՝ լինելով բաժակի պես կենսուրախ։ Երկրորդ օրը մենք, փաստորեն, պարզապես հավելվածում ավելացրինք նոր հնարավորություններ, հաշվարկեցինք ֆինանսական ցուցանիշները և սկսեցինք ցուցադրել մայրուղիների արատների վիճակագրության գրաֆիկները։ Կոդի վերանայում, որպես այդպիսին, մեր ուղու վրա չկար, փորձագետները խնդրի լուծումը գնահատեցին kaggle.com ոճով՝ հիմնվելով կանխատեսման ճշգրտության վրա, իսկ ճակատային մասը գնահատվեց տեսողականորեն: Մեր ML լուծումը պարզվեց, որ ամենաճշգրիտն էր, երևի հենց դա է մեզ թույլ տվել դառնալ առաջատար։ Շաբաթից կիրակի գիշերը մենք աշխատում էինք մինչև գիշերվա ժամը 2-ը, իսկ հետո քնում էինք այն բնակարանում, որը մենք օգտագործում էինք որպես հիմք: Մոտ 5 ժամ քնեցինք, կիրակի առավոտյան ժամը 9-ին արդեն Կազան Էքսպո-ում էինք։ Ես շտապ-շտապ ինչ-որ բան պատրաստեցի, բայց ժամանակի մեծ մասն անցավ նախապաշտպանությանը պատրաստվելով։ Նախապաշտպանությունը տեղի ունեցավ 2 հոսքով, երկու փորձագետների թիմերի ներկայությամբ, մեզ խնդրեցին վերջինը խոսել, քանի որ փորձագետների երկու թիմերն էլ ուզում էին մեզ լսել։ Մենք սա ընդունեցինք որպես լավ նշան: Հավելվածը ցուցադրվեց իմ նոութբուքից՝ աշխատող մշակող սերվերից, մենք ժամանակ չունեինք հավելվածը պատշաճ կերպով տեղակայելու համար, սակայն բոլորն արեցին նույնը:

Ընդհանուր առմամբ, ամեն ինչ լավ է անցել, մեզ մատնանշել են կետեր, որոնցում մենք կարող ենք բարելավել մեր կիրառումը, և պաշտպանությունից առաջ մենք նույնիսկ փորձել ենք իրականացնել այդ մեկնաբանություններից մի քանիսը։ Պաշտպանությունը նույնպես զարմանալիորեն հարթ ընթացավ։ Ելնելով նախապաշտպանության արդյունքներից՝ մենք գիտեինք, որ միավորներով առաջ ենք, լուծման ճշգրտությամբ առաջատար ենք, լավ ճակատ, լավ դիզայն և, ընդհանուր առմամբ, լավ ենք ունեցել։ զգացմունքները. Մեկ այլ բարենպաստ նշան այն էր, որ մեր բաժնի վարող աղջիկը համերգասրահ մտնելուց առաջ սելֆի արեց մեզ հետ, և ես կասկածեցի, որ նա կարող է ինչ-որ բան իմանա))): Բայց պաշտպանությունից հետո մենք չգիտեինք մեր հաշիվները, ուստի մեր թիմի բեմից հայտավորվելու ժամանակը մի փոքր լարված անցավ։ Բեմում նրանք հանձնեցին ստվարաթուղթ՝ 500000 ռուբլի մակագրությամբ, և յուրաքանչյուրին տրվեց պայուսակ՝ գավաթով և բջջային հեռախոսի մարտկոցով։ Մեզ չհաջողվեց վայելել հաղթանակը և պատշաճ կերպով նշել այն, արագ ընթրեցինք և տաքսիով գնացինք գնացք։

Թվային առաջընթաց. ինչպես դա տեղի ունեցավ
WAICO թիմը հաղթում է եզրափակիչում

Մոսկվա վերադառնալուն պես НТВ-ի լրագրողները մեզ հետ հարցազրույց վերցրեցին։ Պոլյանկայի Կվարտալ 44 սրճարանի երկրորդ հարկում մի ամբողջ ժամ նկարեցինք, բայց լուրերը ցույց տվեցին ընդամենը մոտ 10 վայրկյան, չէ՞ որ մարզային փուլի համեմատ ուժեղ առաջընթաց։

Եթե ​​ամփոփենք թվային առաջընթացի ընդհանուր տպավորությունները, ապա դրանք հետևյալն են. Միջոցառման վրա մեծ գումար է ծախսվել, նման մասշտաբի հեքըթոններ դեռ չէի տեսել։ Բայց ես չեմ կարող ասել, որ դա արդարացված է, և որ դա իսկապես արդյունք կտա։ Կազան եկած մասնակիցների մի զգալի մասը պարզապես խնջույքի մասնակիցներ էին, ովքեր չգիտեին, թե ինչպես անել իրենց ձեռքերով, և որոնց ստիպեցին ռեկորդ սահմանել։ Չեմ կարող ասել, որ եզրափակչում մրցակցությունն ավելի բարձր էր, քան մարզային փուլում։ Նաև կասկածելի է որոշ ուղիների առաջադրանքների արժեքն ու օգտակարությունը: Արդյունաբերական մակարդակում որոշ խնդիրներ վաղուց լուծված են։ Ինչպես պարզվեց ավելի ուշ, որոշ կազմակերպություններ, որոնք անցկացնում էին հետքերը, շահագրգռված չէին դրանց լուծմամբ։ Եվ այս պատմությունը դեռ ավարտված չէ, յուրաքանչյուր թրեքից ընտրվել են առաջատար թիմերը նախաաքսելերատորի համար, և ենթադրվում է, որ նրանք կստացվեն ԲԱԽՄԱՆ ստարտափներ։ Բայց ես դեռ պատրաստ չեմ գրել այս մասին, կտեսնենք, թե ինչ կստացվի դրանից:

Source: www.habr.com

Добавить комментарий