QA: Хакатони

QA: Хакатони

Заключна частина трилогії про хакатонів. У першій частині я розповів про мотивацію до участі у таких заходах. Друга частина була присвячена помилкам організаторів та їх результатам. Заключна частина відповість на питання, які не помістились у перші дві частини.

Розкажи, як ти почав брати участь у хакатонах.
Я навчався в магістратурі університету Лаппеенранта попутно вирішуючи змагання з аналізу даних. Мій типовий день виглядав наступним чином: підйом у 8, кілька пар в університеті, потім змагання та курсера до півночі (поки вважається сабміт я дивлюся лекції або читаю статті). Такий жорсткий графік приніс свої плоди і я виграв змагання з аналізу даних MERC-2017 (про що навіть був пост на хабрі). Перемога накинула впевненості в собі, і коли я випадково натрапив на інформацію про хакатон SkinHack 2 в Москві, я вирішив відвідати батьків і заразом дізнатися, що це таке — хакатон.

Сам хакатон вийшов досить кумедним. Було два треки з аналізу даних із чіткою метрикою та датасетом із призовими по 100к рублів. Третій трек був із розробки додатків із призовим 50к, і у ньому був учасників. Одного разу організатор сказав, що віконце з кнопкою без функціоналу може виграти 50к, тому що приз не може бути не сплачено. Я не став вчитися програмувати програми (я не змагаюся там, де мене можуть з легкістю "перевернути"), але для мене це був чіткий меседж, що поля в хакатонах не забиті.

Тоді я вирішував обидва треки з аналізу даних один. Я знайшов лик у даних, який дозволяв вибити ідеальний швидкий, але стовпця з ликом не було в тестових даних, які я отримав за дві години до кінця заходу (до речі, тоді я розумів що наявність колонки “target” у трейні не вважається за лич ). У той же час відкрився лідерборд, мій сабміт без лику посідав третє місце з п'яти, до першого був великий відрив і я вирішив не гаяти часу і поїхав.

Після того як я проаналізував на свіжу голову, що сталося, я знайшов купу помилок (одна з моїх звичок - подумки прокручувати що сталося з блокнотом і аналізувати помилки, їх причину, і що можна було поміняти - така приємна спадщина напів-професійної гри в покер). Але одне було зрозуміло точно - у хакатонах є багато value, і я просто зобов'язаний його продати. Після цієї події я почав моніторити заходи та групи, і наступний хакатон не змусив на себе довго чекати. Потім ще один, і ще...

Чому ти займаєшся хакатонами, а не каглом?
На даний момент мені не подобається кагл. З певного рівня скила, без специфічних причин участі, кагл стає менш корисним, ніж інші активності. Я багато брав участь раніше, мабуть, мені вдалося якось "злізти".

Чому хакатони, а не робота над своїм проектом?
Мені імпонує ідея зробити щось круте своїми руками у нешвидкому темпі. Хлопці з ODS організували ODS pet projects для всіх, хто хоче у вихідні зайнятися своїм проектом у колі однодумців. Думаю, що незабаром я до них приєднаюся.

Як ти знаходиш заходи?
Основне джерело – hackathon.com (світ) та чат у телеграмі Російські хакери (Росія). Плюс новини заходів проскакують у рекламі в соціальних мережах і в linkedin. Якщо нічого не знайшли, можна подивитися тут: mlh.io, devpost.com, hackevents.co, hackalist.org, HackathonsNear.me, hackathon.io.

Чи готуєш план рішення до участі чи все вирішується на ходу? Наприклад, за тиждень до хакатону прикидаєш: «Тут потрібний буде такий і такий фахівець, треба буде пошукати»?
Якщо хакатон продуктовий – так, готуюся. За кілька тижнів до я вигадую що робитиму, прикидаю, хто може стати в нагоді, збираю команду з друзів або учасників минулих хакатонів.

Чи реально хакнути хакатон поодинці? Що робити, якщо команди немає?
Датасаенс хакатони — реально (я — живий приклад), продуктові — не бачив, хоча теж думаю, що так. На жаль, іноді організатори накладають обмеження мінімальної кількості учасників у команді. Я думаю це викликано тим, що не всі "одиначки" доходять до фіналу (тобто просто йдуть з першими труднощами), участь у команді все ж таки стримує. Ще після заходу передбачається, що ви продовжите роботу над проектом. З командою довести проект до пуття буде легше.

Загалом я раджу завжди брати участь із командою. Якщо у вас немає своєї команди, то організатори завжди допоможуть, щоб її знайти або створити.

Як вдається справлятися зі втомою під час хакатону?
На хакатоні дається 2 дні на роботу, це 48 годин (30-48 годин, візьмемо 48 для простоти рахунку). Забираємо час на сон (16-20 годин), залишається не більше 30. З них реально на продуктивну роботу піде годині 8 (в середньому). Якщо правильно організувати роботу (сон, харчування, вихід на свіже повітря, зарядки, хвилини усвідомленості, правильне спілкування з командою та перемикання активності), то deep work годинник можна добити до 12-14. Після такої роботи почуватимешся виснаженим, але це буде приємна втома. Кодити без сну та перерв перебиваючись енергетиками – шлях до провалу.

Ти маєш свої готові пайплайни для хакатонів? Як вони у тебе з'являлися, як вони в тебе влаштовані (лежать по папочках .py файли, кожен для своєї задачі тощо) і як почати створювати такі?
Я не використовую повністю готові рішення минулих хакатонів у нових, але я маю свій зоопарк моделей і пайплайнів з минулих змагань. Мені не доводиться переписувати стандартні шматки з нуля (наприклад, правильний target encoding або просту сіточку для виділення інтенту з тексту), що заощаджує мені багато часу.

В даний момент це виглядає ось так: для кожного змагання або хакатона є своє репо на гітхабі, в ньому зберігаються ноутбуки, скрипти та невелика документація про те, що відбувається. Плюс є окреме репо для будь-яких коробкових "фішечок" (на зразок правильного target encoding з крос-валідацією). Я не думаю, що це найелегантніше рішення, але поки що мене влаштовує.

Я б почав зі збереження всього свого коду за папками та написання короткої документації (навіщо, що, як робив і результат).

Чи реально за такий короткий термін підготувати MVP з нуля чи всі учасники йдуть із готовими рішеннями?
Можу сказати лише про проекти пов'язані з датасаєнс — так, можливо. MVP для мене це сукупність двох факторів:

  • Життєздатна ідея представлена ​​як продукт (тобто розписаний business canvas). Завжди має бути чітке розуміння, чому і для кого ми робимо продукт. Іноді проекти з добре обґрунтованим проектом, але без прототипу виграють призові місця і в цьому немає нічого дивного. На жаль, багато учасників не можуть абстрагуватися від гіркоти поразки та списують свої невдачі на недалекоглядність організаторів, продовжуючи пиляти модельки незрозуміло для когось на наступних хакатонах.
  • Якийсь показник що ви цей продукт можете зробити (додаток, код, опис пайплайнів).

Буває, що на хакатон приходить команда з готовим рішенням та намагається його "підігнати" під завдання організаторів. Такі команди відсікаються на технічному скринінгу або "вважається" лише частина, яку вони зробили на майданчику. Я не бачив таких команд у переможцях, але я думаю їм все одно вигідно ходити через future value (контакти, датасети та інше).

Чи є приклади доведення виробів реалізованих на хакатонах до продакшену/стартапу?
Так. У мене було три випадки, коли доводили до продакшену. Один раз сам, двічі — чужими руками, виходячи з моїх ідей і коду, який я написав на хакатоні. Ще знаю пару команд, яка продовжувала співпрацю з компанією як консультанти. Фінальних результатів не знаю, але, швидше за все, щось було зроблено до кінця. Сам стартапи не організовував і не знаю, щоби хтось робив, хоча приклади, я впевнений, є.

Після участі в багатьох хакатонах, які б поради ти дав собі, якби міг повернутися в минуле?

  1. Тактика важливіша за маневри. Уявляй кожне рішення як готовий продукт. Ідея, юпітер ноутбук, алгоритм нічого не варті, якщо не зрозуміло хто буде за це платити.
  2. Перш ніж проектувати щось, дай відповідь на запитання не “що?”, а “навіщо?” і як?". Приклад: проектуючи який-небудь ML рішення, спочатку подумай про ідеальний алгоритм: що він отримує на вхід, як його передбачення використовуються надалі?
  3. Бери участь у команді.

Чим зазвичай годують на хакатон?
Зазвичай на хакатонах годують погано: піци, енергетики, газування. У більшості випадків їжа організована у формі шведського столу (або роздавального столу) до якого вишиковується величезна черга. Вночі зазвичай не годують, хоча був випадок на одному змаганні в Парижі на ніч залишили поїсти — чіпси, пончики та колу. Я представлю уявний процес організаторів: “То, що там їдять програмісти? А точно! Чіпси, пончики — це все. Покладемо їм цю погань. Наступного дня я запитав організаторів: “Хлопці, а чи не можна зробити на ніч щось інше? Ну там, кашу наприклад? Після цього на мене подивилися, як на ідіота. Відома французька гостинність.

На добрих хакатонах їжу замовляють у боксах, є поділ на звичайне, вегетаріанське та кошерне харчування. Плюс ставлять холодильник із йогуртами, мюслі — для тих, хто хоче перекусити. Чай, кава, вода – стандарт. Запам'ятався хакатон Hack Moscow 2 — там душевно нагодували борщем та котлетами з пюрехою в їдальні офісу 1С.

Розсудливість хакатонів залежить, так би мовити, від професійної сфери організаторів (наприклад, найкращі хакатони проводять консалтери)?
Найкращі хакатони були від організаторів, які або раніше організовували хакатони, або раніше брали участь. Мабуть це єдиний чинник, від якого залежить якість заходу.

Як зрозуміти, що ти не нуб і час на хакатон?
Найкращий час, щоб піти на хакатон — рік тому. Другий найкращий час – зараз. Так що дерзай, помиляйся, вчися - це нормально. Навіть нейронна мережа – найбільший винахід людини після колеса та градієнтного бустингу над деревами – не може відрізнити кішку від собаки на першій епосі навчання.

Які «червоні прапори» одразу говорять про те, що захід буде не дуже і не треба гаяти час?

  • Чіткий опис що потрібно зробити (актуально для продуктових хакактонів). Якщо під час реєстрації вам чітко буде поставлено завдання, то краще залишитися вдома. На моїй пам'яті не було жодного гарного хакатону із ТЗ. Для порівняння: Добре, зробіть нам щось пов'язане з аналізом аудіо розмов. Погано — зробіть нам додаток, який міг би розділяти розмову на дві окремі звукові доріжки кожної людини.
  • Невеликий призовий фонд. Якщо вас просять зробити “тиндер для онлайн магазину з AI” та приз за перше місце 500 євро та мінімальним розміром команди у 5 осіб – мабуть не варто витрачати час (так, це реальний хакатон, який проводився у Мюнхені).
  • Відсутність даних (актуально для датасаєнс хакатонів). Організатори зазвичай надають основну інформацію про захід та іноді семпл датасету. Якщо не надали — спитайте, з вас не зменшиться. Якщо за 2-3 незрозуміло, які дані будуть надані і чи будуть вони взагалі, це червоний прапор.
  • Нові організатори Не полінуйтеся та погуглить інформацію про організаторів хакатону. Якщо вони проводять такий захід вперше — велика ймовірність того, що щось піде не так. З іншого боку, якщо організатор та члени журі вже проводили хакатони або в минулому брали активну участь — це зелений прапор.

На одному хакатоні мені сказали: «У тебе було найкраще рішення за швидким, але вибач, у нас оцінюється робота в команді, а ти працював поодинці. От якби ти взяв у команду студента чи дівчинку…”? Чи зустрічав ти таку несправедливість? Як справлявся?
Так, зустрічав і неодноразово. Я стоїсто ставлюся до всього, що відбувається: я зробив усе, що в моїх силах, якщо не вийшло — так тому і бути.

Навіщо ти цим займаєшся?
Все це просто від нудьги.

Джерело: habr.com

Додати коментар або відгук