Это не первый хакатон, который я выигрываю, не первый, про который пишу, и это далеко не первый пост на хабре, посвященный "Цифровому прорыву". Но не написать я не мог. Считаю свой опыт достаточно уникальным, чтобы им поделиться. Вероятно, я единственный на этом хакатоне человек, который выиграл региональный этап и финал в составе разных команд. Хотите узнать, как это произошло? Добро пожаловать под кат.


Региональный этап (Москва, 27 — 28 июля 2019 года).


Рекламу "Цифрового прорыва" я впервые увидел где-то в марте — апреле этого года. Естественно, пройти мимо такого крупного хакатона я не мог и зарегистрировался на сайте. Там же ознакомился с условиями и программой конкурса. Оказалось, чтобы попасть на хакатон, нужно было пройти онлайн-тестирование, которое начиналось с 16 мая. И, возможно, я бы про это благополучно забыл, так как письмо с напоминанием о старте тестирования не приходило. И, надо сказать, в дальнейшем ВСЕ ПИСЬМА, которые приходили мне от ЦП, стабильно попадали в папку спам. Хоть я и каждый раз нажимал кнопку "не является нежелательным". Не знаю, как им удалось добиться такого результата, у меня с рассылкой на MailGun так не получалось. А про существование сервисов типа isnotspam.com ребята, похоже, не знают в принципе. Но мы отклонились.


О начале тестирования мне напомнили на одной из встреч стартап клуба, там же мы обсудили формирование команды. Открыв список тестов, я первым делом засел за тест по Javascript. В целом, задания были более-менее адекватные (типа, какой результат будет, если сложить в консоли 1 + '1'). Но по своему опыту использовать такие тесты при подборе на работу или в команду я бы стал с очень большими оговорками. Дело в том, что в реальной работе программист с такими вещами сталкивается редко, с его способностью быстро ебашить код, — эти знания никак не коррелируют, а натренироваться на такие вещи для собеседований можно довольно легко (знаю по себе). В общем, я нащелкал тест довольно быстро, в некоторых случаях проверял себя в консоли. В тесте по python задания были примерно такого же типа, тоже проверял себя в консоли, с удивлением набрал больше баллов чем по JS, хотя на питоне я никогда профессионально не программировал. Потом уже в общении с участниками слышал истории, как сильные программисты набирали низкие баллы по тестам, как некоторым людям приходили письма о том, что они не прошли отбор на ЦП, а затем их все равно на него приглашали. Понятно, что создатели этих тестов, скорее всего, ничего не слышали ни про теорию тестов, ни про их надежность и валидность, ни про то, как их апробировать, и идея с тестами изначально была бы провальной, даже если не брать во внимание главную цель хакатона. А главная цель хака, как я узнал позже, была поставить рекорд Гиннеса, и тесты ей противоречили.


В какой-то момент после прохождения тестов мне позвонили, спросили, буду ли я участвовать, уточнили детали и сказали, как попасть в чат для подбора команды. Вскоре, я зашел в чат и коротко написал о себе. В чате творился полный треш, создалось впечатление, что организаторы нагнали рекламой много случайных людей, которые не имеют к IT никакого отношения. Многочисленные продакт менеджеры "уровня Стив Джобс" (реальная фраза из одного представления участника) постили рассказы о себе, а нормальных разработчиков даже не было видно. Но мне повезло, и я вскоре присоединился к трем опытным JS-программистам. Познакомились друг с другом мы уже на хакатоне, тогда же добавили в команду девушку для вдохновения и решения орг вопросов. Уже не помню почему, но мы взяли тему "Обучение кибербезопасности" и попали с ней в трек "Наука и образование 2". Я первый раз оказался в команде из 4 сильных программистов и впервые ощутил, насколько легко побеждать в таком составе. Мы пришли неподготовленные и до обеда спорили и не могли определиться, что будем делать: мобильное приложение или веб. В любой другой ситуации я бы подумал, что это провал. Самым главным для нас было понять, чем мы будем лучше конкурентов, ведь вокруг было полно команд, которые пилили тесты, игры по кибербезопасности и тому подобные вещи. Глядя на это и гугля обучающие программы и приложения, мы решили, что нашей главной отличительной особенностью будут тренировки по принципу пожарной тревоги. Мы отобрали целый ряд фишек, которые показались нам интересными для реализации (регистрация с проверкой емейла и пароля по хакерским базам, рассылка фишинговых писем (в виде писем от известных банков), тренировки по социальной инженерии в чате). Определившись с тем что мы делаем и поняв, чем мы можем выделиться, мы довольно быстро написали полноценное вебприложение, причем я выступил в несвойственной для себя роли бекенд разработчика. Таким образом, мы уверенно выиграли свой трек и в составе еще трех команд отобрались в финал в Казань. Уже позже, в Казани я узнал, что отбор в финал был фикцией, я встретил там много знакомых лиц из команд, которые этот отбор не прошли. У нас даже взяли интервью журналисты с 1 канала. Правда, в репортаже из него только на 1 секунду показали наше приложение.



Команда Snowed, в составе которой я выиграл региональный этап


Финал (Казань, 27 – 29 сентября 2019 года)


Но дальше начались неудачи. Все программисты из команды Snowed в течении примерно месяца, один за другим, сообщили что не смогут поехать в Казань на финал. И я задумался о поиске новой команды. Сначала я кинул клич в общем чате сборной Russian Hack Team, и хотя там я получил довольно много откликов и приглашений в команды, но ни одна из них меня не зацепила. Были несбалансированные команды, как например, продакт, мобильный разработчик, фронтендер, напоминает лебедя, рака и щуку из басни. Были также команды, которые не подходили мне по технологии (например, с разработкой мобильного приложения на Flutter). Наконец, в чате, который я считал трешовым (тот самый вконтакте, где происходил подбор команд на региональный этап), запостили объявление о поиске в команду фрондендера, и я чисто наугад написал. Ребята оказались аспирантами сколтеха и сразу предложили встретиться и познакомиться. Мне это понравилось, команды, которые предпочитают знакомиться сразу на хакатоне, обычно меня настораживают своим отсутствием мотивации. Встретились в "Граблях" на Пятницкой. Парни показались мне толковыми, мотивированными, уверенными в себе и в победе, и решение я принял прямо там. Мы еще не знали, какие будут треки и задачи в финале, но предполагали, что выберем что-то, связанное с Machine Learning. А моей задачей будет написать под это дело админку, поэтому я заранее приготовил для этого заготовку на основе antd-admin.
В Казань я поехал бесплатно, за счет организаторов. Надо сказать, что в чатах и блогах уже было высказано очень много недовольства по поводу закупки билетов и, в целом, организации финала, не буду это все пересказывать.


Приехав в Казань Экспо, зарегистрировавшись (при этом у меня возникли небольшие проблемы с получением бейджа) и позавтракав, мы пошли выбирать трек. На торжественное открытие, где выступали официальные лица, мы зашли только минут на 10. На самом деле, у нас уже были предпочитаемые треки, но нас интересовали детали. В треке No 18 (Ростелеком), например, оказалось что нужно разработать мобильное приложение, хотя в кратком описании этого не было. Основной выбор мы делали между треком No 8 Дефектоскопия трубопроводов, ПАО «Газпром нефть» и треком No 13 Перинатальные центры, Счётная палата РФ. И там, и там нужен был Data Science, и там, и там можно было бы прикрутить веб. В треке No 13 нас остановило то, что задача по Data Science там была довольно слабой, нужно было парсить росстат и не было понятно, нужна ли админка. Да и сама ценность задачи вызывала сомнения. В итоге мы решили, что как команда мы больше заточены под 8 трек, тем более, что у ребят уже был опыт решения подобных задач. Начали мы с того, что продумали сценарий, по которому наше приложение будет использовать конечный пользователь. Получалось, что у нас будет два типа пользователей: технари, которых интересуют техническая информация и управленцы, которым были нужны финансовые показатели. Когда появилось представление о сценарии, стало понятно, что делать на фронте, что рисовать дизайнеру, и какие методы нужны на бекенде, стало возможным распределить задачи. Обязанности в команде распределились следующим образом: двое человек решали ML с полученными от техэкспертов данными, один человек писал на питоне бекенд, я писал фронт на реакте и antd, дизайнер рисовал интерфейсы. Мы даже сели так, чтобы нам было удобнее общаться, решая свои задачи.


Первые сутки пролетели практически незаметно. В общении с техэкспертами выяснилось, что эта задача ими ("Газпром нефтью") уже решена, им просто интересно, можно ли ее решить лучше. Не скажу, что это снизило мотивацию, но осадочек остался. Удивило, что ночью модераторы секций отмечали работающие команды (как они говорили для статистики), обычно на хакатонах это не практикуется. К утру у нас был готов прототип фронта, некоторые зачатки бека, первое решение ML. В общем, уже было что показывать экспертам. Во второй половине дня субботы дизайнер нарисовал уже заведомо больше интерфейсов, чем я бы успел накодить и переключился на создание презентации. Суббота была отведена на регистрацию рекорда, и с утра, всех работающих в зале выгнали в коридор, затем вход и выход из зала осуществлялся по бейджикам, причем выходить за день можно было не больше чем на час. Не скажу что это доставило нам какие-то существенные неудобства, большую часть дня мы все равно сидели и работали. Питание, действительно, было очень скудным, на обед мы получили стаканчик с бульоном, пирожок и яблоко, но опять же нас это не сильно расстроило, мы были сосредоточены на другом.


Периодически выдавали red bull, по две банки на руки, это было очень кстати. Давно уже опробованный на хакатонах рецепт энергетик + кофе, позволял кодить всю ночь и последующий день, будучи бодрым, как стеклышко. На второй день мы, по-сути, уже просто накручивали на приложение новые фишки, сделали расчет финансовых показателей, стали выводить графики по статистике дефектов в магистралях. Как такового code review в нашем треке не было, эксперты оценивали решение задачи в стиле kaggle.com, по точности прогноза, а фронтенд оценивался визуально. Наше ML решение оказалось наиболее точным, возможно именно это позволило нам вырваться в лидеры. В ночь с субботы на воскресенье мы работали до 2-х часов ночи, а потом поехали поспать на квартиру, которую использовали в качестве базы. Спали около 5 часов, в воскресенье в 9 утра мы уже были в Казань Экспо. Я что-то спешно подверстывал, но большую часть времени заняла подготовка к предзащите. Предзащиты проходили в 2 потока, перед двумя командами экспертов, нас попросили выступить последними, так как обе команды экспертов хотели нас послушать. Мы восприняли это как хороший знак. Приложение показывали с моего ноутбука, с запущенного дев сервера, нормально задеплоить приложение мы не успели, впрочем, так делали все.


В целом, все прошло хорошо, нам указали на моменты, в которых мы могли улучшить наше приложение, и за время до защиты мы даже попытались что-то из этих замечаний реализовать. Защита тоже прошла на удивление гладко. По итогам предзащиты мы знали, что по баллам мы впереди, мы лидировали по точности решения, у нас был хороший фронтенд, хороший дизайн и, в целом, были хорошие предчувствия. Еще одним благоприятным знаком было то, что девушка модератор с нашей секции, перед входом в концертный зал сделала с нами селфи, я тогда и заподозрил, что она возможно что-то знает))). Но мы-то свои баллы после защиты не знали, поэтому время до момента объявления нашей команды со сцены прошло немного напряженно. На сцене вручили картонку с надписью 500000 рублей и каждому пакетик с кружкой и аккумулятором для сотового. Насладиться победой и нормально ее отметить не получилось, мы быстро поужинали и поехали на такси на поезд.



Команда WAICO побеждает в финале


По возвращению в Москву у нас брали интервью журналисты с НТВ. Снимали целый час на втором этаже кафе "Квартал 44" на Полянке, но в новостях показали секунд 10. Как-никак сильный прогресс по сравнению с региональным этапом.


Если резюмировать общие впечатления от Цифрового прорыва, то они следующие. На мероприятие были потрачены просто бешеные деньги, я еще ни разу не видел хакатоны такого масштаба. Но сказать что это оправданно, и что это действительно окупится, я не могу. Значительная часть участников, приехавших в Казань, была просто тусовщиками, которые не умеют что либо делать своими руками, и которых нагнали для установления рекорда. Я не могу сказать, что конкуренция в финале была выше, чем на региональном этапе. Также ценность и полезность задач некоторых треков вызывает сомнения. Некоторые задачи уже давно были решены на индустриальном уровне. Как оказалось позже, некоторые организации которые вели треки, были и не заинтересованы в их решении. И эта история еще не закончена, команды лидеры с каждого трека были отобраны в преакселлератор, и ведь предполагается, что из них получатся ПРОРЫВНЫЕ стартапы. Но писать про это я пока не готов, посмотрим что из этого получится.

Комментарии (7)


  1. HellFir-e
    14.10.2019 23:33

    Если это долгосрочная история, то думаю, что первый хакатон сделали рекламным, и для этого нагнали кучу людей, чтобы засветить(история с рекордом прям для этого), а потом уже привлекать компании и хороших организаторов(которые, кстати, в сентябре-ноябре завалены крупными заказами на проведение крупных частных мероприятий).


    1. PainKKKiller Автор
      15.10.2019 10:44

      Вполне возможно, и если это так, то это хорошо.


  1. OneType
    15.10.2019 01:02

    Засветившихся горе-хакиров потом вербует фе-эс-бе?


    1. HellFir-e
      15.10.2019 02:38

      Скорее частники


  1. PLEXeT
    16.10.2019 16:54

    Поздравляю с победой, но только статья скорее (лично меня) расстроила :( Мы тоже участвовали и тоже победили… и скажу, честно, лично у меня ощущение от мероприятия совсем другое, более позитивное. И хочу не согласиться со многими пунктами, но давай по порядку.

    Во-первых, что касается тестов, я с твоими тезисами КАРДИНАЛЬНО не согласен. Понимаешь в чем проблема, у тебя была заранее сформированная команда поэтому ты и не смог оценить крутость тестирования. Я, например, с помощью «провальных и не нужных» тестов нашел крутых ребят. Я заранее понимал, что в команду требуется крутой и сильный product менеджер и дизайнер. Взял ребят с высокими баллами на тест-площадке, и не прогадал! Что дизайнер, что продажник — нереальные ребята! И как я понял тесты были нужны не для отсева, а для ориентировки по четкой метрики во время подбора команды капитанами.

    Во-вторых, я бы хотел сказать, что очень грустно, что ты принебрежительно относишься к остальным участниками, начало статьи этим прям пропитано (это не в твой огород)… «Многочисленные продакт менеджеры «уровня Стив Джобс» (реальная фраза из одного представления участника) постили рассказы о себе, а нормальных разработчиков даже не было видно» — нет, нет и еще раз нет! В чате нашего города были реальные разработчики, которые скидывали свое резюме с пруфами в виде тестов. Да и опять же, что плохого в рассказах о себе когда ты продакт менеджер? Как еще продвигать свою персону если не рассказами об опыте? Я лично не представляю :) А что касается рекламы — обычный маркетинг, человек видит 10 000 000 и все, заполняет заявку, а какой студент не хочет попытать счастье? Но согласись, что такие быстро отсеялись еще на регионалке?

    В-третьих, касаемо: «финал был фикцией, я встретил там много знакомых лиц из команд, которые этот отбор не прошли» — у нас такого в регионе опять же не было. Но была другая история, команды просто обжаловали после мероприятия результаты, и соответственно проскачили в финал. Как они это сделали, я не знаю, но такой кейс точно был, общался с ними, лично знаю) + опять же у нас в городе одна команда отказалась ехать, и взяли следующих в рейтинге.

    Что касаемо подбора команды после распада прошлой, никак не могу комментировать, не сталкивался) Но, тут скорее соглашусь что многие команды себя загоняли не правильной балансировкой) Хотя это уже вопрос к капитанам, которые отвечали за подбор ролей.

    Так, дальше, это даже не пункт, а просто замечание. «В треке No 18 (Ростелеком), например, оказалось что нужно разработать мобильное приложение, хотя в кратком описании этого не было.» — в письме с треками было указано, что более подробное описание будет на площадке, и когда мы еще в аэропорту проводили ресерч, выбирали трек мы это взвешивали и обдумывали. Так что ради интереса подними переписку)

    «В общении с техэкспертами выяснилось, что эта задача ими («Газпром нефтью») уже решена, им просто интересно, можно ли ее решить лучше. Не скажу, что это снизило мотивацию, но осадочек остался.» — касаемо этого, это обычная история для больших хакатонов (особенно международных), как правило ребята так и делают. Дают уже решенную задачу, берут экспертов которые ее решили и уже они, обладая опытом и пр. более объективно судят/лучше помогают.

    «На мероприятие были потрачены просто бешеные деньги, я еще ни разу не видел хакатоны такого масштаба. Но сказать что это оправданно, и что это действительно окупиться я не могу.» — на самом деле это довольно оправданно. Как мне кажется (опять же лично мое мнение) задается новая планка для индустрии. Крутые разрабы знакомятся с HR ами, для ребят из регионов это очень важно. К тому же, как бы мы не ругали оргов за билеты (это был лютый треш и угар, мы их получили за пол часа до рейса, но пулчили!), это первый глобальный хакатон, где я был, и где оплатили билеты, ориенетируясь в первую очередь на ребят из регионов. Для тех двух тысяч, что там участвовали это РЕАЛЬНО шанс и возможность самореализоваться… Только я знаю трех ребят (даже не победителей) которые нашли крутую работу, и щяс подписывают (или уже подписали) контракт.

    Да, хакатон был не идеальным, но ты пойми это мероприятие, завязанное на гос.структурах с жесткой, даже очень жесткой бюрократией, бюджетом и прочее. И когда подобные вещи делаются впервые, никогда не знаешь откуда может прилететь проблема, или не прилететь участник) Многое о чем ты написал, правда, например касаемо питания, и прочее… Но поставь себя на их место, как накормить 3000 ртов, где у каждого свои вкусы, предпочтения? Ну не реально, на худой конец даже пицца была, кстати Додо!!! (нет, мне не платили за рекламу ДОДО)

    Я сам помогал немного организовывать подобные ивенты, и скажу так — это был уровень. Все могло быть ужасно и провально, конечно у каждого своя правда, но в итоге: многие нашли работу/область для стартапа/инвесторов/гранты/деловые знакомства/и т.д.

    Мне например, скажу честно, дико не понравилось, что хакатон был в Казани. Я ничего против Казани не имею (я даже с ночным кодингом не успел ее посмотреть), но как мне кажется лучше было бы делать подобные вещи, например в Москве. И логистика была бы в разы проще (мы, например, летели в казань через Питер с пересадкой в Москве) и усталость меньше.

    Заранее извини, если этот длииииинный комент выглядит как наезд! Это НИ В КОЕМ СЛУЧАЕ НЕ НАЕЗД! Если с какими-то вещами хочешь поспорить — пиши прям сюда. В комментах подискутируем. Мое личное мнение — хакатон удался, и мне очень хотелось бы побывать в следующем году со стороны эксперта, или организатора, чтобы посмотреть как все устроено изнутри.

    Плюс, я бы на месте организаторов, в следующем году попробовал похантить ребят не из РФ, из европы и т.д, расширил бы границы так сказать. Привлечение крутых кадров и талантов)


    1. PainKKKiller Автор
      17.10.2019 13:47

      Привет! Спасибо за мнение, да согласен, у меня в тексте есть перегибы, сразу хотелось бы узнать из какого ты региона, и был ли у тебя опыт участия в хакатонах до ЦП? Насчет продактов, просто наболело, удивляет, что даже на хакатонах людей, которые умеют что то делать руками оказывается немного. Отсюда и получается небольшой реальный выхлоп от хака. И, видимо региональные хакатоны очень сильно отличались друг от друга, и это неудивительно, ведь их организовывали разные люди. Про тесты могу сказать следующее — их прохождение было чем то вроде хакинга, т.е. крутые ребята их все равно проходили, как правило, с высокими баллами (хотя осечки бывали и у них), но в качестве массового оценочного инструмента, я считаю они требуют доработки. Про окупаемость хакатонов — это вообще философский вопрос, можно отдельную статью про это написать, смотря в чем это измерять. Про HR, я регулярно получаю предложения о работе, но никакой активности со стороны ЦП в этом плане не заметил, даже интересно, что у кого то другая история получилось. И опять же это точно не стоит потраченных денег. Ну а про международный уровень это я поддерживаю, у нас почему то такие хакатоны не делают, не умеют наверное, хотя вон в соседней маленькой Финляндии Junction проводят, и наверняка это стоит намного дешевле, чем рекорд Гиннеса поставить.


  1. Viceroyalty
    18.10.2019 04:06

    Кофе с энергетиками… это пока вы молоды кажется что «вот сейчас поднапряжемся для такого дела, отоспимся потом»…
    Не насилуйте организм ребята, здоровье дороже денег