
Заключителната част на трилогията за хакатоните. В разказах за мотивацията да участвам в подобни мероприятия. беше посветена на грешките на организаторите и техните резултати. Заключителната част ще отговори на въпросите, които не намериха място в първите две части.
Разкажи как започна да участваш в хакатони.
Уча в магистратурата на Университета в Лаппеенранта, като успоредно решавам състезания по анализ на данни. Типичният ми ден изглеждаше по следния начин: ставане в 8, няколко лекции в университета, след това състезания и курсове до полунощ (докато приемам решения, гледам лекции или чета статии). Тази строга програма даде резултати и спечелих състезанието по анализ на данни MERC-2017 (за което дори имаше ). Победата ми вдъхна увереност и когато случайно попаднах на информация за хакатона SkinHack 2 в Москва, реших да посетя родителите си и да разбера какво е това – хакатон.
Сами́ят хакатон бе доста забавен. Имаше два трека по анализ на данни с ясна метрика и датасет с награди от по 100 000 рубли. Третият трек беше за разработка на приложения с награда от 50 000, в който нямаше участници. В един момент организаторът каза, че прозорец с бутон без функционалност може да спечели 50 000, защото наградата не може да бъде неизплатена. Не започнах да уча programиране на приложения (не се състезавам там, където лесно могат да ме „превъртят“), но за мен това беше ясен знак, че полетата в хакатоните не са заети.
Тогава решавах и двата трека по анализ на данни сам. Намерих вратичка в данните, която позволяваше да се постигне идеален скор, но колоната с вратичката я нямаше в тестовите данни, които получих два часа преди края на събитието (между другото, тогава разбрах, че наличието на колоната “target” в тренировъчните данни не се счита за вратичка). В същото време беше отворен лидербордът, моето решение без вратичка заемаше третото място от пет, до първото имаше голяма разлика и реших да не губя време и си тръгнах.
След като анализирах какво се случи, намерих много грешки (една от моите навици е да въртя в главата си какво се случи с блокнот и да анализирам грешките, причините и какво можеше да се промени — приятно наследство от полупрофесионалната игра на покер). Но едно беше напълно ясно — в хакатоните има много стойност, и просто трябва да я реализирам. След това събитие започнах да следя мероприятия и групи, и следващият хакатон не закъсня. След това още един, и още...
Защо се занимаваш с хакатони, а не с Kaggle?
В момента не ми харесва Kaggle. От определено ниво на умения, без специфични причини за участие, Kaggle става по-малко полезен от други активности. Участвал съм много по-рано, явно съм успял по някакъв начин да ‘сляза’.
Защо хакатони, а не работа върху собствен проект?
Идеята да направя нещо страхотно с ръцете си в не толкова бърз темп ми харесва. Хората от ODS организираха за всички, които искат през уикенда да се занимават със своите проекти в компанията на сродни души. Мисля, че скоро ще се присъединя към тях.
Как намираш мероприятия?
Основният източник е hackathon.com (светът) и чата в Telegram (Русия). Освен това анонсите за мероприятия минават в реклама в социални мрежи и в LinkedIn. Ако не намериш нищо, можеш да провериш тук: mlh.io, devpost.com, hackevents.co, hackalist.org, HackathonsNear.me, hackathon.io.
Готвиш ли план за решението преди участието или всичко се решава на място? Например, седмица преди хакатона обмисляш: 'Тук ще е нужен такъв и такъв специалист, трябва да потърся'?
Ако хакатонът е продуктов — да, подготвям се. Няколко седмици преди това измислям какво ще правя, обмислям кой може да е полезен, събирам екип от приятели или участници от минали хакатони.
Възможно ли е да ‘хакнеш’ хакатон сам? Какво да правиш, ако нямаш екип?
Хакатоните по данни — това е реално (аз съм жив пример за това), продуктови хакатони — не съм виждал, но също мисля, че може да е така. За съжаление, понякога организаторите налагат ограничение на минималния брой участници в екипа. Мисля, че това се дължи на факта, че не всички “самотници” стигат до финала (т.е. просто се отказват при първите трудности), участието в екип все пак задържа. След събитието се предполага, че ще продължите работа по проекта. С екип ще е по-лесно да доведете проекта до съвършенство.
В общи линии, винаги съветвам да участвате с екип. Ако нямате свой екип, организаторите винаги ще помогнат да намерите или създадете такъв.
Как успявате да се справите с умората по време на хакатона?
На хакатона се дават 2 дни за работа, това е 48 часа (30-48 часа, вземаме 48 за улеснение). Премахваме времето за сън (16-20 часа), остава не повече от 30. От тях реално за продуктивна работа ще отидат около 8 часа (в平均). Ако се организирате правилно (сън, хранене, излизане на чист въздух, упражнения, моменти на осъзнатост, правилно общуване с екипа и преминаване към различни активности), часовете на дълбока работа могат да достигнат 12-14. След такава работа ще се чувствате изтощени, но това ще е приятна умора. Програмирането без сън и почивки и прехвърляне на енергийни напитки — пътят към провала.
Имате ли готови пайплайни за хакатони? Как се появиха, как са организирани (по папки с .py файлове, всеки за своя задача и т.н.) и как да започнете да създавате сами такива?
Не използвам напълно готови решения от минали хакатони в новите, но имам собствен зоопарк от модели и пайплайни от предишни състезания. Не ми се налага да преписвам стандартни части от нулата (например, правилно target encoding или проста мрежа за извличане на намерение от текст), което ми спестява много време.
В текущия момент това изглежда така: за всяко състезание или хакатон имам свое хранилище на GitHub, в което се съхраняват тетрадки, скриптове и малка документация за това, което се случва. Освен това има отделно хранилище за всякакви боксови 'фишечка' (като правилното target encoding с крос-валидация). Не мисля, че е най-елегантното решение, но за момента ме удовлетворява.
Бих започнал с организиране на целия код в папки и написване на кратка документация (защо, какво, как правих и резултата).
Възможно ли е за такъв кратък период да се подготви MVP от нулата или всички участници идват с готови решения?
Мога да кажа само за проекти, свързани с данни — да, възможно е. MVP за мен е съвкупност от два фактора:
- Жизнеспособна идея, представена като продукт (т.е. описан бизнес модел). Винаги трябва да има ясен нюанс защо и за кого създаваме продукта. Понякога проекти с добре обоснован план, но без прототип, печелят призови места и това не е изненадващо. За съжаление, много участници не могат да се абстрахират от горчивината на поражението и приписват неуспехите си на недалновидността на организаторите, продължавайки да правят модели за непонятни цели на следващите хакатони.
- Някакъв признак, че можете да направите този продукт (приложение, код, описание на пайплайни).
Случва се екип на хакатон да дойде с готово решение и да се опита да го „приспособи“ към задачата на организаторите. Такива екипи отпадат на техническия скрининг или „се счита“ само частта, която са направили на място. Не съм виждал такива екипи сред победителите, но мисля, че им е все пак изгодно да присъстват заради бъдещата стойност ().
Има ли примери за довеждане на проекти, реализирани на хакатони, до продукция/стартап?
Да. Имах три случая, когато доведох до продакшън. Един път сам, два пъти — с чужди ръце, основавайки се на моите идеи и код, който написах на хакатона. Знам и за няколко екипа, които продължаваха сътрудничеството с компанията в качеството си на консултанти. Не знам за финалните резултати, но вероятно нещо е било направено до край. Самият стартап не съм създавал и не знам някой да го е правил, въпреки че съм сигурен, че има примери.
След участие в много хакатони, какви съвети би дал на себе си, ако можеше да се върнеш в миналото?
- Тактиката е по-важна от маневрите. Представяй всяко решение като готов продукт. Идея, Jupyter Notebook, алгоритъм не струват нищо, ако не е ясно кой ще платиш за това.
- Преди да проектираш нещо, отговори на въпросите не „какво?“, а „защо?“ и „как?“. Пример: проектирайки решение за ML, помисли в началото за идеалния алгоритъм: какво получава на вход, как се използват предсказанията му напред?
- Участвай в екипа.
С какво обикновено хранят на хакатоните?
Обикновено на хакатоните храната не е много добра: пици, енергийни напитки, газирани напитки. Почти винаги храната е организирана под формата на шведска маса (или раздавателна маса), на която се образува огромна опашка. През нощта обикновено не се храни, въпреки че имаше случай на едно състезание в Париж, където през нощта оставиха чипсове, понички и кола. Представям си мисловния процес на организаторите: "Какво ядат програмистите? А, точно! Чипсове, понички — това е всичко. Нека им сложим това нещо." На следващия ден попитах организаторите: "Ребята, не може ли да направите нещо друго за нощта? Например, овесена каша?" След това ме гледаха като идиот. Знаменитото френско гостоприемство.
На добрите хакатони храната се поръчва в кутии, има разделение на обикновена, вегетарианска и кошерна храна. Плюс стягат хладилник с йогурти и мюсли — за тези, които искат да хапнат нещо. Чай, кафе, вода — стандарт. Запомни се хакатонът Hack Moscow 2 — там истински ни нахраниха с борш и кюфтета с пюре в столовата на офис 1С.
Разумността на хакатоните зависи, така да се каже, от професионалната сфера на организаторите (например, най-добрите хакатони се провеждат от консултанти)?
Най-добрите хакатони са били организирани от хора, които или преди това са организирали хакатони, или преди това са участвали. Може би това е единственият фактор, от който зависи качеството на събитието.
Как да разбера, че не си нуб и е време за хакатон?
Най-доброто време да отидеш на хакатон беше преди година. Второто най-добро време — сега. Така че смело, греши, учи се — това е нормално. Дори невронната мрежа — великото изобретение на човечеството след колелото и градиентния бустинг над дърветата — не може да разграничи котка от куче в първия етап на обучение.
Кои "червени флагове" директно показват, че мероприятието няма да е много успешно и не трябва да се губи време?
- Ясно определено какво трябва да се направи (актуално за продуктовите хакатони). Ако при регистрацията ви ясно бъде поставена задача, по-добре е да си останете вкъщи. Спомням си, че не е имало нито един добър хакатон с техническо задание. За сравнение: Добре — направете ни нещо свързано с анализа на звукови разговори. Зле — направете ни приложение, което да може да разделя разговора на две отделни звукови пътеки за всеки човек.
- Малък награден фонд. Ако ви помолят да направите “тиндер за онлайн магазин с AI” и наградата за първо място е 500 евро с минимален размер на отбора от 5 души — вероятно не си струва да губите време (да, това е реален хакатон, който се проведе в Мюнхен).
- Липса на данни (актуално за хакатоните по данни). Организаторите обикновено предоставят основна информация за събитието и понякога семпъл от набора данни. Ако не са предоставени — питайте, няма да загубите нищо. Ако за 2-3 не е ясно какви данни ще бъдат предоставени и дали изобщо ще бъдат — това е червен флаг.
- Нови организатори. Не се мързете и потърсете информация за организаторите на хакатона. Ако те провеждат такова събитие за пръв път — вероятността нещо да се обърка е голяма. От друга страна, ако организаторът и членовете на журито вече са провеждали хакатони или активно са участвали в миналото — това е зелен флаг.
На един хакатон ми казаха: „Ти имаш най-доброто решение по скор, но извини, при нас се оценява работата в екипа, а ти работеше сам. Ако беше включил в екипа студент или момиче…?“ Срещал ли си подобна несправедливост? Как се справяше?
Да, срещал съм и неведнъж. Стойчески разглеждам всичко, което се случва: направих всичко, което можех, ако не се е получило — така да бъде.
Защо се занимаваш с всичко това?
Всичко това е просто от скука.
Източник: habr.com
