Dlaczego warto brać udział w hackathonach

Dlaczego warto brać udział w hackathonach

Około półtora roku temu zacząłem brać udział w hackathonach. W tym czasie wziąłem udział w ponad 20 wydarzeniach o różnej skali i tematyce w Moskwie, Helsinkach, Berlinie, Monachium, Amsterdamie, Zurychu i Paryżu. We wszystkich wydarzeniach zajmowałem się analizą danych w różnej formie. Lubię odwiedzać nowe dla siebie miasta, nawiązywać nowe kontakty, wymyślać świeże pomysły, realizować stare koncepcje w krótkim czasie oraz odczuwać adrenalinę w trakcie prezentacji i ogłaszania wyników.

Ten post to pierwszy z trzech wpisów na temat hackathonów, w nim opowiem, czym są hackathony i dlaczego warto zacząć w nich uczestniczyć. Drugi post będzie dotyczył ciemnej strony tych wydarzeń — o tym, jak organizatorzy popełniali błędy podczas ich przeprowadzania i jakie miało to konsekwencje. Trzeci post będzie poświęcony odpowiedziom na pytania dotyczące tematyki związanej z hackathonami.

Czym jest hackathon?

Hackathon to wydarzenie, które odbywa się w ciągu kilku dni, mające na celu rozwiązanie określonego problemu. Zazwyczaj na hackathonie występuje kilka problemów, które przedstawione są w formie odrębnych ścieżek. Firma-sponsor dostarcza opis zadania, metryki sukcesu (metryki mogą być subiektywne, takie jak "nowatorskość i kreatywność", lub obiektywne — dokładność klasyfikacji na odłożonym zbiorze danych) oraz zasoby potrzebne do osiągnięcia sukcesu (API firmy, zbiory danych, „sprzęt”). Uczestnicy w wyznaczonym czasie muszą sformułować problem, zaproponować rozwiązanie i pokazać prototyp swojego produktu. Najlepsze rozwiązania otrzymują nagrody od firmy i możliwość dalszej współpracy.

Etapy hackathonu

Po ogłoszeniu zadań uczestnicy hackathonu łączą się w zespoły: każdy 'samotnik' dostaje mikrofon i opowiada o wybranym zadaniu, swoim doświadczeniu, pomyśle oraz specjalistach, jakich potrzebuje do realizacji. Czasami zespół może składać się z jednej osoby, która jest w stanie samodzielnie wykonać całą pracę nad projektem na dość wysokim poziomie. Ma to miejsce głównie na hackathonach związanych z analizą danych, ale często jest to zabronione lub niepożądane podczas wydarzeń produktowych — organizatorzy mają na celu dalsze kontynuowanie pracy nad projektem, ale już w firmie; utworzony zespół ma szereg przewag nad uczestnikami, którzy chcieli stworzyć produkt samodzielnie. Optymalny zespół zwykle składa się z 4 osób i obejmuje: frontend, backend, data scientist oraz osobę z biznesu. Jeśli chodzi o podział hackathonów datascience/produktowych, jest on dość prosty — jeśli istnieje zbiór danych z wyraźną metryką i rankingiem lub można wygrać z kodem w jupyter notebook — to jest to hackathon datascience; wszystko inne — gdzie trzeba stworzyć aplikację, stronę lub coś wciągającego — to hackathon produktowy.

Zwykle prace nad projektem rozpoczynają się o 21:00 w piątek, a termin ostateczny przypada na 10:00 w niedzielę. Część tego czasu należy przeznaczyć na sen (nie spanie i kodowanie to pewna droga do porażki, sprawdzałem), co oznacza, że uczestnicy nie mają zbyt wiele czasu, aby zrobić coś jakościowego. Aby pomóc uczestnikom, na miejscu obecni są przedstawiciele firmy i mentorzy.

Prace nad projektem rozpoczynają się od rozmowy z przedstawicielami firmy, ponieważ najlepiej znają specyfikę zadania, metryki i prawdopodobnie będą oceniać Twoje prace na końcu. Celem tej rozmowy jest zrozumienie, które kierunki są najbardziej aktualne oraz na czym warto skupić swoją uwagę i czas.

Na jednym hackatonie postawiono zadanie regresji na zbiorze danych z tabelami oraz obrazkami i wymiernym wskaźnikiem — RMSE. Po rozmowie z data scientistem firmy zrozumiałem, że potrzebują nie regresji, a klasyfikacji, ale po prostu ktoś z menedżmentu postanowił, że najlepiej rozwiązać to w ten sposób. Klasyfikacja nie jest im potrzebna, żeby uzyskać wzrost metryk finansowych, ale by zrozumieć, jakie parametry są najważniejsze przy podejmowaniu decyzji, a następnie przetwarzać je ręcznie. Tak więc początkowe zadanie (regresja z RMSE) zmienia się na klasyfikację; priorytet oceny przesuwa się z uzyskanej dokładności na możliwość wyjaśnienia wyniku. To z kolei eliminuje możliwość użycia metody stackingu i algorytmów typu black box. Taka rozmowa zaoszczędziła mi mnóstwo czasu i zwiększyła moje szanse na zwycięstwo.

Po zrozumieniu, co trzeba robić, rozpoczyna się bezpośrednia praca nad projektem. Musisz ustalić punkty kontrolne — czas, w którym należy wykonać wyznaczone zadania; równocześnie warto kontynuować komunikację z mentorami — przedstawicielami firmy i specjalistami technicznymi — co jest pomocne w korygowaniu ścieżki twojego projektu. Świeże spojrzenie na problem może zasugerować ciekawe rozwiązanie.

Ponieważ w hackatonach bierze udział wielu nowicjuszy, z perspektywy organizatorów dobrym tonem jest przeprowadzanie wykładów i warsztatów. Zazwyczaj jest trzy wykłady — jak przedstawić swój pomysł w formie produktu, wykład o tematyce technicznej (na przykład dotyczący zastosowania otwartych API w uczeniu maszynowym, aby nie trzeba było pisać swojego speech2text w dwa dni, a skorzystać z gotowego), wykład o pitchingu (jak przedstawić swój produkt, jak odpowiednio gestykulować na scenie, żeby słuchacze się nie nudzili). Organizowane są różne aktywności, aby ożywić uczestników — sesja jogi, piłkarzyki i tenis stołowy lub gra w konsoli.

W niedzielny poranek musisz przedstawić wyniki swojej pracy dla jury. W dobrych hackathonach wszystko zaczyna się od ekspertyzy technicznej — czy to, co twierdzisz, naprawdę działa? Celem tej weryfikacji jest odrzucenie zespołów z ładnymi prezentacjami i buzzwordami, ale bez produktu, od tych, którzy naprawdę coś stworzyli. Niestety, ekspertyza techniczna nie jest obecna na wszystkich hackathonach i zdarzają się przypadki, gdy zespół z 12 slajdami i nastawieniem „… blockchain, quantum computing, a tutaj AI to załatwi…” zdobywa pierwsze miejsce. Takie precedensy nie zdarzają się często, ale ponieważ są lepiej zapamiętywane, wielu myśli, że dobra prezentacja to 99% sukcesu w hackathonie. Prezentacja, nawiasem mówiąc, jest naprawdę ważna, ale jej wkład nie przekracza 30%.

Po wystąpieniu uczestników jury podejmuje decyzję o przyznaniu nagród. Na tym kończy się oficjalna część hackathonu.

Motywacja do uczestnictwa w hackathonach

Doświadczenie

Z perspektywy uzyskanego doświadczenia, hackathon to unikalne wydarzenie. W naturze jest niewiele miejsc, gdzie można zrealizować pomysł od zera w ciągu 2 dni i otrzymać natychmiastową informację zwrotną na temat swojej pracy. Podczas hackathonu rozwija się myślenie krytyczne, umiejętność pracy w zespole, zarządzanie czasem, umiejętność pracy w sytuacjach stresowych, umiejętność przedstawiania wyników swojej pracy w zrozumiały sposób, umiejętności prezentacyjne i wiele innych. Dlatego hackathony to doskonałe miejsce dla osób z teoretyczną wiedzą, które pragną zdobyć realne doświadczenie.

Nagrody

Zazwyczaj pula nagród hackathonu wynosi około 1,5k — 10k euro za pierwsze miejsce (w Rosji — 100-300 tys. rubli). Oczekiwaną korzyść (expected value, EV) z uczestnictwa można obliczyć według prostej formuły:

EV = Nagroda * Współczynnik Zwycięstw + Wartość Przyszła - Koszty

gdzie Nagroda — wysokość nagrody (dla uproszczenia przyjmijmy, że nagroda jest jedna);
Współczynnik Zwycięstw — prawdopodobieństwo wygranej (dla początkującego zespołu ta wartość będzie ograniczona do 10%, dla bardziej doświadczonego — 50% i więcej; spotkałem ludzi, którzy z każdego hackathonu wychodzili z nagrodą, ale to raczej wyjątek od reguły, a na dłuższą metę ich współczynnik zwycięstw będzie niższy niż 100%);
Wartość Przyszła — wielkość, która pokazuje przyszły zysk z uczestnictwa w hackathonie: może to być zysk z nabytych doświadczeń, nawiązywanych kontaktów, uzyskanej wiedzy itp. Tę wartość praktycznie niemożliwe jest dokładnie określić, ale trzeba o niej pamiętać;
Koszty — wydatki na transport, zakwaterowanie, inne.

Decyzja o uczestnictwie podejmowana jest na podstawie porównania EV hackathonu z EV aktywności, którą planowałeś zrealizować, gdyby hackathonu nie było: jeśli chciałeś spędzić weekend na kanapie i dłubać w nosie, to może warto wziąć udział w hackathonie; jeśli chcesz spędzić czas z rodzicami lub dziewczyną — weź ich do zespołu na hackathon (żartuję, decyduj sam), jeśli planujesz freelancing — porównuj dolar-godzinę.

Z moich obliczeń wynika, że w Rosji dla średniego data scientist na poziomie junior — mid, uczestnictwo w hackathonach jest porównywalne z zarobkiem z normalnego dnia pracy, ale są też niuanse (wielkość zespołu, typ hackathonu, fundusz nagród itp.). W ogólności, hackathony obecnie nie są złotym źródłem, ale mogą dać przyjemny dodatek do osobistego budżetu.

Rekrutacja w firmie i networking

Dla firmy hackathon to jeden ze sposobów na zatrudnienie nowych pracowników. Będzie ci znacznie łatwiej pokazać, że jesteś sensowną osobą i potrafisz pracować podczas hackathonu, niż na rozmowie kwalifikacyjnej, rysując drzewo binarne na tablicy (co zresztą nie zawsze odpowiada temu, co będziesz robić w rzeczywistej pracy data scientista, ale tradycji trzeba przestrzegać). Tego rodzaju sprawdzenie w „bojowych” warunkach może zastąpić dzień próbny.

Swoją pierwszą pracę zdobyłem dzięki hackathonowi. Na hackathonie pokazałem, że z danych można wycisnąć więcej pieniędzy, opowiedziałem jak zamierzam to zrobić. Rozpocząłem projekt na hackathonie, wygrałem go, a następnie kontynuowałem projekt już w firmie-sponsorze. To był czwarty hackathon w moim życiu.

Możliwość uzyskania unikalnego zestawu danych

To bardzo ważny punkt dla hackathonów związanych z data science, którego znaczenie nie jest powszechnie rozumiane. Zwykle sponsorujące firmy dostarczają prawdziwe zestawy danych podczas wydarzenia. Dane te są poufne, znajdują się pod NDA, co nie przeszkadza pokazać ci dowód koncepcji na prawdziwym zestawie danych, a nie na zabawkowym Titanicu. Takie wyniki mogą znacznie pomóc w zatrudnieniu w tej firmie lub firmie konkurencyjnej lub w uzasadnieniu podobnych projektów. Zgódź się, że mając zrealizowane projekty, które zostały pozytywnie ocenione, jest lepsze niż ich brak. W ogólności, takie zrealizowane projekty odgrywają podobną rolę jak medale i statusy na Kaggle, ale dla branży ich wartość jest bardziej oczywista.

Porady

Ogólnie rzecz biorąc, praca na hackathonie to dość zróżnicowane doświadczenie i trudno sformułować jakiś zbiór zasad. Jednak chciałbym podać kilka obserwacji, które mogą pomóc nowicjuszom:

  1. Nie bój się uczestniczyć w hackathonach, nawet jeśli nie masz doświadczenia ani zespołu. Pomyśl, w czym mógłbyś być pomocny. Może masz ciekawy pomysł lub dobrze znasz jakąś dziedzinę? Możesz wykorzystać swoją specjalistyczną wiedzę przy formułowaniu problemu i znaleźć nietypowe sposoby rozwiązania. A może najlepiej umiesz wyszukiwać w Google? Twoja umiejętność pozwoli zaoszczędzić sporo czasu, jeśli uda ci się znaleźć gotowe rozwiązania na GitHubie. A może świetnie znasz się na tuningowaniu parametrów lightgbm? W takim przypadku nie przychodź na hackathon, tylko udowodnij to w zawodach Kaggle.
  2. Taktyka jest ważniejsza niż manewry. Twoim zadaniem na hackathonie jest rozwiązanie problemu. Czasami, aby rozwiązać problem, trzeba go najpierw zidentyfikować. Sprawdzaj, czy twój zidentyfikowany problem jest rzeczywiście aktualny dla firmy. Oceń swoje rozwiązanie pod kątem odpowiedniości do problemu, zadaj sobie pytanie o optymalność swojego rozwiązania. Podczas oceny twojego rozwiązania, w pierwszej kolejności zwrócą uwagę na aktualność problemu i adekwatność zaproponowanego rozwiązania. Architektura twojej sieci neuronowej czy liczba uzyskanych rąk-licytacji niewiele kogo interesuje.
  3. Uczestnicz w jak największej liczbie hackathonów, ale nie krępuj się wychodzić z źle zorganizowanych wydarzeń.
  4. Dodawaj wyniki swojej pracy na hackathonie do swojego CV i nie obawiaj się o tym publicznie pisać.

Dlaczego warto brać udział w hackathonach
Celem hackathonów. Krótko

Źródło: habr.com

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster