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

Хакатон 2017 - Восхищение

В 2017 я учился на 2 курсе университета. На тот момент я подрабатывал системным администратором в ВУЗе, активно программировал и только начал постигать весь уют IT-мероприятий. Мы с товарищами пытались делать мобильное приложение в качестве домашнего проекта и решили отправить заявку на хакатон просто так. Цель мы тогда поставили себе крайне амбициозную: сделать возможность переводить голосовые сообщения в текст нажатием лишь одной кнопки (тогда этой функции еще не было). Надо ли говорить, что на тот момент для нас было трудной задачей даже поднять простейший веб-сервер, а нейросети представлялись чем-то далеким. Однако тогда амбиции плескали через край, поэтому заявка в первый день улетела в недра серверов Вконтакте.

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

Когда первые эмоциональная волна спала, то нас накрыла следующая - волна осознания того, что нам надо как-то распознавать речь. И, разумеется, никто не имел ни малейшего понятия как это делается. Поиск в Google натолкнул нас на DeepSpeech и мы решили, что все сможем и море по колено. С этими настроениями мы и погрузились в Плацкарт, где я усердно начал изучать книжку по машинному обучению, а мой сокомандник - "Братьев Карамазовых" Достоевского. Что-то однозначно обещало помочь.

Хакатон проводился в большом арендованном зале:

Вид со сцены
Вид со сцены

Повсюду были светящиеся компьютеры и глаза, со всех сторон шипели открывающиеся энергетики и звучали тогда так непривычное слова "MVP" и "питч". Я тогда первый раз увидел столько макбуков. Убранство зала было под стать хакатону, но нам оно казалось дворцом императора. Первый хакатон, да еще и в другом городе - эмоции хлестали через край.

Вид со стола и табличка
Вид со стола и табличка

Тогда Вконтаке не поскупился на мерч. Помимо майки дали удобную маску на глаза и надувную подушку под голову

В начале хакатона нам помимо виртуальной машины, которую давали всем участникам, выделили GPU-сервер аж с 64гб оперативной памяти и 4 видеокартами для обучения нейронной сети

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

Хакатон научил нас многому. Он дал заряд сил и энергии, мотивировал развиваться дальше и изучать новые технологии, расти и стремиться к большему. Это и было наше восхищение.

С того мероприятия сильно запомнилась фраза одного из сотрудников / менторов:

Не бойтесь брать на себя ответственность

Этим правилом я руководствую и по сей день. А теперь постараюсь описать плюсы и минусы мероприятия и сделать выводы

Плюсы

  • Очень крутой опыт с новыми технологиями, новые знакомства и формат разработки 2 суток почти без сна

  • Заряд мотивацией на месяцы вперед

  • Одна из тех историй, что можно рассказать

Минусы

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

  • Трудно было понять какие критерии оценки проектов, чтобы попасть в финал. Но тогда это было не так важно, мы просто глазели по сторонам и улыбались всему, что происходит вокруг

Выводы

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

Для тех, кому мало картинок

В последний момент откопал старое видео с мероприятия, там можно чуть глубже погрузиться в атмосферу. Видео студенческое, серьезного обзора ждать не стоит :)

Хакатон 2019 - Агрессия

Второй мой хакатон от компании "Вконтакте" прошел в 2019 году под слоганом "Когда идеи на миллион - это твой профиль". С предыдущего мероприятия минуло 2 года, я слегка заматерел и был готов писать ифы и форы с удвоенной скоростью. К сожалению, с командой в том году не сложилось и поэтому из 4 ребят, приехавших на хакатон, лишь двое представляли из себя немного компетентных программистов. Однако настрой был боевой.

В этом году стало заметно, что мероприятие выросло уровнем. Оно проходило в месте под названием "выставочный центр Манеж", все так и источало из себя аристократию. На входе нас встретили охранники с проводами в ушах, которые наотрез отказывались говорить есть ли у них оружие. Смотрелось действительно величественно. На 1 этаже находилась сцена:

Андрей Рогозов - управляющий директор Вконтакте
Андрей Рогозов - управляющий директор Вконтакте

Если подняться на 2 этаж, то можно было натолкнуться на огромное скопление программистов и дизайнеров

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

Фото на не очень хороший фотоаппарат
Фото на не очень хороший фотоаппарат

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

Однако тут и обострились те вопросы, которые были всегда, но организаторам не задавались. Всегда заявлялось, что существуют объективные критерии оценки проектов, но тогда и пришло понимание, что все критерии - это лишь ширмочка, а в действительности необходимо показать лишь крутое демо и сказать пару фраз впопад. А еще поговорить заранее с теми людьми, которые будут тебя оценивать, если есть такая возможность. К примеру, представители нашего кейса "Благотворительность" напрямую хотели сделать в приложении механику "какие-то действия за деньги". Я много говорил с ними о целесообразности этого, ведь у нас благотворительность, взносы должны быть добровольны, а принуждать платить - затея не самая хорошая. Ну так я считал. А организаторы считали иначе, были неумолимы и непоколебимы. В силу своего максимализма, который можно назвать юношеским, мы сделали так, как видели сами. Этим и поплатились тем, что наша команда не попала в финал, увы.

Плюсы

  • Хакатон находился в очень красивом месте в центре Санкт-Петербурга. Убранство восхищало

  • Wi-Fi cеть, в отличии от предыдущего хакатона, была стабильна

  • Было много доброжелательно настроенных спикеров и менторов

  • Задачи были действительно интересными

Минусы

  • Охранники с проводками в начале мероприятия ходили и отнимали у всех печенья и чай. Как позже выяснилось, в месте проведения была какая-то особо ценная плитка и плечистые мужо боялись, что на нее что-то будет пролито. С этим в начале была неприятная накладка, были споры и ругань. Но проверить секьюрити на наличие оружия так и не вышло, конфликт был деэскалирован

  • Было откровенно прохладно

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

  • Предварительные спичи (в финал проходило лишь 25 команд) показались несколько скомканными и мы не успели показать и половины презентации. Вероятно, это наш просчет, хотя на репетициях постоянно укладывались в отведенное время

Выводы

Благодаря этому хакатону я выделил для себя 2 залога победы, которая так неприятно ускользала от меня и команды: нужно иметь замотивированных сокомандников с опытом за плечами и хорошо понимать, что хочет от тебя жюри. Но хакатон прошел классно, это была самая веселая моя поездка в Питер.

Хакатон 2020 - Отчаяние

В 2020 году хакатону в привычном его виде не суждено было состояться - пандемия мощным ударом отправила все амбиции на очные мероприятия в глубокий нокаут. Однако организаторы хакатона не растерялись и решили провести мероприятие в новом, весьма необычном формате. Они превратили 48 часов непрерывного кодинга в двухнедельный марафон. Регламент был такой: раз в сутки выдается конкретное задание (на фронтенд, мобильную разработку или дизайн) и у команды есть сутки на то, чтобы выполнить и сдать его. Формат был новым и необычным, поэтому неровностей и шероховатостей от организаторов было как на сельской дороге. Забегая вперед, скажу, что эмоции от мероприятия у меня положительные. Несмотря на все трудности. Но обо всем по порядку.

Изначально был чатик, в котором можно было собрать команду. Там и я попал в группу к молодым ребятам, с которыми мы сработались и по итогу оказались на 12 месте из 670. Не в призах, конечно, но ради призов надо было писать код сутками, а нам не хотелось забывать про работу и личную жизнь. В этом и есть самый большой минус этого марафона - не у всех банально есть время для победы. Однако даже если ты не попадаешь в 5 призовых мест, то была возможность набирать баллы за задания и покупать за них мерч в магазине.

Задания были самые разные, от рефакторинга старого приложения до создания мобильного редактора музыки. Хакатон прошел весело. Больше всего поразили меня организаторы - казалось, они действительно были на связи 24/7, отвечали на все сообщения в чатах и ловко лавировали между теми потоками фекалий, что запускали в них недовольные участники.

Помимо задач было довольно много интересных активностей:

  • Code in the Dark - предлагалось сверстать за 10 минут макет для мобильного приложения

  • Kitten Contest - что-то вроде "своя игра", но на it-тематики

  • Викторины по различным дисциплинам в области IT

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

Плюсы

  • Задания были необычными и разнообразными, некоторые вещи я попробовал впервые

  • В чатах всегда можно было пообщаться и обменяться хохмами

  • Даже если не займешь призового места, можно купить за баллы в магазине что-то из мерча с бесплатной доставкой. Я вот жду очень удобную сумку для ноутбука и значок

  • В конце была интересная активность, где нужно было провести питч бутафорского проекта, тему которого сгенерировал бот. Мы, к примеру, защищали "приложение-мэтчинг для саморазвития няшных тяночек". Было весело отвечать на вопросы вроде "будет ли предусмотрена антифрод система, которая позволила бы отличать интеллектуальную тяночку от псевдоинтеллектуальной тяночки"

Минусы

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

  • Далеко не до всех донесли, что на хакатоне будут задания по фронтенду, мобильной разработке и вебу. На мероприятии были бэкенд-разработчики и люди из data science, которые так и не нашли себе места. Они могли дополнить работы, но с учетом предыдущего пункта совершенно непонятно зачем

  • Организаторы откровенно обманули, потому что перед хакатоном обещали возможность вести разработку мобильных приложений на любых технологиях. А потом выяснилось, что кроссплатформенные решения вроде Flutter и React Native "не являются нативными, потому их использовать нельзя". После множества споров технологии разрешили, однако снимали баллы за них по критерию "адекватность выбранных технологий". Комментариев о причинах этого поступка, увы, так и не было получено. Тут и пришло отчаяние

Вместо выводов

Так что в итоге?

Эти три мероприятия были действительно крутыми, дали мне уйму знакомств и эмоций. Вновь повторюсь, если у вас нет опыта в хакатонах - рекомендую попробовать хоть раз. Неприятно то, что с каждым мероприятием появляется все больше негативных эмоций. Я надеюсь, что в следующем году тенденция будет прервана, ошибки учтены и хакатон порадует и организаторов, и участников!