Дигитален пробив - како се случи

Ова не е првиот хакатон на кој победувам, не е првиот на кој пишување, и ова не е прв пост на Хабре посветен на „Дигитален пробив“. Но, не можев да не напишам. Сметам дека моето искуство е доволно единствено за споделување. Јас сум веројатно единствениот човек на овој хакатон кој победи на регионалната фаза и финалињата како дел од различни тимови. Сакате да знаете како се случи ова? Добредојдовте во мачка.

Регионална фаза (Москва, 27 - 28 јули 2019 година).

Првпат видов реклама за „Digital Breakthrough“ некаде во март-април оваа година. Секако, не можев да поминам толку голем хакатон и да се регистрирам на страницата. Таму се запознав со условите и програмата на натпреварот. Се испостави дека за да стигнете до хакатонот, требаше да поминете онлајн тест, кој започна на 16 мај. И, можеби, погодно ќе заборавев на тоа, бидејќи не добив писмо со потсетување за почетокот на тестирањето. И, морам да кажам, во иднина СИТЕ букви што ми доаѓаа од процесорот постојано завршуваа во папката спам. Иако секојпат кликнував на копчето „не е приговорно“. Не знам како успеаја да постигнат таков резултат, не ми успеа со испраќањето по пошта на MailGun. И се чини дека момците воопшто не знаат за постоењето на услуги како isnotspam.com. Но, ние се оддалечуваме.

На еден од состаноците ме потсетија за почетокот на тестирањето стартап клуб, таму разговаравме и за формирање на тимот. Откако ја отворив листата на тестови, прво седнав на тестот Javascript. Генерално, задачите беа повеќе или помалку соодветни (како што ќе биде резултатот ако додадете 1 + '1' во конзолата). Но, од моето искуство, јас би користел такви тестови при регрутирање за работа или тим со многу големи резервации. Факт е дека во вистинска работа, програмер ретко се среќава со такви работи, со неговата способност брзо да го дебагира кодот - ова знаење не е во корелација на никаков начин, а за такви работи можете да се обучите за интервјуа прилично лесно (знам од себе). Во принцип, го кликнав тестот доста брзо, во некои случаи се проверував во конзолата. Во тестот за питон задачите беа приближно ист тип, јас се тестирав и во конзолата и бев изненаден што освоив повеќе поени отколку во JS, иако никогаш не сум програмирал професионално во Python. Подоцна, во разговорите со учесниците, слушнав приказни за тоа како силните програмери постигнале ниски резултати на тестовите, како некои луѓе добивале писма во кои пишувале дека не го поминале процесот на селекција за процесорот, а потоа сепак биле поканети на него. Јасно е дека креаторите на овие тестови најверојатно не слушнале ништо за тоа теорија на тест, ниту за нивната веродостојност и валидност, ниту за тоа како да се тестираат, а идејата со тестови ќе беше неуспешна од самиот почеток, дури и да не ја земевме предвид главната цел на хакатонот. А главната цел на хакирањето, како што дознав подоцна, беше да се постави Гинисов рекорд, а тестовите се спротивставија на тоа.

Во одреден момент откако ги поминав тестовите, ми се јавија, ме прашаа дали ќе учествувам, ми ги разјаснија деталите и ми кажаа како да влезам во разговорот за избор на тим. Набргу влегов во чатот и напишав накратко за себе. Во разговорот се случуваше целосно ѓубре, се чинеше дека организаторите им рекламираа на многу случајни луѓе кои немаат никаква врска со ИТ. Бројни менаџери на производи „на ниво на Стив Џобс“ (вистинска фраза од поднесувањето на еден учесник) објавуваа приказни за себе, а нормалните програмери не беа ни видливи. Но, имав среќа и набрзо се приклучив на тројца искусни JS програмери. Се запознавме веќе на хакатонот, а потоа додадовме девојка во тимот за инспирација и решавање на организациски прашања. Не се сеќавам зошто, но ја зедовме темата „Обука за сајбер безбедност“ и ја вклучивме во патеката „Наука и образование 2“. За прв пат се најдов во тим од 4 силни програмери и за прв пат почувствував колку е лесно да се победи во таков состав. Дојдовме неподготвени и се расправавме до ручек и не можевме да одлучиме што ќе правиме: мобилна апликација или веб. Во која било друга ситуација би помислил дека е неуспех. Најважно ни беше да разбереме како ќе бидеме подобри од нашите конкуренти, бидејќи имаше многу тимови наоколу кои вртеа тестови, игри за сајбер безбедност и слично. Откако го разгледавме ова и ги гуглавме програмите и апликациите за обука, решивме дека нашата главна разлика ќе бидат вежбите за противпожарни вежби. Избравме голем број на функции кои ни се интересни за имплементација (регистрација со е-пошта и проверка на лозинка против бази на податоци на хакери, испраќање фишинг-мејлови (во форма на писма од познати банки), обука за социјално инженерство во разговор). Откако одлучивме што правиме и разбравме како можеме да се истакнеме, набрзина напишавме полноправна веб-апликација, а јас ја одиграв необичната улога на заднински развивач. Така, самоуверено ја добивме нашата патека и како дел од три други екипи се пласиравме во финалето во Казан. Подоцна, во Казан, дознав дека изборот за финалето е фикција, запознав многу познати лица од тимовите што не го поминаа изборот. Бевме дури и интервјуирани од новинари од Канал 1. Но, во извештајот од него нашата апликација беше прикажана само 1 секунда.

Дигитален пробив - како се случи
Снежана екипа, каде што победив на регионалната фаза

Финале (Казан, 27-29 септември 2019 година)

Но, тогаш започнаа неуспесите. Сите програмери од тимот на Snowed во рок од околу еден месец, еден по друг, пријавија дека нема да можат да одат во Казан на финалето. И размислував да најдам нов тим. Прво, се јавив во генералниот разговор на рускиот тим за хакери, и иако таму добив доста одговори и покани да се приклучам на тимови, ниту еден од нив не ми го привлече вниманието. Имаше неурамнотежени тимови, како што се производ, развивач на мобилни телефони, преден дел, кој потсетува на лебед, рак и штука од басна. Имаше и тимови кои не ми беа соодветни во однос на технологијата (на пример, со развој на мобилна апликација во Flutter). Конечно, во муабетот што го сметав за ѓубре (истиот VKontakte каде што се избираше тимови за регионалната фаза), беше објавен оглас за барање фронтендер за тимот и напишав чисто по случаен избор. Се покажа дека момците се дипломирани студенти на Сколтех и веднаш се понудија да се сретнат и да се запознаат. Ми се допадна тимовите кои претпочитаат да се запознаат веднаш на хакатон, обично ме алармираат поради нивниот недостаток на мотивација. Се сретнавме во „Раке“ на Пјатницкаја. Момците делуваа паметно, мотивирано, сигурни во себе и во победата, а јас ја донесов одлуката токму таму. Сè уште не знаевме кои патеки и задачи ќе бидат во финалето, но претпоставувавме дека ќе избереме нешто поврзано со Машинско учење. И мојата задача ќе биде да напишам админ за ова прашање, затоа однапред подготвив образец за ова врз основа на antd-admin.
Бесплатно отидов во Казан, на сметка на организаторите. Морам да кажам дека во разговорите и блоговите веќе е изразено големо незадоволство во врска со набавката на влезниците и воопшто, организацијата на финалето, нема да прераскажувам се.

Откако пристигнавме на Казан Експо, се регистриравме (имав малку проблем да добијам значка) и појадувавме, отидовме да избереме патека. Отидовме само на свеченото отворање, каде што службените лица зборуваа, всушност, веќе ги имавме нашите омилени патеки, но бевме заинтересирани за деталите. Во патеката бр. 10 (Ростелеком), на пример, се покажа дека е неопходно да се развие мобилна апликација, иако тоа не беше во краткиот опис. Го направивме главниот избор помеѓу патеката бр. 18 Дефектоскопија на цевководи, Гаспром Нефт ПЈСЦ и патеката бр. 8 Перинатални центри, Сметководствена комора на Руската Федерација. Во двата случаи, беше потребна Data Science, а во двата случаи, веб можеше да се додаде. Во патеката бр. 13, бевме запрени од фактот дека задачата Data Science таму беше прилично слаба, беше неопходно да се анализира Росстат и не беше јасно дали е потребен административен панел. И самата вредност на задачата беше доведена во прашање. На крајот, решивме дека како тим ни одговараат 13, особено затоа што момците веќе имаа искуство во решавање на слични проблеми. Започнавме со размислување за сценариото во кое нашата апликација ќе ја користи крајниот корисник. Се испостави дека ќе имаме два типа корисници: техничари кои се заинтересирани за технички информации и менаџери на кои им се потребни финансиски показатели. Откако имавме идеја за сценариото, стана јасно што да правиме на предниот дел, што треба да нацрта дизајнерот и кои методи се потребни на задниот дел, стана можно да се дистрибуираат задачите. Одговорностите во тимот беа распределени на следниов начин: две лица решаваа ML со податоци добиени од технички експерти, едно лице го напиша задниот дел во Python, јас го напишав предниот дел во React и Antd, дизајнерот ги нацрта интерфејсите. Дури и седнавме за да ни биде попогодно да комуницираме додека ги решаваме нашите проблеми.

Првиот ден помина речиси незабележано. Во комуникацијата со техничките експерти, се покажа дека тие (Гаспром Нефт) веќе го решиле овој проблем, тие само се прашуваа дали може подобро да се реши. Нема да кажам дека тоа ми ја намали мотивацијата, но остави остаток. Бев изненаден што ноќе модераторите на секцијата ги забележаа работните тимови (како што рекоа за статистика тоа обично не се практикува на хакатоните); До утро имавме готов прототип на предната страна, некои зачетоци на задната страна и првото ML решение. Во принцип, веќе имаше што да им покаже на експертите. Во саботата попладне, дизајнерот очигледно нацртал повеќе интерфејси отколку што би имал време за кодирање и се префрли на создавање презентација. Саботата беше одвоена за регистрација на рекордот, а утрото сите што работеа во салата беа исфрлени во ходникот, потоа влегувањето и излегувањето од салата се вршеше со помош на беџови, а можеше да се замине уште не од еден час дневно. Нема да кажам дека тоа ни предизвика значителни непријатности поголемиот дел од денот сè уште седевме и работевме. Храната, навистина, беше многу скудна за ручек, добивме чаша супа, пита и јаболко, но повторно тоа не вознемири многу, бевме фокусирани на нешто друго.

Тие периодично даваа ред бул, по две лименки по рака, што беше многу корисно. Рецептот за енергетски пијалок + кафе, кој долго време беше тестиран на хакатоните, ми овозможи да ширам цела ноќ и следниот ден, весел како чаша. Вториот ден, всушност, едноставно додадовме нови функции во апликацијата, пресметавме финансиски показатели и почнавме да прикажуваме графикони врз основа на статистиката за дефекти на автопатиштата. Немаше преглед на кодот како таков во нашата патека, експертите го оценија решението на проблемот во стилот на kaggle.com, врз основа на точноста на прогнозата, а предниот дел беше проценет визуелно. Нашето ML решение се покажа како најточно, можеби тоа е она што ни овозможи да станеме лидери. Ноќта од сабота кон недела работевме до 2 часот по полноќ, а потоа спиевме во станот што го користевме како база. Спиевме околу 5 часа, во недела во 9 часот веќе бевме на Казан Експо. Набрзина подготвив нешто, но поголемиот дел од времето го поминав во подготовка за претодбрана. Предодбраните се одвиваа во 2 текови, пред два тима експерти од нас беше побарано да зборуваме последни, бидејќи и двата тима експерти сакаа да не слушаат. Го сфативме ова како добар знак. Апликацијата беше прикажана од мојот лаптоп, од сервер кој работи на dev, немавме време правилно да ја распоредиме апликацијата, сепак, сите го направија истото.

Генерално, се помина добро, ни беа посочени точки во кои можевме да ја подобриме нашата апликација, а во времето пред одбраната дури се обидовме да спроведеме некои од овие коментари. Изненадувачки мазно мина и одбраната. Врз основа на резултатите од предодбраната, знаевме дека сме напредни во однос на поени, бевме во водство по прецизност на решението, имавме добар преден дел, добар дизајн и, генерално, имавме добри чувства. Друг поволен знак беше тоа што девојката модератор од нашата секција направи селфи со нас пред да влезе во концертната сала, а потоа се посомневав дека можеби знае нешто))). Но, ние не ги знаевме нашите резултати по одбраната, па времето до објавувањето на нашиот тим од сцената помина малку тензично. На сцената тие дадоа картон со натпис 500000 рубли и на секој човек му беше дадена торба со кригла и батерија за мобилен телефон. Не успеавме да уживаме во победата и да ја прославиме како што треба, набрзина вечеравме и отидовме со такси до возот.

Дигитален пробив - како се случи
Тимот ВАИКО победува во финалето

По враќањето во Москва, новинарите на НТВ не интервјуираа. Снимавме цел час на вториот кат на кафулето Квартал 44 на Полјанка, но вестите покажаа само околу 10 секунди, силен напредок во споредба со регионалната сцена.

Ако ги сумираме општите впечатоци од Дигиталниот пробив, тие се како што следува. За настанот се потрошија многу пари. Но, не можам да кажам дека ова е оправдано и дека навистина ќе се исплати. Значителен дел од учесниците кои дојдоа во Казан беа едноставно журкачи кои не знаеја ништо да направат со свои раце, а беа принудени да постават рекорд. Не можам да кажам дека конкуренцијата во финалето беше поголема отколку во регионалната фаза. Исто така, вредноста и корисноста на задачите на некои песни се сомнителни. Некои проблеми одамна се решени на индустриско ниво. Како што се испостави подоцна, некои организации што ги спроведуваа патеките не беа заинтересирани да ги решат. И оваа приказна сè уште не е завршена, водечките тимови од секоја патека беа избрани за пред-акцелератор, а се претпоставува дека ќе испаднат како BREAKTHROUG startups. Но, сè уште не сум подготвен да пишувам за ова, ќе видиме што ќе излезе од тоа.

Извор: www.habr.com

Додадете коментар