Санариптик ачылыш - бул кантип болду

Бул мен утуп алган биринчи хакатон эмес, биринчиси эмес жазуу, жана бул Habré боюнча "Digital Breakthrough" арналган биринчи билдирүү эмес. Бирок жазбай коё албадым. Мен өзүмдүн тажрыйбамды бөлүшүү үчүн уникалдуу деп эсептейм. Мен бул хакатондо ар кандай командалардын курамында аймактык этапта жана финалда жеңген жалгыз адам болсом керек. Бул кантип болгонун билгиңиз келеби? кош келиңиз.

Аймактык этап (Москва, 27-28-июль, 2019-ж.).

Мен биринчи жолу ушул жылдын март-апрель айларында "Digital Breakthrough" жарнамасын көрдүм. Албетте, мен мындай чоң хакатондон өтүп кете алган жокмун жана веб-сайтка катталдым. Ал жерден сынактын шарттары жана программасы менен тааныштым. Хакатонго кирүү үчүн 16-майда башталган онлайн тесттен өтүш керек экен. Жана, балким, мен бул жөнүндө унутуп калмакмын, анткени мен тестирлөөнүн башталышы жөнүндө эскерткен кат алган эмесмин. Жана айта кетейин, келечекте CPUдан мага келген БАРДЫК КАТТАР ырааттуу түрдө спам папкасына түшүп калат. Мен ар бир жолу "каршы эмес" баскычын бассам да. Алар кантип ушундай натыйжага жетишкенин билбейм; MailGun аркылуу почта аркылуу жөнөтүү мен үчүн жакшы болгон жок. Ал эми балдар isnotspam.com сыяктуу кызматтардын бар экенин такыр билишпейт окшойт. Бирок биз чегинебиз.

Жыйындардын биринде тестирлөөнүн башталышын эске салдым стартап клубу, ал жерде биз команданы тузууну да талкууладык. Тесттердин тизмесин ачып, алгач Javascript тестине отурдум. Жалпысынан алганда, тапшырмалар аздыр-көптүр адекваттуу болгон (консолго 1 + '1' кошсоңуз, натыйжа кандай болот). Бирок өзүмдүн тажрыйбам боюнча, мен мындай тесттерди жумушка же өтө чоң резервдери бар командага алууда колдонот элем. Чындыгында, чыныгы жумушта программист мындай нерселерге сейрек кездешет, анын кодун тез оңдоо жөндөмү менен - ​​бул билим эч кандай байланышпайт жана сиз интервьюга оңой эле машыксаңыз болот (мен өзүм билем). Жалпысынан, мен тестти тез эле басып өттүм, кээ бир учурларда мен өзүмдү консолдо текшердим. Python тестинде тапшырмалар болжол менен бирдей типте болгон, мен өзүмдү консолдо сынап көрдүм жана JSге караганда көбүрөөк упай топтогонума таң калдым, бирок мен эч качан Pythonдо профессионалдуу программалаган эмесмин. Кийинчерээк катышуучулар менен маектешип жатып, мен күчтүү программисттер тесттерден аз упай алганы, кээ бир адамдар CPU тандоо процессинен өтпөй калганы тууралуу каттарды алып, анан баары бир ага чакырылганын уктум. Бул сыноолорду жаратуучулар, кыязы, эч нерсе уккан эмес экени көрүнүп турат тест теориясы, алардын ишенимдүүлүгү жана негиздүүлүгү жөнүндө да, аларды кантип сынап көрүү жөнүндө да, жана тесттер менен идея, биз хакатондун негизги максатын эске албаганыбызда, башынан эле ийгиликсиз болуп калмак. Ал эми хакерликтин негизги максаты, мен кийинчерээк билдим, Гиннесстин рекордун орнотуу болгон жана тесттер ага карама-каршы келген.

Тесттен өткөндөн кийин, алар мага чалып, катышар-катышпашымды сурап, чоо-жайын тактап, команданы тандоо үчүн чатта кантип кирүү керектигин айтышты. Көп өтпөй чатка кирип, өзүм жөнүндө кыскача жаздым. Чаттын ичинде таштандылар болгон; уюштуруучулар IT менен эч кандай байланышы жок көптөгөн туш келди адамдарды жарнамалап жаткандай туюлду. Көптөгөн өнүм менеджерлери "Стив Джобстун деңгээлинде" (бир катышуучунун билдирүүсүнөн алынган чыныгы сөз айкашы) өздөрү жөнүндө окуяларды жарыялашкан жана кадимки иштеп чыгуучулар көрүнгөн эмес. Бирок мен бактылуу болуп, көп өтпөй үч тажрыйбалуу JS программисттерине кошулдум. Экөөбүз хакатондо таанышканбыз, андан кийин шыктануу жана уюштуруу маселелерин чечүү үчүн командага бир кызды кошконбуз. Эмнеге экени эсимде жок, бирок биз “Киберкоопсуздук боюнча тренинг” деген теманы алып, “Илим жана билим 2” трекке киргиздик. Биринчи жолу мен өзүмдү 4 күчтүү программисттен турган командада таптым жана биринчи жолу мындай курамда жеңишке жетүү канчалык оңой экенин сездим. Даярдыксыз келип, түшкү тамакка чейин талашып-тартышып, эмне кылаарыбызды чече албай калдык: мобилдик тиркемеби же веб-тиркемеби. Башка жагдайда мен муну ийгиликсиздик деп ойломокмун. Биз үчүн эң негизгиси, биздин атаандаштарыбыздан кандайча жакшыраак болорун түшүнүү болду, анткени айланасында көптөгөн командалар бар болчу, алар тесттерди, киберкоопсуздук оюндарын жана ушул сыяктууларды кесип жатты. Ушул жана Google окуу программаларын жана колдонмолорун карап чыккандан кийин, биз негизги айырмалоочу өрткө каршы машыгуу машыгуулары болот деп чечтик. Биз ишке ашыруу үчүн кызыктуу болгон бир катар функцияларды тандап алдык (хакерлердин маалымат базасына каршы электрондук почта жана паролду текшерүү менен каттоо, фишингдик каттарды жөнөтүү (белгилүү банктардын каттары түрүндө), чатта социалдык инженерия боюнча тренинг). Эмне кылып жатканыбызды чечип, кантип айырмаланарыбызды түшүнүп, биз бат эле толук кандуу веб-тиркемени жаздык жана мен адаттан тыш иштеп чыгуучунун ролун ойнодук. Ошентип, биз ишенимдуу түрдө өз жолубузду жеңип алдык жана башка үч команданын курамында Казанда финалга жолдомо алдык. Кийинчерээк Казанда финалга тандоо ойдон чыгарылганын билдим, ал жерден тандоодон өтпөй калган командалардын көптөгөн тааныш жүздөрү менен тааныштым. Жадакалса 1-каналдын журналисттери да маектештик. Бирок андан алынган отчетто биздин арыз 1 секунда гана көрсөтүлгөн.

Санариптик ачылыш - бул кантип болду
Областтык этапта жеңип чыккан Кар командасы

Финал (Казань, 27-29-сентябрь, 2019-ж.)

Бирок андан кийин ийгиликсиздиктер башталды. «Карлуу» командасынын бардык программисттери бир айдын ичинде биринин артынан бири Казанга финалга бара албай тургандыктарын билдиришти. Анан мен жаңы команда табуу жөнүндө ойлондум. Биринчиден, мен Россиянын Hack Team командасынын жалпы чатына чалдым, ал жерде мага абдан көп жооптор жана командаларга кошулууга чакыруулар келип түшкөнү менен, алардын бири да көңүлүмдү бурган жок. Продукт, мобилдик иштеп чыгуучу, ак куу, шаян жана тамсилдеги шортанды элестеткен фронт-энд сыяктуу тең салмактуу эмес командалар болгон. Технология жагынан мага ылайык келбеген командалар да болду (мисалы, Флуттерде мобилдик тиркемени иштеп чыгуу менен). Акыр-аягы, мен таштанды деп эсептеген чатта (аймактык этапка командалар тандалып алынган ошол эле ВКонтакте) командага фрондер издөө жөнүндө жарнак жарыяланып, мен жөн эле туш келди жаздым. Жигиттер Сколтехтин аспиранттары болуп чыгып, дароо жолугуп, таанышууну сунушташкан. Мага жакты; хакатондо бири-бири менен дароо таанышууну каалаган командалар, адатта, мотивациянын жоктугу менен мени тынчсыздандырышат. Пятницкаядагы «Раке» деген жерден жолуктук. Жигиттер акылдуу, мотивациялуу, өзүнө жана жеңишке ишенимдүү көрүндү, мен ошол жерден эле чечим кабыл алдым. Финалда кандай тректер жана тапшырмалар болорун азырынча билген эмеспиз, бирок биз Machine Learning менен байланышкан нерсени тандайбыз деп ойлогонбуз. Ал эми менин милдетим бул маселе боюнча админ жазуу болот, ошондуктан мен алдын ала antd-admin негизинде бул үчүн шаблон даярдадым.
Казанга бекер, уюштуруучулардын эсебинен бардым. Билеттерди сатып алууга жана жалпысынан финалды уюштурууга байланыштуу чаттарда жана блогдордо буга чейин эле көптөгөн нааразычылыктар айтылганын айтышым керек, мен мунун баарын кайталап отурбайм.

Казан ЭКСПОго келип, катталып (төш белги алууда бир аз кыйналдым) жана эртең мененки тамактан кийин, биз трек тандоого бардык. Биз расмий өкүлдөр сүйлөгөн салтанаттуу ачылышка 10 мүнөттөй гана бардык.Чындыгында, биз каалаган тректерибиз бар болчу, бирок биз майда-чүйдөсүнө чейин кызыкканбыз. Мисалы, №18 тректе (Ростелеком) мобилдик тиркемени иштеп чыгуу зарыл экени белгилүү болду, бирок бул кыскача сүрөттөлүштө жок. Биз негизги тандоону №8 түтүк өткөргүчтөрдүн дефектоскопиясы, «Газпром нефть» ЖАК жана №13 Перинаталдык борборлор, Россия Федерациясынын Эсеп палатасынын ортосунда жасадык. Эки учурда тең Data Science керек болгон жана эки учурда тең веб кошулушу мүмкүн болчу. №13 тректе, ал жердеги Data Science тапшырмасы абдан начар болгондуктан, Росстатты талдоо керек жана администратор панелинин керекпи же жокпу, анык эмес экени бизди токтотту. Ал эми тапшырманын баалуулугу күмөн болчу. Акыр-аягы, биз команда катары биз 8ди көзөмөлдөөгө көбүрөөк ылайыктуу деп чечтик, айрыкча, балдар ушуга окшош маселелерди чечүүдө тажрыйбага ээ болгон. Биз колдонмобузду акыркы колдонуучу колдоно турган сценарийди ойлонуп баштадык. Көрсө, бизде колдонуучулардын эки түрү болот экен: техникалык маалыматка кызыккан техниктер жана финансылык көрсөткүчтөргө муктаж болгон менеджерлер. Сценарийдин идеясы пайда болгондо, алдыңкы жагында эмне кылуу керектиги, дизайнер эмнени тартуу керектиги жана арткы жагында кандай ыкмалар керек экендиги белгилүү болду, тапшырмаларды бөлүштүрүү мүмкүн болду. Командадагы жоопкерчиликтер төмөнкүчө бөлүштүрүлдү: эки адам MLди техникалык эксперттерден алынган маалыматтар менен чечишти, бир адам Python'до бэкендди жазды, мен React жана Antd'де фронтту жаздым, дизайнер интерфейстерди тартты. Жадакалса көйгөйлөрүбүздү чечип жатканда баарлашууга ыңгайлуу болсун деп отурдук.

Биринчи күнү дээрлик байкалбай учуп өттү. Техникалык эксперттер менен сүйлөшкөндө алар («Газпром Нефть») бул маселени эчак эле чечип коюшкан экен, жөн гана жакшыраак чечсе болобу деп ойлоп жатышкан экен. Бул менин мотивациямды азайтты деп айталбайм, бирок калдык калтырды. Мени таң калдым, түнү секциянын модераторлору жумушчу топторду белгилешкен (алар статистика үчүн айткандай); бул адатта хакатондо колдонулбайт. Эртең менен бизде фронттун прототиби, арткы бөлүгүнүн кээ бир рудименттери жана биринчи ML чечими даяр болду. Жалпысынан алганда, буга чейин эксперттерге көрсөтө турган нерсе бар болчу. Ишемби күнү түштөн кийин дизайнер, албетте, мен коддогонго убакыт таппай, көбүрөөк интерфейстерди тартты жана презентация түзүүгө өттү. Ишемби күнү протоколду каттоо үчүн бөлүнүп, эртең менен залда иштегендердин баары коридорго чыгарылып, андан кийин кирүү жана чыгуу значоктордун жардамы менен аткарылып, андан ары чыгууга мүмкүн болгон. күнүнө бир сааттан ашык. Бул бизге олуттуу ыңгайсыздык жаратты деп айтпай эле коёюн, биз дагы эле отуруп, иштеп жүрдүк. Тамак, чынында эле, абдан аз болчу, түшкү тамакка биз бир стакан сорпо, пирог жана алма алдык, бирок бул дагы бизди капа кылган жок, биз башка нерсеге көңүл бурдук.

Алар мезгил-мезгили менен кызыл бука, колуна эки банка берип, абдан пайдалуу болду. Хакатондордо көптөн бери сыналып келген энергетикалык суусундук + кофе рецепти мага стакандай шайыр болуп, түнү бою жана эртеси күнү код жазууга мүмкүндүк берди. Экинчи күнү биз, чындыгында, жөн гана тиркемеге жаңы функцияларды кошуп, финансылык көрсөткүчтөрдү эсептеп, автожолдордогу кемчиликтердин статистикасы боюнча графиктерди көрсөтө баштадык. Биздин тректе мындай кодду карап чыгуу болгон эмес; эксперттер маселенин чечилишин kaggle.com стилинде болжолдоонун тактыгына жараша баалашты жана алдыңкы визуалдык баа берилди. Биздин ML чечимибиз эң так болуп чыкты, балким, бул бизге лидер болууга мүмкүндүк берди. Ишембиден жекшембиге караган түнү түнкү саат 2ге чейин иштеп, анан база катары колдонгон батирге уктап калдык. Биз 5 сааттай уктадык, жекшемби күнү эртең мененки саат 9да Казан ЭКСПОсунда болдук. Мен шашылыш түрдө бир нерсе даярдадым, бирок көпчүлүк убактымды алдын ала коргонууга даярдандым. Алдын ала коргонуу эки агымда, эки эксперттик топтун алдында өттү, бизден акыркы сөздү айтышты суранышты, анткени эки эксперттик команда тең бизди угууну каалашкан. Биз муну жакшы жышаан катары кабыл алдык. Тиркеме менин ноутбугумдан, иштеп жаткан иштеп чыгуучу серверден көрсөтүлдү; бизде тиркемени туура жайгаштырууга убакыт болгон жок, бирок бардыгы бирдей кылышты.

Жалпысынан алганда, баары ойдогудай болду, бизге арызыбызды жакшырта ала турган жагдайлар айтылды, ал эми коргоого чейинки мезгилде биз бул сын-пикирлердин айрымдарын ишке ашырууга аракет кылдык. Коргонуу да таң калыштуу жылмакай өттү. Алдын ала коргонуунун жыйынтыгы боюнча биз упайлар боюнча алдыда экенибизди, чечимдин тактыгы боюнча алдыда экенибизди, жакшы алдыңкы планга, жакшы дизайнга жана жалпысынан жакшынакай экенибизди билдик. сезимдер. Дагы бир жагымдуу жышаан, биздин секциядагы модератор кыз концерттик залга кирер алдында биз менен селфиге түшкөнү, анан мен бир нерсени билиши мүмкүн деп шектендим))). Бирок коргонуудан кийин упайыбызды билбедик, ошондуктан биздин команда сахнадан жарыя кылынганга чейинки убакыт бир аз чыңалып өттү. Сахнада 500000 XNUMX рубль деген жазуусу бар картон тапшырып, ар бирине кружка жана уюлдук телефондун аккумулятору салынган баштык берилди. Жеңиштен ырахат алып, аны туура майрамдай алган жокпуз, тез эле кечки тамактанып, поездге такси менен жөнөдүк.

Санариптик ачылыш - бул кантип болду
WAICO командасы финалда жеңишке жетти

Москвага кайтып келгенден кийин НТВ телеканалынын журналисттери бизден интервью алышты. Полянкадагы «Квартал 44» кафесинин экинчи кабатында бир саат бою съёмка тарттык, бирок кабар 10 секунддай эле көрсөтүлдү.Анткени областтык этапка салыштырмалуу күчтүү жылыштар болду.

Эгер Digital Breakthrough жалпы таасирлерин жалпылай турган болсок, алар төмөндөгүдөй. Иш-чарага көп каражат жумшалды, мен мындай масштабдагы хакатондорду мурда көргөн эмесмин. Бирок муну негиздүү жана чындап эле актайт деп айта албайм. Казанга келген катышуучулардын бир кыйла бөлүгүн жөн эле өз колу менен жасаганды билбеген, рекорд коюуга аргасыз болгон кеченин катышуучулары түздү. Финалда атаандаштык облустук этапка караганда жогору болду деп айта албайм. Ошондой эле, кээ бир тректердин милдеттеринин мааниси жана пайдалуулугу шек туудурат. Кээ бир проблемалар ендуруштук децгээлде эчак эле чечилген. Кийин белгилүү болгондой, тректерди жүргүзгөн айрым уюмдар аларды чечүүгө кызыкдар эмес. Ал эми бул окуя али бүтө элек, алдын ала акселератор үчүн ар бир тректен алдыңкы командалар тандалып алынган жана алар BREAKTHROUGH стартаптары болуп чыгат деп болжолдонууда. Бирок мен бул тууралуу жазууга азырынча даяр эмесмин, андан эмне болорун көрөбүз.

Source: www.habr.com

Комментарий кошуу