QA: Hakatoni

QA: Hakatoni

Zaključni del trilogije o hackathonih. V prvega dela sem govoril o motivaciji za sodelovanje na takih dogodkih. Drugi dio posvečen napakam organizatorjev in njihovim posledicam. Zaključni del bo odgovoril na vprašanja, ki niso bila zajeta v prvih dveh delih.

Povej, kako si začel sodelovati na hackathonih.
Študiral sem na magistrskem študiju na Univerzi Lappeenranta in hkrati reševal tekmovanja v analizi podatkov. Moj tipičen dan je izgledal takole: zbudim se ob 8., nekaj predavanj na univerzi, nato tekmovanja in tečaji do polnoči (medtem ko čakate na oddajo, gledam predavanja ali berem članke). Ta strogi urnik je obrodil sadove in zmagal sem na tekmovanju v analizi podatkov MERC-2017 (o čemer je bil celo) prizor na Habré.). Zmaga mi je dala samozavest, in ko sem nenamerno naletel na informacije o hackathonu SkinHack 2 v Moskvi, sem se odločil obiskati starše in ob enem izvedeti, kaj sploh je hackathon.

Sam hackathon je bil kar zabaven. Bilo je dva sklopa o analizi podatkov z jasnimi merili in podatkovnim naborom s priznanji po 100 tisoč rubljev. Tretji sklop je bil o razvoju aplikacij s priznanjem 50 tisoč, in v njem ni bilo udeležencev. V enem trenutku je organizator dejal, da lahko okenče s gumbom brez funkcionalnosti osvoji 50 tisoč, ker nagrada ne sme ostati neizplačana. Nisem želel študirati programiranja aplikacij (ne tekmujem tam, kjer me lahko zlahka „prevrnejo“), a to je bil zame jasen signal, da niso vsi prostori v hackathonih zasedeni.

Takrat sem reševal oba sklopa o analizi podatkov sam. Našel sem luknjo v podatkih, ki je omogočila dosego popolne ocene, a stolpec z luknjo ni bil v testnih podatkih, ki sem jih prejel dve uri pred koncem dogodka (mimogrede, takrat sem razumel, da prisotnost stolpca “target” v treningu ne šteje kot luknja). Hkrati se je odprla lestvica, moj oddan prispevek brez luknje je zasedal tretje mesto od petih, do prvega je bila velika razlika in odločil sem se, da ne bom izgubljal časa in odšel.

Potem ko sem na svež način analiziral, kar se je zgodilo, sem našel kup napak (ena izmed mojih navad je, da mentalno predelam, kar se je zgodilo, s pomočjo beležnice in analiziram napake, njihove vzroke in kaj bi lahko spremenil — takšno prijetno zapuščino polprofessionalnega igranja pokra). Toda eno je bilo zagotovo jasno — v hackathonih je veliko vrednosti, in to moram izkoristiti. Po tem dogodku sem začel spremljati prireditve in skupine, naslednji hackathon ni dolgo čakal. Potem še en, in še en…

Zakaj se ukvarjaš z hackathoni in ne s Kaglom?
Trenutno mi Kagl ni všeč. Z določenega nivoja spretnosti, brez specifičnih razlogov za sodelovanje, Kagl postane manj koristen kot druge aktivnosti. Veliko sem sodeloval prej, očitno sem uspel nekako 'slezti'.

Zakaj hackathoni in ne delo na svojem projektu?
Zanima me ideja narediti nekaj kul s svojimi rokami v počasnejšem tempu. Fantje iz ODS so organizirali ODS pet projekti za vse, ki si želijo ob vikendih delati na svojem projektu v družbi podobno mislečih. Mislim, da se jim bom kmalu pridružil.

Kako najdeš prireditve?
Glavni vir je hackathon.com (svet) in skupina na Telegramu Russian Hackers (Rusija). Poleg tega se napovedi dogodkov pojavljajo v oglasih na družbenih omrežjih in na LinkedInu. Če nič ne najdeš, lahko pogledaš tukaj: mlh.io, devpost.com, hackevents.co, hackalist.org, HackathonsNear.me, hackathon.io.

Ali pripravljaš načrt rešitve pred udeležbo ali se vse odvija sproti? Na primer, teden dni pred hackathonom oceniš: 'Tukaj bom potreboval takega in takega strokovnjaka, potrebno bo poiskati'?
Če je hackathon produktni — ja, se pripravljam. Nekaj tednov prej si izmislim, kaj bom počel, ocenim, kdo bi lahko bil koristen, in zberem ekipo iz prijateljev ali udeležencev prejšnjih hackathonov.

Ali je možno hackniti hackathon sam? Kaj storiti, če nimaš ekipe?
Hackatoni za obrad podatka su stvarni (ja sam živ dokaz), a za proizvode — nisam ih video, iako mislim da su mogući. Nažalost, ponekad organizatori postavljaju ograničenja na minimalni broj učesnika u timu. Mislim da je to zbog toga što ne dolaze svi 'usamljeni igrači' do finala (tj. odustaju na prvim preprekama), dok timska participacija pomaže da se to ublaži. Takođe, očekuje se da nakon događaja nastavite rad na projektu. Sa timom će biti lakše dotaći projekt do savršenstva.

Uopšteno, preporučujem uvek učestvovati sa timom. Ako nemate svoj tim, organizatori će vam uvek pomoći da ga pronađete ili formirate.

Kako se nositi sa umorom tokom hackatona?
Na hackatonu imate 2 dana za rad, što je 48 sati (uzmemo 30-48, radi jednostavnosti računanja, 48). Oduzmemo vreme za san (16-20 sati), ostaje ne više od 30. Od toga, realno, samo oko 8 sati će biti za produktivan rad (u proseku). Ako pravilno organizujete rad (spavanje, ishrana, izlazak na svež vazduh, vežbe, trenutci svesnosti, pravilan razgovor sa timom i promena aktivnosti), časove dubokog rada možete povećati na 12-14. Nakon takvog rada osetićete se iscrpljeno, ali biće to prijatan umor. Programirati bez sna i pauza uz energetska pića — put ka neuspehu.

Da li imate svoje spremne pipelajne za hackatone? Kako su se one pojavile, kako su organizovane (da li su .py fajlovi u folderima, svaki za svoj zadatak itd.) i kako početi praviti slične?
Ne koristim potpuno gotova rešenja prošlih hackatona za nove, ali imam svoj zoološki vrt modela i pipelajna iz prošlih takmičenja. Ne moram da prepisujem standardne delove od nule (na primer, pravilno kodiranje ciljeva ili jednostavnu mrežu za prepoznavanje namere iz teksta), što mi štedite puno vremena.

Trenutno to izgleda ovako: za svako takmičenje ili hackaton postoji svoj repozitorijum na Gitu, gde se čuvaju sveske, skripte i kratka dokumentacija o tome šta se dešava. Pored toga, postoji poseban repozitorijum za razne 'najrže' (poput pravilnog kodiranja ciljeva sa unakrsnom validacijom). Ne mislim da je to najelgantsnije rešenje, ali zasad mi odgovara.

Začel bi z organizacijo vse svoje kode v mape in pisanjem kratke dokumentacije (zakaj, kaj, kako sem delal in rezultat).

Je res mogoče v tako kratkem času pripraviti MVP iz nič, ali vsi udeleženci prinašajo pripravljene rešitve?
Lahko govorim le o projektih, povezanih z data science — ja, možno je. Za mene je MVP kombinacija dveh dejavnikov:

  • Življenjska ideja predstavljena kot izdelek (tj. opisana business canvas). Vedno mora obstajati jasno razumevanje, zakaj in za koga ustvarjamo izdelek. Včasih projekti z dobro utemeljenim konceptom, a brez prototipa, zmagajo nagrade, kar ni presenetljivo. Na žalost se mnogi udeleženci ne morejo distancirati od grenkobe poraza in svoje neuspehe pripisujejo nevednosti organizatorjev, medtem ko nadaljujejo z razvojem modelov, ki niso jasni komu, na naslednjih hackathonih.
  • Nekakšen pokazatelj, da lahko ta izdelek naredite (aplikacija, koda, opis pipeline-ov).

Obstajajo primeri, ko na hackathon pride ekipa s pripravljeno rešitvijo in jo poskuša 'prilagoditi' nalogi organizatorjev. Takšne ekipe se izločijo med tehnično selekcijo ali se 'upšteje' le tisti del, ki so ga naredili na dogodku. Nisem videl takih ekip med zmagovalci, vendar mislim, da je zanje še vedno smiselno hoditi zaradi prihodnje vrednosti (kontaktov, podatkovnih nizov in podobno).

Ali obstajajo primeri, ko so izdelki, ustvarjeni na hackathonih, pripeljali do produkcije/startupa?
Da. Imel sem tri primere, ko smo jih pripeljali do produkcije. Enkrat sam, dvakrat — s tujimi rokami na osnovi mojih idej in kode, ki sem jo napisal na hackathonu. Poznam še nekaj ekip, ki so nadaljevale sodelovanje s podjetjem kot svetovalci. Končnih rezultatov ne poznam, vendar je verjetno, da je bilo nekaj narejenega do konca. Sam startupov nisem organiziral in ne vem, da bi kdo to naredil, čeprav sem prepričan, da so takšni primeri.

Po udeležbi na mnogih hackathonih, kakšne nasvete bi dal sebi, če bi se lahko vrnil nazaj?

  1. Taktika je pomembnejša od manevrov. Vsako odločitev predstavi kot končni produkt. Ideja, Jupyter notebook, algoritem nič ne stanejo, če ni jasno, kdo bo za to plačal.
  2. Preden začneš načrtovati karkoli, si postavi vprašanje ne 'kaj?', ampak 'zakaj?' in 'kako?'. Na primer: pri načrtovanju kakšnega ML rešitve najprej razmisli o idealnem algoritmu: kaj prejme na vhodu, kako se njegovi napovedi uporabijo naprej?
  3. Pridruži se ekipi.

Kaj ponavadi strežejo na hackathonih?
Običajno na hackathonih strežejo slabo: pico, energijske pijače, gazirane pijače. Skoraj vedno je hrana organizirana v obliki švedskega mize (ali razdeljevalnega pulta), pred katerim se oblikuje dolga vrsta. Ponoči običajno ne strežejo hrane, čeprav je bil en primer na enem tekmovanju v Parizu, kjer so ponoči pustili prigrizke — čips, krofe in kolu. Predstavljam si miselni proces organizatorjev: 'Kaj jedo programerji? Ah, seveda! Čips, krofi — to pa bo dovolj. Dajmo jim to.' Naslednji dan sem vprašal organizatorje: 'Fantje, ali ne bi mogli ponoči pripraviti kaj drugega? Na primer, kašo?' Počutili so se, kot da sem nor. Znano francosko gostoljubje.

Na dobrih hackathonih naročijo hrano v škatlah, obstaja razdelitev na običajno, vegetarijansko in košer prehrano. Poleg tega postavijo hladilnik z jogurti in musliji — za tiste, ki želijo prigrizniti. Čaj, kava, voda — to je standard. Zapomnila sem si hackathon Hack Moscow 2 — tam so nas prijazno nahranili z borščem in mesnimi kroglicami s pire krompirjem v jedilnici pisarne 1C.

Razumljivost hackathonov je, recimo, odvisna od poklicne sfere organizatorjev (na primer, najboljši hackathoni organizirajo svetovalci)?
Najboljši hackathoni so bili organizirani s strani organizatorjev, ki so ali že prej organizirali hackathone ali so pred tem sodelovali. Mislim, da je to edini dejavnik, od katerega je odvisna kakovost dogodka.

Kako vedeti, da nisi začetnik in je čas za hackathon?
Najboljši čas za udeležbo na hackathonu je bil pred letom dni. Drugi najboljši čas je zdaj. Tako da pogumno, delaj napake, uči se — to je v redu. Tudi nevronska mreža — največje človeško izum po kolesu in gradientnemu boostingu nad drevesi — ne more razlikovati mačke od psa v prvi epohalni učni dobi.

Kateri 'rdeči zastavi' takoj kažejo, da bo dogodek slabe kakovosti in da ni smiselno izgubljati časa?

  • Jasno opisani koraki, ki jih je potrebno narediti (relevantno za produktne hackathone). Če boste ob registraciji dobili jasno nalogo, je morda bolje ostati doma. Po mojem spominu ni bilo nobenega dobrega hackathona z jasno definiranimi nalogami. Za primer: Dobro — naredite nekaj, kar je povezano z analizo avdio pogovorov. Slabo — naredite aplikacijo, ki bi znala ločiti pogovor na dve ločeni avdio stezici za vsakega človeka.
  • Majhen nagradni sklad. Če vas prosijo, da naredite "tinder za spletno trgovino z umetno inteligenco" in je nagrada za prvo mesto 500 evrov ter minimalna velikost ekipe 5 oseb — potem verjetno ne velja trošiti časa (da, to je pravi hackathon, ki se je odvijal v Münchnu).
  • Pomanjkanje podatkov (relevantno za hackathone na področju podatkovnih znanosti). Organizatorji običajno zagotovijo osnovne informacije o dogodku in včasih vzorec nabora podatkov. Če ga ne posredujejo — vprašajte, nič ne izgubite. Če za 2-3 dni ni jasno, kateri podatki bodo na voljo in ali bodo sploh — to je rdeča zastava.
  • Novi organizatorji. Ne bodite leni in poiščite informacije o organizatorjih hackathona. Če organizirajo tak dogodek prvič — je velika verjetnost, da ne bo šlo vse po načrtu. Po drugi strani, če so organizatorji in člani žirije že organizirali hackathone ali preteklosti aktivno sodelovali — to je zelena zastava.

Na enem hackathonu so mi rekli: „Imel si najboljšo rešitev glede ocene, ampak oprosti, pri nas se ocenjuje delo v ekipi in ti si delal sam. Če bi vzel študenta ali punco v ekipo…?“ Si se kdaj soočil s to nepravičnostjo? Kako si se spopadel s tem?
Ja, seveda, večkrat. Do vsega, kar se dogaja, sem stoicistično usmerjen: naredil sem vse, kar sem mogel, če ni uspelo — pač tako mora biti.

Zakaj se ukvarjaš s tem vsem?
Vse to počnem iz dolgčasa.

Izvor: habr.com

Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki 🔥 Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki | ProHoster