W tym artykule napiszę o hackathonach, czym one są, dlaczego warto brać w nich udział oraz o tym, co takie wydarzenia wnoszą do pracy programistów, programistek zarówno młodszych jak i tych doświadczonych. Nie będzie, to tylko sucha teoria, ale opis z perspektywy uczestnika hackathonów – z mojej perspektywy – w roli programisty jak również mentora. Niezależnie, w której byłem roli, za każdym razem najważniejsze były dla mnie relacje, które tworzyłem z uczestnikami hackathonu. Samo wydarzenie, to tylko sposobność do tego, aby aktywować swój potencjał jak i również innych uczestników.
Wikipedia dość dobrze opisuje hackathon, zacytuję dwa opisy moim zdaniem najtrafniej wyjaśniają to słowo, resztę można doczytać na https://pl.wikipedia.org/wiki/Hackathon:
- Słowo „hackathon” powstało z połączenia dwóch angielskich słów hack i marathon, oznaczających odpowiednio hakowanie i maraton.
- Hackathon (czasem maraton projektowania lub hackaton) – wydarzenie skierowane do programistów, podczas którego informatycy i inne osoby związane z rozwojem oprogramowania, takie jak projektanci grafiki, twórcy interfejsów i menedżerowie projektów, stają przed zadaniem rozwiązania określonego problemu związanego z projektowaniem. Hackathony odbywają się w krótkim czasie, zazwyczaj na przestrzeni dnia lub weekendu. Zadanie do wykonania ogłaszane jest w dniu rozpoczęcia konkursu.
Kto może wziąć udział w hackathon’ie?
Zacytuję odpowiedź HackYeah na to pytanie:
HackYeah is open to everyone. Really.
• You don’t know anything about programming? Come on in!
• Are you a student? Join us!
• Are you an undergraduate? We’ll be glad to meet you.
• If you are a specialist in your branch — you have to be here.
• No matter if you’re an entry-level, a junior, mid, senior or an IT star. We invite all of you!
Mając na uwadze powyższą odpowiedź, należy pamiętać, że podczas hackathonu nie tworzymy kompletnego w stu procentach, działającego projektu, ale tzw. PoC – Proof Of Concept, czyli wersję demonstracyjną, dowodzącą możliwość realizacji danego zadania i pokazującą działanie dostępnych funkcji w minimalnej wersji.
Jak przygotować się do hackathonu?
Patrząc z perspektywy programisty, programistki, należałoby znać chociaż podstawy jednego języka programowania, resztę można “douczyć się” w trakcie. Moim zdaniem niezbędna jest znajomość git – rozproszony system kontroli wersji; śledzenie zmian w kodzie źródłowym. Warto mieć swoje ulubione IDE (Integrated Development Environment), które będzie wspierać nas podczas tworzenia projektu. Moim ulubionym IDE jest IntelliJ IDEA dla języka Java, ale to narzędzie można wykorzystywać dla wielu języków programowania np.: C/C++, Python, PHP – pełna lista wspieranych języków. Przed samym hackathonem można poćwiczyć tworzenie projektów tzw. CRUD, dla języka Java pisałem o nich w Pierwsza klasa jako serwis CRUD – kod Java, IntelliJ, krok po kroku. Należy zabrać ze sobą dużą dozę kreatywności oraz być elastycznym i dynamicznie reagować na zmiany w projekcie – moje ulubione powiedzenie: “jedyną stałą w kodzie jest zmiana”.
W kwestii praktyczno-organizacyjnej, to warto zabrać ze sobą śpiwór i matę oraz kabel sieciowy i switch. Po mimo, że wymienione elementy mogą być dostępne u organizatorów, to czasem ich ilość może być po prostu ograniczona.
Jakie korzyści płyną z udziału w hackathonie?
Moim zdaniem największą korzyścią, jaka płynie z udziały w hackathonie jest nawiązanie nowych kontaktów z osobami, które podzielają wspólną pasję do kodowania, wytwarzania oprogramowania. Podczas wspólnego kodowania można uczyć się nowych rzeczy i/lub doskonalić własny warsztat programistyczny. Łącząc wiedzę i umiejętności osób z różnych obszarów możemy uczestniczyć w całym procesie tworzenia produktu od pomysłu, przez ustalanie wymagań, analizę i projekt, a kończąc na testowaniu i wdrażaniu, oczywiście nie zapominając o implementacji. W projektach IT, w pracy rzadko kiedy możemy uczestniczyć w ustalaniu wymagań, czyli funkcji dostępnych w aplikacji, w większości przypadków takie wymagania po prostu są już z góry ustalone, a programiści implementują je pisząc kod źródłowy.
Najbliższe hackathony
Nie będę podawał listy, która z biegiem czasu będzie się dezaktualizowała, ale za, to pokażę w jaki sposób ja wyszukuję zbliżające się hackathon’y:
- https://www.linkedin.com/search/results/events/?keywords=hackathon
- https://www.meetup.com/pl-PL/find/?keywords=hackathon
- https://www.facebook.com/search/top?q=hackathon
Hackathony są dostępne dla różnych kategorii oraz branż. Przykładowe kategorie, to, np.: ochrona środowiska, cyberbezpieczeństwo, moda, IoT (Internet of Things; internet rzeczy). Branże, z którymi się spotkałem, to, np.: telekomunikacja, medycyna, edukacja.
Dla powyższych informacji dobrym uzupełnieniem mogą być wypowiedzi użytkowników z Quora.com, odpowiadające na pytanie Is there a good resource that lists all upcoming hackathons in Europe?.
Poniżej opiszę moje doświadczenia związane z uczestnictwem w hackathonach jako Java Developer, jak również mentor wspierający uczestników wydarzenia.
Udział w hackathonie jako programista Java
Tak, jak wspomniałem na wstępie, brałem udział w hackathonie jako programista Java, było, to w 2019 roku – mój pierwszy hackathon. Nie wiedząc czego się spodziewać wybrałem się na miejsce wydarzenia. Pierwsze na, co zwróciłem uwagę, to tłumy ludzi z własnymi komputerami stacjonarnymi, śpiworami i matami?! Ja wybrałem się z laptopem i kubkiem kawy. Nie miałem zespołu i nie wiedziałem w jakim projekcie będę brał udział. To nie było problemem, dołączyłem na serwer Discord (komunikator internetowy – VoIP and instant messaging social platform) udostępniony przez organizatora hackathonu. Tam znalazłem grupę, na której inne osoby również szukały projektów do realizacji oraz członków zespołu. Dołączyłem do nowo utworzonego zespołu.
Co dał mi udział w hackathonie jako programista Java?
Zobaczyłem jaka wielka moc i potencjał tkwią w ludziach, którzy z własnej woli mierzą się z nieznanym zagadnieniem – zadanie do realizacji ogłoszone w dniu hackathonu – wkładając w to cała swoją wiedzę, umiejętności i doświadczenie. Poznałem wiele ciekawych osób, które są otwarte na nowe wyzwania i nie zamykają się na jeden język programowania, jedną technologię. Oba, powyższe elementy dały mi zastrzyk energii, której brakowało mi ze względu na moje obawy przed udziałem w pierwszym hackathonie. Od strony praktycznej, upewniłem się, że niezbędna jest znajomość git – rozproszony system kontroli wersji; śledzenie zmian w kodzie źródłowym. Na hackathon mogą wybrać się osoby na różnym poziomie zaawansowania od entry-level do senior. Najważniejsze, upewniłem się w przekonaniu, że “[…] 30 procent czasu, to samo kodowanie, a 70 procent czasu, to komunikacja z innymi osobami w zespole i próba zrozumienia tego, co musimy przedstawić w postaci kodu języka […]“. Znajomość języka angielskiego nie jest niezbędna, ale ułatwia komunikację.
Udział w hackathonie jako mentor – HackYeah
W 2022 roku zostałem zaproszony przez HackYeah do udział w hackathonie jako mentor, HackYeah zorganizowało największy stacjonarny hackathon w Europie. Z mojej strony zaprosiłem na to wydarzenie trzech moich uczniów Bartka, Piotrka i Krzyśka, którzy zmieniają obecny zawód na Junior Java Developer. Pozostałe osoby dołączyły w trakcie hackathonu, szukając zespołu, tak, jak ja w 2019 roku. Do moich uczniów dołączył Bartek i Daniel odpowiedzialni za front-end (ReactJS) i “analityczki biznesowe”, Adriana i Zuzanna. Wspólnie stworzyli projekt, połączyli back-end z front-end – wybrali zadanie z kategorii “Less Waste” od Orange. Moja rola jako mentora na HackYeah polegała na udzielaniu wsparcia i pomocy dowolnym osobom, zespołom obecnym na hackathonie – w sumie na HackYeah 2022 w Krakowie było 2500 osób!
Co dał mi udział w hackathonie jako mentor?
Tak samo, jak biorąc udział jako Java Developer dostałem ogromny zastrzyk energii, patrząc jaka wielka moc i potencjał tkwią w osobach przybyłych na hackathon. HackYeah w 2022 roku nie był moim pierwszym hackathonem w roli mentora, mniej więcej wiedziałem czego mogę się spodziewać. Po mimo tego, jak zawsze towarzyszyła mi pewna doza niepokoju związana z tym, że chciałbym jak najlepiej pomóc osobom, które będą się do mnie zgłaszały w trakcie trwania wydarzenia. Różne osoby zgłaszały się do mnie z różnymi problemami, np.: gdzie znajdę ekspres do kawy, jak skonfigurować serwer, jak połączyć back-end z front-end na zdalnym serwerze. Dodatkowo, to mentorzy finalnie oceniali i głosowali na projekty przygotowane w trakcie hackathonu.
Współtworzenie hackathonu – Envelo
Natomiast w 2021 roku współtworzyłem wewnętrzny hackathon w firmie Envelo (cyfrowy oddział Poczty Polskiej) dla 30 przyszłych Junior Java Developer’ów. Hackathon został zorganizowany, żeby “aktywować” twórczy potencjał uczestników szkolenia – 3-miesięczny projekt edukacyjny dla branży IT Akademia Envelo. W trakcie hackathonu powstało kilka zalążków aplikacji na wewnętrzne potrzeby firmy Envelo. Uczestnicy szkolenia bardzo zaangażowali się w wydarzenie, wybrali sobie zadania ogłoszone w dniu rozpoczęcia 24 godzinnego maratonu programistycznego, a następnie przystąpili do realizacji projektu. Cieszył mnie fakt, że uczestnicy wzięli sobie do serca moje wytyczne, które im wcześniej przekazałem – Stop! Zanim zaczniesz pisać kod zastanów się, co chcesz kodować? Analiza, projekt i implementacja – pisanie kodu poprzedzili analizą i projektem dla realizowanego zadania. Część osób pracowała z biura, a część osób zdalnie.
Co dało mi współtworzenie hackathonu?
Kolejny raz dostałem ogromny zastrzyk energii, patrząc jaka wielka moc i potencjał tkwią w osobach, które wspólnie postanowiły rozwiązać złożony problem programistyczny. Zobaczyłem również ile pracy wymaga zorganizowanie takiego wydarzenia. Chociażby samo przygotowanie, ustalenie zadań, projektów do realizacji było nie lada wyzwaniem. Należało wybrać projekty, które w przyszłości będzie można dalej rozwijać, żeby nie tworzyć tzw. projektów do szuflady.
Podsumowując, moim zdaniem udział w wydarzeniu, jakim jest hackathon, to ogromna szansa dla każdego programisty, każdej programistki, aby zobaczyć jak wielką przyjemność sprawia wytwarzanie oprogramowania, kodowanie. Czasem w trakcie codziennej pracy na stanowisku programisty, programistki tracimy z oczu obraz, tego jak szalenie ciekawą i dynamicznie zmieniającą się branżą jest szeroko pojęta branża IT. Po mimo 24 godzinnego maratonu, który teoretycznie powinien wyssać z nas energię, paradoksalnie otrzymujemy ogromny zastrzyk energii na kolejne tygodnie i miesiące pracy jako programiści, programistki! Do tego dochodzą ciekawe kontakty, nowa wiedza i umiejętności zdobyte w trakcie hackathonu.
Zdjęcie autorstwa Tima Miroshnichenko z Pexels.
Bardzo ciekawy event. Zaskoczyła mnie ilość osób w nim uczestniczących. Pamiętam, że zastanawiałem się chwilę, czy jest sens jechać 500km w jedną stronę, aby w tej imprezie uczestniczyć i co początkujący 47letni programista, może wnieść od siebie, czy się odnajdę wśród zapewne młodszych kolegów i koleżanek?
Muszę przyznać, że niepotrzebnie nad tym się zastanawiałem. Teraz wiem, że nie wiek jest najważniejszy, a chęć uczestniczenia w tworzeniu czegoś nowego i otwarty umysł. Dzięki tej imprezie poznałem bardzo ciekawych, sympatycznych, fajnych ludzi. Niezapomniane wydarzenie, podziękowania dla całego teamu, mentorów i organizatora. Do zobaczenia na kolejnym hackathonie 😉