В прошедшие выходные (27 — 29 сентября) прошел «VK Hackathon», на котором мне и моей команде посчастливилось побывать в качестве участников. В этом посте я бы хотел рассказать о том, как это получилось и насколько хакатоны — это круто.
Во-первых, о нашей команде
Команда у нас огонь и я бы хотел всех поблагадорить, я не ожидал, что так все мощно получится.
Сама команда (Уже в Питере):
- Я — писал бэкенд и рекомендационную модельку
- Арина — дизайнерила все что можно
- Сережа — фронтендил как бог
- Май (на самом деле он Имом)- собирал инфу, проявлял свои коммуникативные навыки и держал в тонусе
25 июля
Началось все в этот день, именно тогда я создал нашу конфу, в которой мы обсуждали треки и подбирали фичи. Изначально наш выбор пал на трек «Путешествия», кейс от «Aviasales». Мы детально все продумали, поняли какие фичи хотели прикрутить и уже видели наш продукт.
23-25 августа
Мы все-таки родили нашу заявку и зарегистрировали нашу команду. А дальше началось томное ожидание, ведь результаты о том взяли нас или нет должны были опубликовать лишь 9 сентября.
8 сентября
Один из моих сокомандников (Сережа) звонит мне в 14:xx и говорит, что у нас проблемы. Нам написали организаторы и сообщили, что нам не хватает совсем немного баллов, чтобы стать участниками Хакатона по выбранному треку. Дело в том, что зарегистрированных команд по треку «Путешествия» было очень и очень много. Нам предложили поменять трек на «Финтех» или взять кейс от «ТАСС». Мы решили, что кейс от «ТАСС» нам совсем не подходит и душа наша к нему не лежит, поэтому начали разбираться в треке «Финтех». Мне пригляделся кейс от «Mastercard», в то время как Сереже больше понравился кейс «ПСБ». Но в конце концов мы выбрали кейс от «ПСБ». Написали решение и подали завяку за 2 часа и за 20 минут до дедлайна успели ее отправить. Все было еще ироничнее если учитывать тот факт, что в это время я ехал на велосипеде в пригороде, а Арина и Май не могли полноценно нам помочь.
(Вот по такому пригороду я ехал и придумывал новый кейс.)
9 сентября
Весь день был сплошным ожиданием. В прошлом году результаты отбора запостили в 10 утра, а в этом году только в 19 вечера). Но результаты нас совсем не обрадовали. Нас не было ни в треке «Путешествия» ни в треке «Финтех». Ну мы в печали решили, что в следующем году нам повезет больше. И наша связь с Хакатоном должна была завершиться.
10 сентября
Вечером я искал какую-то группу, помню только, что это как-то было связано с кейс-чемпионатом, на который меня позвал друг Саша и пролистывая весь список своих групп (целых 31 штука) я почему-то увидел две иконки хакатона. Одна из них была давно мне известна, а вот у новой в названии было «… ON BOARD». Оказалось, что это была группа, в которую добавляли участников хакатона, для организационных вопросов. Но я не понимал, как такое могло произойти, ведь нашей команды не было в списке. Я еще раз проверил список и там все равно было пусто. После чего я все-так написал организаторам и каким-то чудом они просто забыли нас добавить в список. В итоге мы стали участниками этого прекрасного мероприятия)
11-26 сентября
Все последующие дни до хакатона мы думали кто, что и как будет делать. Мы решили, что не будем отступать от заявки и будем идти по ней. Однако в заявке мы указали, что будем реализовывать приложение на платформе «VK Mini Apps» и вся проблема заключалась в том, что для того, чтобы написать приложение под эту платформу надо писать на React'е (фреймворк JavaScript). Во время написания заявки мы думали, что как-нибудь наш дизайнер Арина справится с этим, но дело оказалось гораздо хуже — у нее не было опыта работы с ним. В конце концов тяжкая участь изучения React'а пала на Сережу (мне его искренне жаль) ну и усложнялась она тем, что выучить его надо было за неделю. Мы решили, что лучший способ обучения это проект, поэтому написали приложение, которое будет содержать в себе похожие элементы, но естественно наше приложение с хакатона мы не реализовывали, т.к. это запрещено!
27 сентября
Ну вот и настал этот долгожданный день. Мы пришли в «Манеж» к 14:30, как и было сказано организаторами, зарегистрировались, получили мерч и пошли на свой стол. Разложили ноуты, нашли водичку, погуляли, пофоткались, побыли хипстерами (попили смузи). И в 16:30 началось открытие. Конечно руки уже чесались начать писать код, но нам представили все кейсы и примерно в 17:45 отпустили писать код. На написание приложения нам отводилось 42 часа. Я понимал что надо реализовать из бэкенда и к позднему вечеру (примерно полночь) я закончил писать основные методы, Май нашел сайты для парсинга, Сережа собрал скелет приложения, а Арина нариосвала нужные иконки. Часть нашей команды (Арина и Сережа) уже думали собираться поехать поспать, но тут к нам подошел куратор, мы перекинулись парой фраз и он пошел дальше. У Мая в голове что-то проскочило и он пошел с ним общаться. Общались они долго, минут 20, я уже думал, что Май вникает в банковский бизнес. Потом мы уже всей командой пообщались с куратором и привело это нас к тому, что мы поменяли свою идею, на механике приложения это не сказалось, но идея теперь однозначно цепляла и имела понятную бизнес-модель. После чего Арина с Сережей поехали спать, а мы с Маем остались на ночь.
28 сентября
Всю эту ночь я в основном занимался тем, что собирал данные с сайтов. Под утро, часам к 6 Май уснул под видосы про презентацию и я боролся с сайтами в одиночку. Потом мы позавтракали и Май поменялся с Ариной и Сережей, отправившись поспать. Меня что-то не рубило спать и я попытался помочь Сереже. Так как я не шарил за React, то я по большей части выступал в роли уточки, которой объясняют код и таким образом находят ошибки. К обеду у нас в приложении было почти ничего. И тут я слегка приуныл. Решил дописать бэкенд, потратил на это какое-то время, решил еще и модель рекомендаций написать, удивительно, но она даже работала с показателями(0.6/1.0). Хоть показатели были не очень, но на примерах было приемлимо. Потом смотрю как там дела у нашего фронтенда, а наше приложение начинает приобретать человеческий вид. Тут я почувствовал подъем. До конца этого дня у нас уже вырисовывалось что-то похожее на жизнеспособное приложение. Но очередной день кончился.
29 сентября
Я не чувствовал нехватки времени, я понимал, что мы в принципе успеваем, полет был нормальный. Мы перебазировались с нашего стола на очень удобные диванчики, где и провели всю ночь. Часов до 6 утра мы потихоньку отлаживали последние баги и готовили презентацию. К 8 часам меня уже конкретно покосило (к этому времени я не спал 46 часов), но баги я исправлял, хоть и медленно. Пришлось отрубить модель, т.к. она ломала другой функционал, а исправлять это было очень тяжело со слипшимися глазами. Потом я-таки решил прилечь хотя бы на час, потому что я уже дебажил код, представляя его как картинку экрана в уме. Ну поспал я недолго, чуть меньше часа. Потом мы начали решать вопросы с презентацией. К этому моменту приложение уже имело приятный вид, чему я был очень рад. В итоге мы залили презентацию и ссылку на git за 8 минут до code freez'а (время когда нельзя уже ничего менять). Я был доволен результатом и был в боевом-приподнятом состоянии.
А дальше питчинг (презентация идеи). У нас он стоял в 12:55 (а в 12:40 надо было быть у зоны питчинга), а code freeze был в 12:00. То есть у нас было примерно 30 минут на подготовку к презентации. Готовились мы довольно активно, и в процессе подготовки поняли, что два слайда должны стоять в другом порядке, но благо они были соседние и это не сильно нам помешало. Питчинг прошел хорошо, в паре мест я затянул, но в целом было годно. Нам задали пару вопросов и мы с легкостью на них ответили, т.к. были готовы. Потом нам снова пришлось ждать, на этот раз уже 2 часа, потому что в 15:00 объявляли финалистов. Когда появился список, то мы приуныли, потому что нас там не было, но приуныли совсем чуть-чуть, настроение лично у меня все равно оставалось приподнятым, ведь даже без финала я получил очень много от этого хакатона. На этом история с хакатоном заканчивается.
2 октября
Сегодня нам показали таблицу с баллами за питчинг и я был приятно удивлен. Мы оказались 4/23, что довольно сильно для первого раза. Чтобы попасть в финал нам не хватило буквально чуть-чуть, можно сказать, что не хватило одной доделанной фичи.
Многое на этом хакатоне было для меня впервые:
- Cам хакатон был для меня первым полноценным (до этого был только по Искусственному Интеллекту).
- Я впервые питчил приложение, которое не стыдно показать и которое мне нравится.
- Впервые я так много не спал). За 55 часов я поспал минут 40.
P.S.: Хакатоны на самом деле это очень интересно. До победы в них конечно нам еще не близко, но победа в треке это более чем реальная цель. Атмосфера, которая там присутствует настраивает тебя на работу и прогать еще приятнее. Кругом единомышленники, можно пообщаться с крутыми ребятами с разных топ компаний (и не только про прогу).
Ссылочка на приложение, которое мы успели написать