Найти тему
Bell Integrator

Хакатон: подробный гайд для начинающих и желающих победить

Мероприятия под названиями «хакатон», «кодфест», «hack day» уже прочно закрепились в повестке ИТ-событий городского и областного масштаба, а на некоторые из них люди съезжаются со всей страны. Что же это и для чего проводятся? Как правильно подготовиться и победить в хакатоне? Своим опытом делится Евгений, инженер по автоматизированному и нагрузочному тестированию Bell Integrator.

На первый хакатон я попал во время учебы в университете, и с тех пор мне удалось принять участие еще в трех мероприятиях различного масштаба и тематик в Самаре, Саратове и Казани. На всех хакатонах я занимался в том или ином виде написанием кода. Мне нравится находить новые контакты, придумывать свежие идеи и реализовывать их в необычных условиях. В данной статье я расскажу, почему вам может понравится участвовать в хакатонах, и дам несколько советов, которые в свое время помогли мне занять призовые места.

***

Коротко, что такое хакатон. Простыми словами – это форум дляразработчиков, который устраивает компания или несколько компаний, и во время которого специалисты из разных областей (программисты, дизайнеры, менеджеры) сообща решают какую-то конкретную бизнес-задачу или пытаются реализовать свою идею. Хакатон – это идеальная площадка для нетворкинга, реализации своих проектов и возможности обмениваться идеями и инструментами. Обычно они длятся от одного дня до недели. Чаще всего – 48 часов. И бывают заточены как под решение конкретных задач от организаторов, так и под реализацию собственных. Основное правило – нельзя писать код приложения заранее, нужно создавать его во время мероприятия.

Зачем же стоит туда ходить?

Вообще, у каждого участника своя причина посещения подобных мероприятий.

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

На подобных мероприятиях часто необходимо подстраиваться под задачу и требования команды. Именно командной работой хакатон и ценен: вы учитесь координировать работу друг с другом, распределять обязанности, вместе развивать общую идею, а также расставлять приоритеты. В процессе совместной работы можно прикоснуться к новому языку программирования или фреймворку, а также сменить свою роль с привычной на новую.

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

Полезно это мероприятие, конечно, и для заведения новых знакомств. Потому что это открытое комьюнити. Есть возможность подойти, начать общение, когда люди, с которыми у тебя могут быть схожие интересы, отдыхают от работы. У каждого свой уникальный опыт, свои идеи и цели. Можно не только познакомиться с единомышленниками, но и обменяться мнениями и даже получить свежий взгляд на решение своей задачи. Вы также сможете воспользоваться помощью и поддержкой менторов и представителей компаний. Они направят вас в нужное русло, подскажут, что вы упускаете и на что нужно обратить внимание при разработке продукта.

Помимо возможности поработать, бывает возможность послушать лекции. Поскольку в хакатонах участвует большое количество новичков, со стороны организаторов хорошим тоном является проведение мастер-классов. Обычно это лекция о том, как представить свою идею в виде продукта и делать это так, чтобы слушателям было не скучно; и лекция на техническую тематику (непосредственно по теме хакатона). Но учтите – стоит распределять свое время внимательно, потому что оно сильно ограничено. Заслушавшись, можно не успеть завершить конкурсную работу.

Как и куда ходить?

Основные источники, на которых можно найти сведения о хакатонах – это интернет, реклама на ИT-сайтах или приглашение от друзей. На сайте хакатоны.рф можно посмотреть анонс русскоязычных мероприятий. Еще я могу порекомендовать телеграм-чат «Цифрового прорыва» t.me/leadersofdigital. Англоязычные мероприятия можно посмотреть здесь: mlh.io, devpost.com, hackalist.org, hackathon.com.

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

Оптимальное количество людей в команде – 4-6 человек. Комфортнее работать, если вы уже знакомы и доверяете членам команды как хорошим экспертам. Перед началом работы убедитесь, что все понимают идею одинаково. Обсудите поставленные задачи с представителями компании, чтобы убедиться, что вы их правильно поняли, а они правильно их поставили. Все могут ошибаться, и организаторы тоже. По ролям: нужен дизайнер, нарисующий презентацию, технический писатель, который на пару с программистом решит задачу и напишет код, а также человек, способный презентовать готовый проект. Рекомендую также иметь в команде людей с навыками именно разработки, потому что это то, что в итоге все хотят получить – готовый продукт, решающий задачу. Хотя, конечно, можно выиграть, просто нарисовав шаблон программы в графическом редакторе типа Figma или Adobe XD (другими словами, крутой код на серверной части может уступить красивой графической оболочке).

Также стоит подготовиться к тому, что за 48 часов вам придется выложиться на все 100%. Убираем время на сон (12-18 часов), остается около 30. Из них реально на продуктивную работу уйдет часов 8 в день (в среднем). Если правильно организовать работу (сон, питание, выход на свежий воздух, зарядки, минуты осознанности, правильное общение с командой и переключение активности), то сможете проработать как Папа Карло и все 12-14 часов.

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

Убедитесь, что ваша идея выполнима. Представьте себе процесс работы заранее. Да, у вас будет команда и несколько часов непрерывного брейншторма, но это не всегда помогает, особенно, если идея окажется неосуществимой. Лучше максимально упростить ее, чтобы уж точно успеть воплотить. Не увлекайтесь через чур спорами с членами команды о том, как должна выглядеть идея, и как подробно ее надо реализовывать. Помните, что сделать прототип, который решит поставленную проблему, ваша основная цель.

Кодить без сна и перерывов, перебиваясь энергетиками — это путь к успеху для людей, которые уже приходили таким образом к победе. А для простых смертных это может привести даже к провалу. Поэтому подумайте о сне. В ночной работе есть, конечно, своя романтика, но существует мнение, что со здоровым восьмичасовым сном получится сделать больше. Тут уже решайте сами. Иногда на месте можно получить плед, чай, кофе, еду. Но, вполне возможно, что все это придется добывать вам в окрестностях самостоятельно. Можно взять какие-то вещи для сна на площадке с собой заранее. К примеру, во время «Цифрового прорыва» пуфики для лежания были в дефиците, и те, что удалось каким-то образом найти, приходилось защищать, а если кому-то из команды их не хватало, то нужно было ходить и время от времени искать свободные (конечно, если побег с пуфиком от прежних владельцев можно назвать поиском J ). И подумайте, где будете ночевать – на выбор: съемная квартира недалеко от места проведения, ваш дом, если хакатон у вас в городе, и стулья с мешками для сна, если вам удалось их отвоевать от таких же любителей спать там, где работаешь.

Узнайте, что предоставляют участникам организаторы, и соберите всё, что вам нужно для работы: обязательно ноутбук и зарядку к нему; по возможности и необходимости роутер, usb-модем, сетевые кабели, листочки, ручки, ватман. Подумайте, как будете вести разработку – возможно, вам понадобится приобрести заранее хостинг для кода. А вот интернет на площадке, как правило, есть от организаторов. Бывают случаи, когда люди приносят настольные компьютеры, но не успевают довести проект до конца. Поэтому заложите время на транспортировку вашего имущества.

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

Что потом?

Побеждать - это классно. Но достичь этой цели сложнее всего. Помните, все остальные участники мероприятия ничуть не хуже вас. И если задаться одним только желанием победить, можно сильно разочароваться в результатах. К тому же никто не обещает честных, простых и понятных критериев оценки. Желающих победить много и все в таком духе.

Но все же, если выиграете, вы получите деньги, которые можно потратить по своему желанию. Конечно, их будет не так много, как хотелось бы. Зато на руках у вас останется код, который вы, на свое усмотрение либо положите пылиться и ждать своего часа на полке, либо попробуете внедрить. Причем внедрять проект можно, и не победив в хакатоне. Примерно так же, как и не внедрять проект, занявший призовое место. Например, после «Цифрового прорыва» всех призеров приглашали в акселератор, в котором работа над проектами продолжалась более углубленно, а также были лекции, направленные на повышение определенных профессиональных навыков. Согласитесь, тоже неплохой приз от участия.

Советы новичкам

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

- Не бойтесь ходить на хакатоны, даже если у вас нет опыта или команды – вы можете найти команду на площадке и даже занять таким составом призовое место.

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

- Тактика важнее маневров. Ваша задача на хакатоне – решение проблемы. Чтобы решить проблему, ее нужно выявить. Проверяйте, что ваша выявленная проблема действительно актуальна для компании или людей, у которых она есть. Проверяйте ваше решение на соответствие проблемы, задайте себе вопрос об его оптимальности. При оценке, в первую очередь, будут смотреть на актуальность и адекватность предложенного решения. Архитектура и крутой код интересуют обычно одного судью из пяти. Того самого, который по технической части. Но бывают и исключения.

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

- Качественное демо – залог успеха. Грамотно составьте итоговую презентацию проекта. Начинать готовить ее стоит за 12 часов до окончания хакатона. И лучше выбирайте спикера в самом начале. Так он сможет потренироваться, отрепетировать заготовки, понять, что же на самом деле стоит говорить, и будет держаться увереннее перед жюри. Заставить напарника по команде сделать тестовую презентацию проекта перед походом к жюри – интересная нетривиальная задача. Продумайте также возможные вопросы из зала и ответы на них.

- Хорошо питайтесь и спите, если можно взять несколько порций еды – всегда берите.

- Добавляйте результаты своей работы в свое резюме и не бойтесь писать о них публично. Реальные итоги работы, с которыми вы подошли к финалу мероприятия, это отличный задел для вашего будущего. Участие в хакатонах прокачивает ваши навыки, учит создавать продукты в сжатые сроки, а также соревноваться с другими командами. К тому же хакатоны – это хороший источник аутостресса. Уникальный опыт, который вы получите здесь, всегда будет с вами.

***

Ну и напоследок. Самое лучшее время, чтобы пойти на хакатон – год назад. Второе лучшее время – сейчас. Так что дерзайте, ошибайтесь, учитесь – это то, чем мы всегда живем. Даже нейронная сеть – величайшее изобретение человека – не может отличить кошку от собаки на первом этапе обучения. И еще – ни офисные будни, ни студенческие лабораторные работы не подарят вам столько эмоций, как хакатоны. Поэтому, вперед!