QA: Хакатони

QA: Хакатони

Заключителна част на трилогията за хакатоните. В първа част разказах за мотивацията да участвам в такива събития. Втора част беше посветена на грешките на организаторите и техните последици. Заключителната част ще отговори на въпросите, които не успяха да се поберат в първите две части.

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

Самият хакатон се оказа доста забавен. Имаше два трека по анализ на данни с ясна метрика и набор от данни с награди от 100 000 рубли. Третият трек беше за разработка на приложения с награда 50 000, и в него нямаше участници. В един момент организаторът каза, че бутон в прозорец без функция може да спечели 50 000, защото наградата не може да не бъде изплатена. Не реших да се уча да програмирам приложения (не се състезавам там, където могат лесно да ме

обърнат"), но за мен това беше ясен сигнал, че полето в хакатоните не е запълнено. Тогава решавах двата трека по анализ на данни сам. Намерих лишение в данните, което позволяваше да постигна идеален резултат, но колоната с лишението не беше в тестовите данни, които получих два часа преди края на събитието (между другото, тогава разбрах, че наличието на колона "target" в обучителния набор не се счита за лишение). В същото време се отвори лидерборд, моето подаване без лишение заемаше трето място от пет, до първото имаше голяма разлика и реших да не губя време и си тръгнах.

След като анализирах с свежа глава какво се случи, намерих много грешки (една от моите навици е да преглеждам в ума си случилото се и да анализирам грешките, причините за тях и какво можеше да се промени — приятно наследство от полу-професионалната игра на покер). Но едно беше ясно — в хакатоните има много стойност и просто трябва да се възползвам от нея. След това събитие започнах да следя мероприятия и групи, а следващият хакатон не закъсня. После още един, и още…

Защо се занимаваш с хакатони, а не с кагъл?
В момента не ми харесва кагъл. От определено ниво на умения, без специфични причини за участие, кагъл става по-малко полезен от други активности. Участвал съм много преди, явно съм успял да 'сляза'.

Защо хакатони, а не работа по собствен проект?
Идеята да направя нещо страхотно самостоятелно в бавен темп ми допада. Хората от ODS организираха ODS pet projects за всички, които искат да се занимават със свои проекти през уикенда в компанията на съмишленици. Мисля, че скоро ще се присъединя към тях.

Как намираш мероприятията?
Основният източник е hackathon.com (света) и чат вtelegram Russian Hackers (Русия). Плюс анонси на мероприятията се появяват в реклами в социалните мрежи и в 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 по папки, всеки за своята задача и т.н.) и как да започнете сами да създавате такива?
Не използвам напълно готови решения от предишни хакатони в новите, но имам свой зоопарк от модели и пайплайни от минали състезания. Не ми се налага да преписвам стандартни парчета от нулата (например, правилно целево кодиране или проста мрежа за извличане на намерение от текст), което ми спестява много време.

В момента изглежда така: за всеки конкурс или хакатон има свое репо на GitHub, в което се съхраняват тетрадки, скриптове и малка документация за това, което се случва. Освен това има отделно репо за различни пакетни „функции“ (като правилно целево кодиране с крос-валидация). Не мисля, че това е най-елегантното решение, но в момента ме устройва.

Ще започна с организирането на целия си код в папки и написването на кратка документация (защо, какво, как съм правил и какъв е резултатът).

Възможно ли е за такъв кратък срок да се подготви MVP от нулата или всички участници идват с готови решения?
Мога да кажа само за проекти, свързани с данни — да, възможно е. MVP за мен е комбинация от два фактора:

  • Жизнеспособна идея, представена като продукт (т.е. описан бизнес модел). Винаги трябва да има ясно разбиране защо и за кого правим продукта. Понякога проекти с добре обоснован план, но без прототип, печелят призови места, и в това няма нищо учудващо. За съжаление, много участници не могат да се абстрахират от горчивината на неуспеха и прехвърлят провалите си на недальновидността на организаторите, продължавайки да правят модели, които не са ясни за кого на следващите хакатони.
  • Някакъв показател, че можете да направите този продукт (приложение, код, описание на потоци).

Случва се на хакатон отбор да дойде с готово решение и да се опитва да го “помести” според задачата на организаторите. Такива отбори често отпадат на техническото скринингово ниво или се “отчита” само частта, която те са направили на мястото. Не съм виждал такива отбори сред победителите, но мисля, че им е изгодно да участват заради бъдещата стойност (контакти, набори от данни и др.).

Има ли примери за довеждане на изделия, реализирани на хакатони, до продукция/стартап?
Да. Имам три случая, когато сме довели до продукция. Един път сам, два пъти — с чужди усилия, въз основа на моите идеи и кода, който написах на хакатона. Знам и за няколко екипа, които продължиха сътрудничеството с компанията в качеството на консултанти. Не знам какви са финалните резултати, но най-вероятно нещо е било направено до край. Сам не организирах стартапи и не знам за другите, но съм сигурен, че примери съществуват.

След участието в многобройни хакатони, какви съвети би дал на себе си, ако можеше да се върнеш в миналото?

  1. Тактиката е по-важна от маневрите. Представяй всяко решение като готов продукт. Идея, Jupiter notebook, алгоритъм не струват нищо, ако не е ясно кой ще плаща за това.
  2. Преди да проектираш нещо, отговори на питането не “какво?”, а “защо?” и “как?”. Пример: проектиране на ML решение, първо помисли за идеалния алгоритъм: какво приема на вход и как се използват неговите прогнози по-късно?
  3. Участвай в екипа.

С какво обикновено хранят на хакатоните?
Обикновено на хакатоните храната е лоша: пици, енергийни напитки, безалкохолно. Почти винаги храната е организирана под формата на шведска маса (или раздаваща маса), на която се изправя огромна опашка. През нощта обикновено не се храни, макар че имаше случай на едно състезание в Париж, когато бяха оставили за похапване — чипсове, понички и кола. Представям си мисления процес на организаторите: “Какво ядат програмистите? А, да! Чипсове, понички — ето какво им е необходимо. Нека им поставим това.” На следващия ден попитах организаторите: “Момчета, не може ли да направите нещо друго за нощта? Например, каша?” След това ме погледнаха като на идиот. Известното френско гостоприемство.

На добрите хакатони храната се поръчва в кутии, има разделение на обикновено, вегетарианско и кошерно хранене. Освен това слагат хладилник с йогурти и мюсли — за тези, които искат да хапнат нещо. Чай, кафе, вода — стандарт. Запомни се хакатонът Hack Moscow 2 — там сме добре нахранени с борш и кюфтета с картофено пюре в столовата на офис 1С.

Релевантността на хакатоните зависи, да речем, от професионалната сфера на организаторите (например, най-добрите хакатони се организират от консултантски фирми)?
Най-добрите хакатони бяха от организаторите, които или преди това организираха хакатони, или участваха по-рано. Може би това е единственият фактор, от който зависи качеството на събитието.

Как да разбереш, че не си начинаещ и е време за хакатон?
Най-доброто време, за да отидеш на хакатон, беше преди година. Второто най-добро време е сега. Така че не се страхувай, греши, учи — това е нормално. Дори невронната мрежа — великото изобретение на човека след колелото и градиентното буустинг над дърветата — не може да различи котка от куче в първия учебен период.

Какви „червени флагове“ веднага показват, че събитието няма да бъде особено добро и не трябва да губиш време?

  • Ясно описание какво трябва да се направи (актуално за продуктови хакатони). Ако при регистрация ви бъде поставена ясна задача, по-добре е да си останете вкъщи. От опит, не съм виждал нито един добър хакатон с ТЗ. За сравнение: Добре — направете нещо свързано с анализ на аудио разговори. Лошо — направете приложение, което да може да разделя разговорите на две отделни звукови писти за всеки човек.
  • Малък награден фонд. Ако ви помолят да направите „тиндер за онлайн магазин с AI“ и наградата за първо място е 500 евро с минимален размер на екипа от 5 човека — малко вероятно е да си струва времето (да, това е реален хакатон, който се проведе в Мюнхен).
  • Липса на данни (актуално за дата-сайънс хакатони). Организаторите обикновено предоставят основна информация за събитието и понякога семпъл на датасета. Ако не е предоставено — питайте, няма да загубите нищо. Ако за 2-3 непонятни данни не е ясно какво ще бъде предоставено и дали изобщо ще има — това е червен флаг.
  • Новите организатори. Не се мързете и потърсете информация за организаторите на хакатона. Ако това е първото им такова събитие — шансовете нещо да не върви са много големи. От друга страна, ако организаторът и членовете на журито вече са провеждали хакатони или активно са участвали в миналото — това е зелен флаг.

На един хакатон ми казаха: „Ти имаш най-доброто решение по скор, но извинявай, при нас се оценява работата в екип, а ти работи сам. Е, ако беше взел студент или момиче в екипа...?" Случвало ли ти се е такава несправедливост? Как се справяше?
Да, случвало ми се е не веднъж. Приемам всичко стоически: направих всичко, което можех, ако не се получи — така да бъде.

Защо се занимаваш с всичко това?
Просто от скука.

Източник: habr.com

Купете надежден хостинг за сайтове с защита от DDoS, VPS VDS сървъри 🔥 Купете надежден хостинг за сайтове с защита от DDoS, VPS VDS сървъри | ProHoster