QA: Hackathoane

QA: Hackathoane

Partea finală a trilogiei despre hackathoane. În prima parte am discutat despre motivația de a participa la astfel de evenimente. Partea a doua a fost dedicată greșelilor organizatorilor și rezultatelor acestora. Partea finală va răspunde la întrebările care nu au avut loc în primele două părți.

Spune-mi cum ai început să participi la hackathoane.
Studiam la master la Universitatea din Lappeenranta, participând în același timp la competiții de analiză a datelor. Ziua mea tipică arăta astfel: mă trezeam la 8, câteva ore de cursuri la universitate, apoi competiții și lecții până la miezul nopții (în timp ce așteptam să se evalueze, urmăream cursuri sau citeam articole). Acest program strict și-a dat roadele, iar eu am câștigat competiția de analiză a datelor MERC-2017 (despre care am scris chiar și un articol pe Habré). Victoria mi-a crescut încrederea în sine, iar când am dat peste informații despre hackathonul SkinHack 2 din Moscova, am decis să-mi vizitez părinții și, în același timp, să aflu ce este un hackathon.

Hackathonul în sine a fost destul de amuzant. Au fost două trasee pentru analiza datelor cu metrici clare și un set de date cu premii de 100k ruble. Al treilea traseu a fost dedicat dezvoltării de aplicații, cu un premiu de 50k, în care nu au fost participanți. La un moment dat, organizatorul a spus că o fereastră cu un buton fără funcționalitate poate câștiga 50k, deoarece premiul nu poate fi refuzat. Nu m-am apucat să învăț să programez aplicații (nu concurez acolo unde pot fi ușor "întors"), dar pentru mine a fost un mesaj clar că locurile în hackathoane nu sunt ocupate.

Atunci am abordat ambele trasee de analiză a datelor singur. Am descoperit o lacună în date care permitea obținerea unui scor perfect, dar coloana cu lacuna nu era în datele de test pe care le-am primit cu două ore înainte de finalul evenimentului (de fapt, atunci înțelegeam că prezența unei coloane "target" în setul de antrenament nu este considerată o lacună). În același timp, s-a deschis leaderboard-ul, iar trimisul meu fără lacună ocupa locul trei din cinci, cu o mare diferență până la primul, așa că am decis să nu mai pierd timpul și am plecat.

După ce am analizat calm ce s-a întâmplat, am găsit o mulțime de greșeli (una dintre obiceiurile mele este să revizuiesc mental ce s-a întâmplat, să notez greșelile, cauzele lor și ce aș fi putut schimba - un moștenire plăcută din jocul semi-profesionist de poker). Dar un lucru era clar - în hackathoane există mult value, și sunt obligat să-l valorific. După acest eveniment, am început să monitorizez evenimente și grupuri, iar hackathonul următor nu s-a lăsat așteptat. Apoi încă unul și încă unul…

De ce te ocupi cu hackathoanele, nu cu Kaggle?
În prezent nu-mi place Kaggle. De la un anumit nivel de skill, fără motive specifice de participare, Kaggle devine mai puțin util decât alte activități. Am participat mult în trecut, se pare că am reușit cumva să „mă dezlipesc”.

De ce hackathoane, nu lucrezi la proiectul tău?
Îmi place ideea de a crea ceva grozav cu propriile mâini într-un ritm mai lent. Băieții de la ODS au organizat proiecte de petrecere ODS pentru toți cei care vor să lucreze la proiectul lor în weekend, alături de oameni cu aceleași idei. Cred că în curând mă voi alătura lor.

Cum găsești evenimentele?
Principala mea sursă este hackathon.com (global) și un grup pe Telegram Hackeri Ruși (Rusia). În plus, anunțurile evenimentelor apar în reclame pe rețelele sociale și pe LinkedIn. Dacă nu ai găsit nimic, poți verifica aici: mlh.io, devpost.com, hackevents.co, hackalist.org, HackathonsNear.me, hackathon.io.

Îți pregătești un plan de soluție înainte de participare sau totul se desfășoară pe moment? De exemplu, cu o săptămână înainte de hackathon, te gândești: „Va fi nevoie de un specialist de acest gen, trebuie să caut”?
Dacă hackathonul este pe produs - da, mă pregătesc. Cu câteva săptămâni înainte, vin cu idei despre ce voi face, îmi fac o idee despre cine ar putea fi util, îmi formez o echipă din prieteni sau participanți ai hackathoanelor anterioare.

Este posibil să hack-uiești un hackathon singur? Ce să faci dacă nu ai o echipă?
Hackathon-urile de data science sunt reale (eu sunt o dovadă vie), cele de produs — nu am văzut, deși cred că există. Din păcate, uneori organizatorii impun o limită minimă de participanți în echipă. Cred că acest lucru se datorează faptului că nu toți „solitari” ajung în finală (adică pur și simplu renunță la primele dificultăți), participarea într-o echipă totuși ajută la menținerea angajamentului. De asemenea, după eveniment, se presupune că veți continua lucrul la proiect. Cu o echipă va fi mai ușor să aduci proiectul la bun sfârșit.

În general, îți recomand să participi întotdeauna cu o echipă. Dacă nu ai echipa ta, organizatorii te vor ajuta întotdeauna să găsești sau să creezi una.

Cum reușești să faci față oboselii în timpul hackathon-ului?
La hackathon se oferă 2 zile pentru muncă, adică 48 de ore (30-48 de ore, să luăm 48 pentru simplificare). Eliminăm timpul pentru somn (16-20 de ore), rămân nu mai mult de 30. Dintre acestea, realmente pentru muncă productivă vor fi vreo 8 ore (în medie). Dacă organizezi corect munca (somn, nutriție, ieșiri la aer curat, exerciții, momente de conștientizare, comunicare corectă cu echipa și schimbări de activitate), atunci orele de muncă profundă pot ajunge până la 12-14. După o astfel de muncă te vei simți epuizat, dar va fi o oboseală plăcută. A scrie cod fără somn și pauze, între bidoane de energizante — este o cale spre eșec.

Ai propriile tale pipeline-uri gata pentru hackathoane? Cum au apărut acestea, cum sunt structurate (fișiere .py aranjate în foldere, fiecare pentru sarcina sa etc.) și cum poți începe să creezi tu însuți astfel de pipeline-uri?
Nu folosesc soluții complet gata din hackathoanele anterioare în cele noi, dar am un fel de grădină zoologică de modele și pipeline-uri din competițiile trecute. Nu trebuie să rescriu fragmente standard de la zero (de exemplu, codificare corectă a țintei sau o rețea simplă pentru extragerea intenției din text), ceea ce îmi economisește mult timp.

În prezent arată astfel: pentru fiecare competiție sau hackathon există un repo pe GitHub, unde sunt stocate notebook-uri, scripturi și o mică documentație despre ce se întâmplă. Plus, există un repo separat pentru diverse „trucuri” (cum ar fi codificarea corectă a țintelor cu validare încrucișată). Nu cred că este cea mai elegantă soluție, dar până acum mă mulțumește.

Aș începe prin a-mi salva tot codul în foldere și a scrie o documentație scurtă (de ce, ce, cum am făcut și rezultatul).

Este posibil să pregătești un MVP de la zero într-un timp atât de scurt sau toți participanții vin cu soluții gata pregătite?
Pot spune doar despre proiectele legate de data science — da, este posibil. MVP-ul pentru mine este o combinație de două factori:

  • O idee viabilă prezentată ca un produs (adică un business canvas bine definit). Trebuie să avem mereu o înțelegere clară a motivului și pentru cine facem produsul. Uneori, proiectele cu un plan bine fundamentat, dar fără un prototip, câștigă premii, și nu e nimic surprinzător în asta. Din păcate, mulți participanți nu pot să se abstreze de amărăciunea eșecului și își atribuie problemele neprevăzutului organizatorilor, continuând să dezvolte modele fără să știe pentru cine, la următoarele hackathoane.
  • Un indicator că poți realiza acest produs (aplicație, cod, descriere a pipeline-urilor).

Se întâmplă ca la hackathon să vină o echipă cu o soluție gata pregătită și să încerce să o "potrivească" cerințelor organizatorilor. Astfel de echipe sunt eliminate în timpul screening-ului tehnic sau se "consideră" doar partea pe care au realizat-o pe platformă. Nu am văzut astfel de echipe printre câștigători, dar cred că totuși le este benefic să participe din cauza viitoarelor oportunități (contacte, seturi de date și altele).

Există exemple de transformare a proiectelor realizate la hackathoane în producție/startup?
Da. Am avut trei cazuri în care am dus proiectele la producție. O dată am făcut-o singur, iar de două ori — cu ajutorul altora, pe baza ideilor și codului pe care l-am scris la hackathon. Mai știu câteva echipe care au continuat colaborarea cu o companie ca consultanți. Nu știu rezultatele finale, dar cel mai probabil ceva s-a realizat până la capăt. Eu nu am organizat startup-uri și nu știu de cineva care a făcut, deși sunt sigur că exemple există.

După ce ai participat la multe hackathoane, ce sfaturi ți-ai da ție însuți dacă ai putea să te întorci în timp?

  1. Tactica este mai importantă decât manevrele. Imaginează-ți fiecare decizie ca pe un produs gata. O idee, un jurnal Jupyter, un algoritm nu valorează nimic dacă nu este clar cine va plăti pentru asta.
  2. Înainte de a proiecta orice, răspunde la întrebările „ce?” și „de ce?” și „cum?”. De exemplu: atunci când proiectezi o soluție ML, gândește-te mai întâi la algoritmul ideal: ce primește ca intrare, cum sunt folosite predicțiile sale în continuare?
  3. Participă în echipă.

Ce se mănâncă de obicei la hackathoane?
De obicei, la hackathoane mâncarea este de proastă calitate: pizza, energizante, băuturi carbogazoase. Aproape întotdeauna mâncarea este organizată sub formă de bufet (sau masă de servire) la care se formează o uriașă coadă. Noaptea de obicei nu se servește nimic, deși a existat un caz la o competiție din Paris unde au lăsat ceva de mâncare pe timpul nopții — chipsuri, gogoși și cola. Îmi închipui procesul mintal al organizatorilor: „Bine, ce mănâncă programatorii? Ah, bine! Chipsuri, gogoși — asta e tot. Să le dăm această prostie.” A doua zi l-am întrebat pe organizatori: „Hă, nu se poate face ceva diferit noaptea? Poate o fiertură, de exemplu?” După asta, m-au privit ca pe un idioten. Celebrul ospitalitate franceză.

La hackathoanele de calitate, mâncarea este comandată în cutii, există opțiuni pentru alimentație obișnuită, vegetariană și kosher. În plus, se pune un frigider cu iaurturi, muesli — pentru cei care doresc o gustare. Ceai, cafea, apă — sunt standarde. Mi-a rămas în minte hackathonul Hack Moscow 2 — acolo ne-au hrănit cu borș și chiftele cu piure în cantina biroului 1C.

Raționalitatea hackathoanelor depinde, să spunem, de domeniul profesional al organizatorilor (de exemplu, cele mai bune hackathoane sunt organizate de consultanți)?
Cele mai bune hackathoane au fost organizate de persoane care fie au mai organizat hackathoane înainte, fie au participat anterior. Posibil, acesta este singurul factor care influențează calitatea evenimentului.

Cum îți dai seama că nu ești novice și că e timpul să participi la un hackathon?
Cel mai bun moment pentru a merge la un hackathon a fost acum un an. Al doilea cel mai bun moment este acum. Așa că nu te teme, greșește, învață — este normal. Chiar și rețeaua neuronală — cea mai mare invenție a omenirii după roată și boostingul pe gradient al arborilor — nu poate distinge o pisică de un câine în prima eră de învățare.

Ce „steaguri roșii” indică imediat că evenimentul nu va fi prea bun și că nu trebuie să îți pierzi timpul?

  • O descriere clară despre ce trebuie făcut (relevantă pentru hackathoanele de produse). Dacă la înregistrare ți se va cere o sarcină clară, mai bine rămâi acasă. Din câte îmi amintesc, nu a existat niciun hackathon bun cu un briefing. Spre comparație: Bine — fă-ne ceva legat de analiza conversațiilor audio. Rău — fă-ne o aplicație capabilă să despartă conversația în două piste audio separate pentru fiecare persoană.
  • Fond de premii mic. Dacă ți se cere să faci „tinder pentru un magazin online cu AI” și premiul pentru locul întâi este de 500 de euro cu un număr minim de 5 persoane în echipă — probabil nu merită să îți pierzi timpul (da, acesta este un hackathon real care a avut loc în München).
  • Lipsa datelor (relevantă pentru hackathoanele de știință a datelor). Organizatorii oferă de obicei informații de bază despre eveniment și uneori un exemplu de set de date. Dacă nu au oferit — întreabă, nu îți va lua nimic. Dacă în 2-3 zile nu e clar ce date vor fi furnizate și dacă vor fi în general — acesta este un semnal de alarmă.
  • Organizatori noi. Nu te lenevi și caută informații despre organizatorii hackathonului. Dacă ei organizează un eveniment de acest fel pentru prima dată — există o mare probabilitate să meargă ceva prost. Pe de altă parte, dacă organizatorul și membri juriului au organizat hackathoane în trecut sau au participat activ înainte — acesta este un semn bun.

La un hackathon mi s-a spus: „Ai avut cea mai bună soluție pe punctaj, dar ne pare rău, noi evaluăm munca în echipă, iar tu ai lucrat singur. Ei bine, dacă ai fi luat un student sau o fată în echipă…”? Ai întâlnit vreo nedreptate asemănătoare? Cum ai gestionat?
Da, am întâlnit și nu o dată. Privesc totul cu stoicism: am făcut tot ce a fost în puterea mea, dacă nu a ieșit — așa trebuie să fie.

De ce te ocupi de toate acestea?
Totul este pur și simplu din plictiseală.

Sursa: habr.com

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster