Chciałbym podzielić się moimi doświadczeniami z ostatniego hackathonu, w którym uczestniczyłem, co takiego udało mi się stworzyć, jak to wyglądało okiem uczestnika. Podczas minionego weekendu miałem przyjemność uczestniczenia w Node Knockout 5 - edycja 2015!
Hackathon? czyli co?
W świecie developerów pojęcie znane wszystkim tym, którzy chcą czegoś więcej niż to, co codzienna praca nam zapewnia. Rozrywka polega na tym, że jest z góry narzucony czas - w tym przypadku 48h. W tym czasie trzeba stworzyć aplikację, która będzie się podobać nie tylko autorom.
Aplikacje stworzone podczas Node Knockout (NKO) będą oceniane w 4 kryteriach:
- UTILITY/FUN
- DESIGN
- INNOVATION
- COMPLETENESS
Zasady
W tym roku brało udział mnóstwo zespołów. Prawdopodobnie około 400. Całą przygodę ukończyło 82 zespoły. Przynajmniej tyle team-ów zgłosiło swoje aplikacje do testów.
Na stronie nodeknockout.com/entries jest lista aplikacji zgłoszonych do głosowania. Wśród nich jest także i moja aplikacja:
Każda aplikacja ma swój profil na witrynie NKO. Postarałem się opisać całą aplikację na stronie nodeknockout.com/teams/dumplings.
Jak się programuje podczas hackathonu?
Generalnie, w zawodach zawsze chodzi o to aby być pierwszym. Jeśli chodzi o hackathony, to czas również odgrywa ogromną rolę. Tutaj liczy się tylko pierwsze 48h projektu. Co się będzie działo po tym czasie już nie nikogo nie interesuje.
Ze względu na czas nie ma tutaj czasu na testy (jednostkowe, integracyjne), dokumentację, czy nawet na refaktoryzację. Jeśli jednak chodzi o ostatni punkt, to ja jestem tak bardzo przywiązany do czytelnego kodu, że nie potrafię pisać wszystkiego (całe aplikacji) w jednym pliku i nie dbać o zmienne. Doświadczyłem tego empirycznie podczas pierwszego NKO.
Development odbywa się zawsze na GitHubie. Cała historia jest dostępna na profilu projektu: github.com/nko5/dumplings.
Deployment aplikacji był możliwy dzięki jednego ze sponsorów. Firma Modulus udostępniła swoją usługę do uploadowania paczek aplikacji, oraz hostowania i serwowania plików statycznych. Bardzo proste zasady, prosta instalacja - same plusy!
Najgorsze chwile podczas hackathonu to takie, w których trzeba rozwiązać bug, a do końca pozostało niewiele.
Wtedy człowiek ma chwila zawahania, aby wszystko rzucić, ale z drugiej strony, szkoda.
Szkoda, tych kilkudziesięciu godzin pracy.
Jaką grę zrobiłem?
Załączam screen z gry:
Pitch video
Aby zgłoszenie aplikacji to głosowania było traktowane w pełni trzeba było nagrać tzw. pitch video. Trzeba było pokazać jak aplikacja działa i odpowiedzieć na 3 pytania:
- Who is it for?
- Why would people use it?
- How does it work?
O tym jak powinno wyglądać idealne video można przeczytać tutaj: blog.nodeknockout.com/post/35353987436/protip-create-a-perfect-pitch-video-this-year
INFO: Wideo nagrywałem o 2 w nocy, także proszę o wyrozumiałość.
Zakończenie hackathonu - co dalej?
Po zakończeniu 48-mio godzinnych zmagań z kodem, z łataniem bugów a przy tym rozwijaniu nowych funkcji, warto jeszcze stworzyć demo swojej aplikacji (jeśli autorzy uznają, że aplikacja jest gotowa to tego).
Na tak dużo liczbę aplikacji, zgłosiło się około 10 team-ów z całego świata, które chciało zaprezentować swoje aplikacje. Nie zważając na brak doświadczenia w wypowiadaniu się po angielsku zgłosiłem się na ochotnika.
Godzinę po zakończeniu zawodów, czyli na czas w Polsce to 2 w nocy organizatorzy stworzyli hangout, podczas ochotnicy opowiadali o swoich aplikacjach.
Całe wideo jest dostępne poniżej (moja część zaczyna się od 8:30).
Podsumowanie
Imprezę polecam wszystkim tym, którzy chcą sprostać wyzwaniu poddania swojego umysłu maksymalnemu zmęczeniu poprzez ciągłą, wytężoną pracę nad jednym projektem.
Nie był to mój pierwszy hackathon.
Brałem już 3 razy udział w NKO oraz jeden raz w Static Showdown.