Я – профессиональный хакатонщик. В этом году наша команда Algorithm победила во всероссийском конкурсе для IT-специалистов «Цифровой прорыв» — флагманском проекте президентской платформы «Россия — страна возможностей», значит мы что-то поняли (но это не точно).
За 2 года хакатонов было очень много ошибок, и большинство связаны с командой. Классика – кадры решают все. Но чаще они решают тупить, прокидывать сроки, отвлекаться, терять мотивацию, просаживать время. Я сказал «они»? Мы, конечно. Все грабли посчитаны лично.
Скептики скажут, что я просто пытаюсь подвести идеологическую базу под случайную победу, которая должна была рано или поздно случиться по закону больших чисел. Не путать с BigData.
На это отвечу цитатой из «Книги Пяти Колец» Миямото Мусаси: «Искать практических выгод, используя свои профессиональные познания — вульгарно».
Хакатоны иногда считают чем-то вроде HR-пати. Особенно брендам нравится идея собрать всех покемонов в одном зале и обаять их разом. Кстати, многие разработчики одобряют такой подход. На мой взгляд, это довольно поверхностное отношение. Нет смысла начинать проект с проработки экзита (exit – выход из стартапа, продажа своей доли в бизнесе – прим. ред.). И уж тем более странно ввязываться в хакатоны, чтобы чего-то на них выгадать.
Для меня это прежде всего тренинг и фан. Тем не менее, когда играешь, хочется выигрывать чаще.
Итак, как повысить свои шансы? Вот 7 важных нюансов.
1. Разработка — командный вид спорта
Сразу главный спойлер – он только что прозвучал: команда. Теперь вы все знаете, расходимся.
Одно из важнейших преимуществ, которое дает хакатон — поиграть в стартап на минималках. Так ты получаешь фулстек (full stack – широкий набор умений – прим. ред.) опыта по маркетингу, проектному управлению, UX, дизайну, и в этом длинном списке код – только часть общей картины. Как и в жизни, бро, как и в жизни.
Нам хочется думать, что код правит миром, и если чуть меньше прокрастинировать, то получится переписать ядро Матрицы. Однако нужно признать, что реальные проекты делаются немного иначе.
Нужно много разных компетенций — причем все сразу, и не одни против других, а командная работа, дружный коллектив. Такое не подсмотришь на StackOverflow, тут только в путь.
2. Сколько друзей нужно Оушену
Мой первый хакатон прошел в 2019 году. Я стал жертвой таргетированной рекламы, и завертелось. Все в новинку, знакомых нет. Большинство искали команду в чатах, предоставленных организаторами. Очень быстро и наугад, естественно, нашел себе команду. Наш состав:
- Front-end разработчик
- Back-end разработчик
- Full-stack разработчик
- Дизайнер
- Проект-менеджер
Ничего личного, но мой первый вывод — лучше сделать пару замен:
- Вместо проджекта взять тимлида.
- Одного из трех разработчиков заменить на специалиста в области анализа данных, машинного обучения и искусственного интеллекта.
Потому что времени вообще мало, только мы обычно этого не понимаем и прожигаем жизнь почем зря. На хакатоне осознание того, что часики-то тикают, приходит очень быстро. Некогда пилить код – надо точить пилы.
3. Но был один, который не пришел
Несколько раз сталкивался с такой засадой: списываешься, знакомишься, обсуждаешь. Все всех устраивает, договорились встретиться в день хакатона. Потом один не приходит, и больше никогда не выходит на связь.
По моему опыту НЕ помогают:
- Small talk, попытка познакомиться лично чуть ближе.
- Интервью для выяснения навыков и опыта.
- Фото росписи кровью с геолокацией на городском кладбище.
Помогает:
- Обратить внимание на возраст. Чем человек старше, тем он обязательнее. Наверное, с бумером можно забиться на через год — и он придет.
Все это не является публичной офертой, эйджизмом, философским HR-камнем.
4. Самое слабое звено пищевой цепочки
На прошлый год у меня были большие планы, но все свалили на удаленку и до последнего момента темнили с тем, выберутся они вообще или нет. Поэтому я счастливо проскочил еще одну ошибку — не стал собирать команду из друзей.
В итоге у нас было два программиста на C# и Java.
Мы использовали микросервисную архитектуру, но никаких распределенных вычислений не получилось. Потому что кто-то быстро справился и скучал, ждал других. А кто-то не успел вообще, что не круто.
Мораль — важно подбирать команду так, чтобы все или многие (ладно, хотя бы некоторые и особенно самые сильные) могли помогать другим. Начал понимать, откуда берутся вакансии:
Требуется Full-stack разработчик с опытом в дизайне и ML/AI.
5. Разраб с прицепом
Хакатоны в 2020 году стали удаленными, и нам в итоге пришлось принять эти правила по свою сторону экрана. Находясь дома, не каждый из участников смог организоваться и выполнить поставленные задачи. Кому-то помешали семейные дела, другим параллельное совмещение с другой работой. Да что говорить, я и сам во время хакатона успел сходить на тренировку и прочитать несколько лекций в университете.
Так я еще лучше стал понимать требования вакансий. Вот почему все настаивают на офисе! Да, это чтобы вы тратили лишнее время на дорогу безо всякого смысла. И не отвлекались еще, вот зачем.
Сейчас команды вновь получили возможность собираться в IT-хабах. Это такие коворкинги, чуть не коливинги — в них есть еда, места для отдыха, Интернет, воздух. Вся пирамида Маслоу в одном небольшом помещении.
Несмотря на потери, тогда нам все же удалось занять третье место на региональном этапе и пройти в финал.
6. В бой идут одни старики
На финале мы с командой собрались на съемной квартире. Все были достаточно заряжены, чтобы продуктивно поработать 2 ночи подряд, но столкнулись с новыми проблемами.
Одной из ошибок стало применение новых для нас технологий разработки. В частности, задействовали полнотекстовый поиск Elasticsearch и библиотеку машинного обучения Sklearn, которые раньше не использовали. Понятно, к чему это привело. Ни к чему хорошему.
В рамках ограниченного времени (то есть примерно всегда) желательно применять только опробованные ранее технологии, даже если в рамках задания или в процессе общения с экспертами вы откроете для себя что-то новое.
А когда же учиться? Парадоксально — во время учебы. Не на хакатонах или живых проектах. Можно сайд (side – сторонний проект – прим. ред.) вести как раз для этого, или даже несколько, если вы никогда не спите и бессмертны.
7. Миссия выполнима
Последней крупной ошибкой, на которой я настаивал дольше других, был маниакальный выбор тематики исключительно по своим интересам. Поэтому часть драгоценного времени мне приходилось рассказывать ребятам про свои любимые системы для поддержки научных исследований, демонстрируя возможности eLibrary, Scopus и Web of Science.
Лайфхак — выбирайте задание, тематика которого всем понятна (задача минимум), не вызывает возражений (уже неплохо) или прям заводит (то, что надо).
Таким образом, важным критерием успеха является выбор задания, тематика которого будет доступна и понятна всем, либо предварительное обсуждение кейса.
Итого
Пройдя через 3 хакатона, в 2021 году наша команда в полностью обновленном составе победила в треке «Образование. Развитие кадров».
Мы разработали веб-сервис для оценки востребованности в IT-кадрах различных специализаций по субъектам РФ на основе обработки открытых данных с помощью алгоритмов ML.
Уникальность решения состоит в том, что мы предложили многофакторный критерий оценки. А также – вариант работы системы не только для заказчика, сотрудников Минобрнауки, но и для образовательных организаций, коммерческих предприятий и абитуриентов.
Важен ли результирующий код? Возможно, только это следствие следствий. Настоящим финалом всех хакатонов лично для меня стало более отчетливое понимание того, как строить работу и особенно как ее НЕ строить.
Главный вывод: Сколько программистов нужно, чтобы вкрутить лампочку? Ни одного, потому что опытная команда соберется сразу там, где светло.
Наш состав на сегодня
В команде 4 человека. Это лучшие студенты и выпускники моей родной кафедры теплофизики и информатики в металлургии (Уральский федеральный университет).
- Карина Горбунова работает интернет-маркетологом, а на хакатонах выступает в роли аналитика. Она занимается подготовкой исходных данных и представлением результатов работы.
- Александр Болгов работает в СберБанке Full-stack разработчиком на PHP, совмещая с изучением ML/AI. Слово в слово (кроме Сбера) его роль и на хакатонах.
- Александр Блинков – Front-end разработчик в компании Artsofte Digital. У нас он также занимается созданием дизайна и видеоконтента.
- Мои функции — распределение задач между разработчиками, разработка архитектуры системы и развертывание приложения в сети.
Всего 2 года, чтобы найти команду и немного себя в ней. Нормальный тайминг, я считаю. С любопытством жду следующих конкурсов, чтобы доказать безупречность своих выводов и пополнить список своих ошибок.
https://www.e-xecutive.ru/