Хабрахабр

QA: Хакатоны

В первой части я рассказал о мотивации к участию в таких мероприятиях. Заключительная часть трилогии о хакатонах. Заключительная часть ответит на вопросы, которые не поместились в первые две части.
— Расскажи, как ты начал участвовать в хакатонах. Вторая часть была посвящена ошибкам организаторов и их результатам.

Мой типичный день выглядел следующим образом: подъем в 8, несколько пар в университете, затем соревнования и курсера до полуночи (пока считается сабмит я смотрю лекции или читаю статьи). — Я учился в магистратуре Лаппеенрантского университета попутно решая соревнования по анализу данных. Победа накинула уверенности в себе, и когда я случайно наткнулся на информацию о хакатоне SkinHack 2 в Москве, я решил проведать родителей и заодно узнать что это такое — хакатон. Такой жесткий график принес свои плоды, и я выиграл соревнование по анализу данных MERC-2017 (о чем даже был пост на хабре).

Было два трека по анализу данных с четкой метрикой и датасетом с призовыми по 100к рублей. Сам хакатон получился довольно забавным. В один момент организатор сказал, что окошко с кнопкой без функционала может выиграть 50к, потому что приз не может быть не выплачен. Третий трек был по разработке приложений с призовым 50к, и в нем не было участников. Я не стал учится программировать приложения (я не соревнуюсь там, где меня могут с легкостью “перевернуть”), но для меня это был четкий месседж что поля в хакатонах не забиты.

Я нашел лик в данных, который позволял выбить идеальный скор, но столбца с ликом не было в тестовых данных, которые я получил за два часа до конца мероприятия (к слову, тогда я понимал что наличие колонки “target” в трейне не считается за лик). Тогда я решал оба трека по анализу данных один. В то же время открылся лидерборд, мой сабмит без лика занимал третье место из пяти, до первого был большой отрыв и я решил не тратить время и уехал.

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

— Почему ты занимаешься хакатонами, а не каглом?

С определенного уровня скила, без специфических причин участия, кагл становится менее полезным чем другие активности. — В данный момент мне не нравится кагл. Я много участвовал раньше, видимо, мне удалось как-то “слезть”.

— Почему хакатоны, а не работа над своим проектом?

Ребята из ODS организовали ODS pet projects для всех, кто хочет на выходных заняться своим проектом в кругу единомышленников. — Мне импонирует идея сделать что-то крутое своими руками в небыстром темпе. Думаю, что в скором времени я к ним присоединюсь.

— Как ты находишь мероприятия?

Плюс анонсы мероприятий проскакивают в рекламе в соц сетях и в linkedin. — Основной источник — hackathon.com (мир) и чат в телеграмме Russian Hackers (Россия). Если ничего не нашли, то можно посмотреть тут: mlh.io, devpost.com, hackevents.co, hackalist.org, HackathonsNear.me, hackathon.io.

Например, за неделю до хакатона прикидываешь: «Тут нужен будет такой и такой специалист, нужно будет поискать»? — Готовишь план решения до участия или всё решается на ходу?

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

Что делать, если нет команды?
— Датасаенс хакатоны — реально (я — живой тому пример), продуктовые — не видел, хотя тоже думаю, что да. — Реально хакнуть хакатон в одиночку? Я думаю это вызвано тем, что не все “одиночки” доходят до финала (т.е. К сожалению, иногда организаторы накладывают ограничение на минимальное количество участников в команде. Еще после мероприятия предполагается, что вы продолжите работу над проектом. просто уходят с первыми трудностями), участие в команде все же сдерживает. С командой довести проект до ума будет легче.

Если у вас нет своей команды, то организаторы всегда помогут с тем, чтобы ее найти или создать. В целом, я советую всегда участвовать с командой.

Убираем время на сон (16-20 часов), остается не более 30. — Как удается справляться с усталостью во время хакатона?
— На хакатоне дается 2 дня на работу, это 48 часов (30-48 часов, возьмем 48 для простоты счета). Если правильно организовать работу (сон, питание, выход на свежий воздух, зарядки, минуты осознанности, правильное общение с командой и переключение активности), то deep work часы можно добить до 12-14. Из них реально на продуктивную работу пойдет часов 8 (в среднем). Кодить без сна и перерывов перебиваясь энергетиками — путь к провалу. После такой работы будешь чувствовать себя истощенным, но это будет приятная усталость.

Как они у тебя появлялись, как они у тебя устроены (лежат по папочкам .py файлы, каждый для своей задачи и пр.) и как начать создавать самому такие? — У тебя есть свои готовые пайплайны для хакатонов?

Мне не приходится переписывать стандартные куски с нуля (например, правильный target encoding или простую сеточку для выделения интента из текста), что экономит мне много времени. — Я не использую полностью готовые решения прошлых хакатонов в новых, но у меня есть свой зоопарк моделей и пайплайнов из прошедших соревнований.

Плюс есть отдельное репо для всяких коробочных “фишечек” (вроде правильного target encoding с кросс-валидацией). В текущий момент это выглядит вот так: для каждого соревнования или хакатона есть свое репо на гитхабе, в нем хранятся ноутбуки, скрипты и небольшая документация о том что происходит. Я не думаю что это самое элегантное решение, но пока что меня устраивает.

Я бы начал с сохранения всего своего кода по папкам и написания короткой документации (зачем, что, как делал и результат).

— Реально ли за такой короткий срок подготовить MVP с нуля или все участники идут с готовыми решениями?

MVP для меня это совокупность двух факторов: — Могу сказать только про проекты связанные с датасаенс — да, возможно.

  • Жизнеспособная идея представленная как продукт (т.е. расписан business canvas). Всегда должно быть четкое понимание почему и для кого мы делаем продукт. Иногда проекты с хорошо-обоснованным проектом, но без прототипа выигрывают призовые места, и в этом нет ничего удивительного. К сожалению, многие участники не могут абстрагироваться от горечи поражения и списывают свои неудачи на недальновидность организаторов, продолжая пилить модельки непонятно для кого на следующих хакатонах.
  • Некий показатель что вы этот продукт можете сделать (приложение, код, описание пайплайнов).

Бывает, что на хакатон приходит команда с готовым решением и пытается его “подогнать” под задание организаторов. Такие команды отсекаются на техническом скрининге или “считается” только та часть, которую они сделали на площадке. Я не видел такие команды в победителях, но я думаю им все равно выгодно ходить из-за future value (контакты, датасеты и прочее).

— Есть ли примеры доведение поделок реализованных на хакатонах до продакшена/стартапа?

У меня было три случая когда доводили до продакшена. — Да. Еще знаю пару команд, которая продолжала сотрудничество с компанией в качестве консультантов. Один раз сам, два раза — чужими руками исходя из моих идей и кода, который я написал на хакатоне. Сам стартапы не организовывал и не знаю, чтобы кто-то делал, хотя примеры, я уверен, есть. Финальных результатов не знаю, но скорее всего что-то было сделано до конца.

— После участия во многих хакатонах, какие советы бы ты дал себе, если бы мог вернуться в прошлое?

  1. Тактика важнее маневров. Представляй каждое решение как готовый продукт. Идея, юпитер ноутбук, алгоритм ничего не стоят, если не понятно кто будет за это платить.
  2. Прежде чем проектировать что-либо, ответь на вопрос не “что?”, а “зачем?” и “как?”. Пример: проектируя какой-либо ML решение, в начале подумай об идеальном алгоритме: что он получает на вход, как его предсказания используются в дальнейшем?
  3. Участвуй в команде.

— Чем обычно кормят на хакатонах?

Почти всегда еда организована в форме шведского стола (или раздаточного стола) к которому выстраивается огромная очередь. — Обычно на хакатонах кормят плохо: пиццы, энергетики, газировка. Я представлю мысленный процесс организаторов: “Так, что там едят программисты? Ночью обычно не кормят, хотя был случай на одном соревновании в Париже на ночь оставили покушать — чипсы, пончики и колу. Чипсы, пончики — вот этом все. А, точно! Ну там, кашу например?” После этого на меня посмотрели как на идиота. Положим им эту дрянь.” На следующей день я спросил организаторов: “Ребят, а нельзя ли сделать на ночь что-то другое? Знаменитое французское гостеприимство.

Плюс ставят холодильник с йогуртами, мюсли — для тех кто хочет перекусить. На хороших хакатонах еду заказывают в боксах, есть разделение на обычное, вегетарианское и кошерное питание. Запомнился хакатон Hack Moscow 2 — там душевно накормили борщом и котлетами с пюрешкой в столовой офиса 1С. Чай, кофе, вода — стандарт.

— Вменяемость хакатонов зависит, так сказать, от профессиональной сферы организаторов(например, лучшие хакатоны проводят консалтеры)?

Пожалуй, это единственный фактор, от которого зависит качество мероприятия. — Самые лучшие хакатоны были от организаторов, которые либо до этого организовывали хакатоны, либо раньше участвовали.

— Как понять, что ты не нуб и пора на хакатон?

Второе лучшее время — сейчас. — Самое лучшее время чтобы пойти на хакатон — год назад. Даже нейронная сеть — величайшее изобретение человека после колеса и градиентного бустинга над деревьями — не может отличить кошку от собаки на первой эпохе обучения. Так что дерзай, ошибайся, учись — это нормально.

— Какие «красные флаги» сразу говорят о том, что мероприятие будет не очень и не надо тратить время?

  • Четкое описание что нужно сделать (актуально для продуктовых хaкактонов). Если при регистрации вам четко будет поставлена задача, то лучше остаться дома. На моей памяти не было ни одного хорошего хакатона с ТЗ. Для сравнения: Хорошо — сделайте нам что-нибудь связанное с анализом аудио разговоров. Плохо — сделайте нам приложение, которое было бы способно разделять разговор на две отдельные звуковые дорожки для каждого человека.
  • Маленький призовой фонд. Если вас просят сделать “тиндер для онлайн магазина с AI” и приз за первое место 500 евро и минимальным размером команды в 5 человек — пожалуй не стоит тратить время (да, это реальный хакатон, которые проводился в Мюнхене).
  • Отсутствие данных (актуально для датасаенс хакатонов). Организаторы обычно предоставляют основную информацию о мероприятии и иногда семпл датасета. Если не предоставили — спросите, с вас не убудет. Если за 2-3 непонятно какие данные будут предоставлены и будут ли они вообще — это красный флаг.
  • Новые организаторы. Не поленитесь и погуглите информацию об организаторах хакатона. Если они проводят мероприятие такого рода в первый раз — велика вероятность того, что что-то пойдет не так. С другой стороны, если организатор и члены жюри уже проводили хакатоны или в прошлом активно участвовали — это зеленый флаг.

— На одном хакатоне мне сказали: «У тебя было лучшее решение по скору, но извини, у нас оценивается работа в команде, а ты работал в одиночку. Вот если бы ты взял в команду студента или девочку…”? Встречал ли ты подобную несправедливость? Как справлялся?

Я стоистически отношусь ко всему происходящему: я сделал все что в моих силах, если не получилось — так тому и быть. — Да, встречал и не раз.

— Зачем ты всем этим занимаешься?

— Все это просто от скуки.

Теги
Показать больше

Похожие статьи

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

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»
Закрыть