Как организовать онлайн хакатон?

 Публичный пост

Я уже два года провожу конкурсы для продакт-менеджеров, дизайнеров и аналитиков careerfactory.ru.

Фишка нашего формата это отсутствие жюри и p2p оценка работ.
У нас есть хитрый алгоритм, благодаря которому итоговый результат оценки получается очень точным, а побочным эффектом является то, что участникам очень нравится смотреть и оценивать чужие работы.

Через нас прошли тысячи участников и даже есть какая-то известность, но в основном в локальном кружке продактов и дизайнеров. А хочется развиваться дальше.

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

Сейчас мне хочется найти ответы на следующие вопросы:

  1. Как организовать выкладывание и проверку заданий? Проверка будет в p2p формате, при этом важно, чтобы если кто-то выложит зловредный код, то это никому не навредило.

  2. Какие хакатоны вы считаете прикольными и поучаствовали бы в них ради фана? Или просто идеи хакатонов, которых нет, но в которых бы поучаствовали (я понимаю что тут все подгоревшие сеньоры, но все же).

Вообще, буду рад любому личному опыту или полезным советам по этой теме.

6 комментариев 👇

Участвовал в нескольких хакатонах на devpost.com и в локальных швейцрских — соло и в составе команд во время локлауна в 2020-2021 годах.

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

  • приятно, когда решаешь внятную задачу, а не участвуешь в абстрактном конкурсе идей «сделайте что-нибудь» (как было в одном хакатоне «сделайте ещё что-нибудь для борьбы с ковидом»)
  • приятно, когда у задачи есть конкретный бенефициар и твой вклад — полностью или частично — имеет шансы быть переиспользованным в дальнейшем, а не забытым на следующий день после окончания хакатона;
  • приятно, если процесс хакатона позволяет не просто пилить код в стороне, а потом презентовать его на демо остальным пильщикам, а параллельно общаться с организаторами, бенефициарами, другими командами;
  • приятно получать развёрнутый фидбек, а не просто ранжирование "вы на 123-м месте из 999, молодцы";
  • приятно, если организаторы одаривают участников памятными подарками (даже если эти подарки символические/цифровые или нужно самим доплатить для их получения — например, заказать футболку), а победителей — призами (не обязательно ценными физическими)
  • приятно, когда всё опенсорс с первого дня и можно следить за прогрессом других команд и знать, что твой код смотрят другие (вдруг кто зарепортит багу или как-то даже сконтрибутит?)
  • приятно, когда организаторы позаботились о CI/CD и предоставляют инфраструктуру или хотя бы её компоненты — так что команды могут сфокусироваться на бизнес-задаче, а не тратить время на организацию среды разработки, сборки и деплоймента;
  • приятно, когда есть доступ к пулу людей и идей— можно прийти одному и найти единомышленников реализовывать свою идею или же объявить себя «свободными руками / головой», перечислить что ты можешь/умеешь/ищещь и попробовать вкатиться в команду;
  • приятно, когда ты можешь работать не только с рандомными людьми онлайн, а можешь найти единомышленников из той же страны что и ты или говорящих на том же языке что и ты, сконнектиться с ними в реале и т.п.
  • приятно, если хакатон не заставляет кранчить 48 часов с вечера пятницы до вечера воскресенья, когда приходится забивать на семью, планы и режим дня, а проходит в расслабленной обстановке — неделю, две или даже месяц, так что команды могут найти свой темп работы.
  Развернуть 1 комментарий
Vladimir Kilyazov AI Software Solutions Engineer 3 августа 2022

Вкину несколько мыслей, интересная тема!
P2P формат - крутая идея, столкнулся с чем-то подобным при отборе на "Хакатон на Полярном круге", куда мы прошли, но потом так и не доехали из-за ковида. Там формат не очень хорошо работал, потому что оценивали не участники, а человек 5-7 жюри.
Для меня важной частью хакатонов является возможность сделать "демо" решения - натурально потыкать его, как для жюри, так и для других участников, потому что только в рамках презентации раскрыть суть своего решения ну просто невозможно. Ну и понять, что в итоге сделали другие команды тоже.
В рамках ML хакатонов с лидербордами решения часто запускают в автономных докер-контейнерах, чтобы тест сет не утек.
Классно когда организаторы слишком сильно не сужают задачи и оставляют простор для интересных и оригинальных решений, потому что иногда получается так, что решения бывают ну прямо очень похожими.

Я не особо люблю онлайн формат - для меня хакатоны ещё про командное взаимодействие, про общение, посещение и изучение новых мест, это всё в теории обновляет нейронные связи и лечит от этого вашего сеньорского выгорания, а в онлайне многое теряется. Точно поучаствовал бы в чем-то таком - делаем "пионерский" хакатон-лагерь с отрядами и менторами-вожатыми, с изучением какой-нибудь местной идентичности (как Кружок), а оценку решений делаем в P2P формате с местными жителями в роли жюри :)

  Развернуть 1 комментарий

@vladimirwest, спасибо, полезные мысли! А вот вопрос про докеры. Я беспокоюсь за безопасность и да - возможность потыкать чужое решение в докере звучит как более секьюрно для участников. Но вопрос - а как бы ты организовал выкладку таких решений? Их как-то заливают на сервер оргов, или хранят у себя или как это вообще происходит? Просто докер контейнеры вроде бы еще и весят немало, это не гитхаб какой-нибудь.

  Развернуть 1 комментарий

@glebkudr, немножко с моей девопсной колокольни:
Можно организовать это как доступ к гитхаб репозиторию, у которого в корне лежит dockerfile/makefile, и билдить на том же гитхабе. CI для опенсорсных проектов бесплатен, а по пути можно ещё и каким-нибудь статическим анализатором проверить, что решение не шлёт данные куда не пристало и не делает rm -rf
Но это такое, решение из головы. Скорее всего, у опытных людей есть более элегантные способы )

  Развернуть 1 комментарий

Я в Wunder Fund делал два раза челленджи по машинке.

Участники обучали модели, которые потом запускались в докере на серваке.

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


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

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

Данными были определенным образом измененные биржевые данные, действиями — отправка и снятие ордеров, а счетом в игре — прибыль (ну, kinda).

Было классно, что-то засабмитило что-то около 1500 человек.
Был форум, народ прям обсуждал, расследовал, что за данные, что за действия)


Еще могу посоветовать поглядеть на

  • https://highload.fun/ — чуваки супер-оптимизируют производительность. Аудитория узкая, но все оч крутые.

  • https://russianaicup.ru/ — старые AI cups от мейла. Участники пишут проги, которые играют во всякие игры самодельные. Сейчас их куда-то в большую платформу запрятали.

  • Кагл, конечно

  Развернуть 1 комментарий

Я думаю, что к хакатону программисты потянутся, если там будет интересная для них задача. По-настоящему интересная, а не в постмодерново-ироничном смысле.

Честно говоря не знаю, какая задача была бы интересной для широкого круга программистов. Вот, например, я занимаюсь рендерингом карт и мне были бы интересны задачи, до которых у меня никогда не дойдут руки в обычном моем рабочем флоу. Например скачать OSM-ных геоданных и нагенерировать процедурной генерацией для них рендер в каком-нибудь Unity, Godot или UE. Но для тех кто не занимается геоинформатикой это будет гораздо труднее, потому как задача имеет четкий домен, куда надо въезжать.

Если брать задачи без домена, то их не так много и по ним уже есть всякие там leetcod'ы и project euler'ы. Возможно стоит посмотреть в какую-то подобную сторону.

Еще один способ организовать интересный хакатон - это дать задачку на интересную программистам технологию/теорию, заведомо бессмысленную и в крайней степени сложную. Чтобы это был вызов интеллектуальным способностям, а не нечто скучно-прагматичное. Правда для этого надо иметь имя и программисты из целевого сообщества должны быть достаточно "игривые". Пример подобного подхода есть у функциональщиков, называется ICFP, вот например отчет как оно проходит https://users.livejournal.com/-adept-/106759.html?ysclid=l6eqrdsdnw892657140

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

  Развернуть 1 комментарий

😎

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

Что вообще здесь происходит?


Войти  или  Вступить в Клуб