Global Day of Coderetreat 2013

W sobotę 14 grudnia miało miejsce światowe wydarzenie – Global Day of Coderetreat. Są to darmowe, jednodniowe warsztaty, odbywające się w ponad setce miast na całym świecie. Uczestnicy przez cały dzień w kilku sesjach trwających 45 minut każda, zmagali się z jednym zadaniem, skupiając się na podstawach projektowania i wytwarzania oprogramowania. Nie liczyła się technologia, nie liczył się sposób rozwiązania problemu, nie miało również znaczenia to czy cel został osiągnięty. Główną ideą było nauczyć uczestników jak pisać dobry kod z uwzględnieniem podstawowych zasad tworzenia oprogramowania.

Co roku uczestnicy zmagają się z grą Conway’s Game of Life. Dokładny opis celu znajduje się tutaj, natomiast w wielkim skrócie gra rządzi się czterema zasadami:
1. Każda żywa komórka z mniej niż dwoma sąsiadami umiera (jakby z samotności).
2. Każda żywa komórka z więcej niż trzema sąsiadami umiera (jakby z zatłoczenie).
3. Każda żywa komórka z dwoma lub trzema sąsiadami przeżywa.
4. Każda martwa komórka z dokładnie trzema żywymi sąsiadami staje się żywa.

Global Day of Coderetreat 2013 - Glider gun

Glider gun

 
W coderetreat uczestniczyłem pierwszy raz. Z kilku miast w Polsce, które brały udział w tym wydarzeniu, miałem przyjemność uczestniczyć we wrocławskich warsztatach zorganizowanych przez PGS Software. Muszę przyznać, że firma stanęła na wysokości zadania. Udostępnili salę, obdarowali uczestników gadżetami, zagwarantowali pełny catering, a przede wszystkim poświęcili swój czas i energię na zorganizowanie wszystkiego. Dzięki Wam za to!

W warsztatach brało udział około 30 osób. Dużą większość stanowili .NETowcy, jednakże wydarzenie zgromadziło również ludzi piszących w innych językach, np.: C, C++, Java, JavaScript, Scala, SQL. Jak już wspomniałem na samym początku, każda sesja trwała 45 minut, w ciągu których pisało się kod zgodnie z paradygmatami programowania ekstremalnego (eXtreme Programming). W każdej następnej sesji usuwało się powstały wcześniej kod oraz zmieniało partnera. Dodatkowo organizatorzy wprowadzali nowe utrudnienia/reguły, których uczestnicy starali się przestrzegać. Przykładowe utrudnienia to:
– brak możliwości korzystania z typów prostych,
– brak instrukcji if oraz instrukcji odpowiedzialnych za pętle,
– nieograniczony obszar życia komórek,
– brak możliwości korzystania z myszki (“bądź jak komandos – programuj bez myszki!”),
– małe metody, nie więcej jak 4 linie kodu.
Po każdej sesji był czas na retrospective, czyli 5 minut na przemyślenia, dyskusje, wnioski. Następnie chwila przerwy na odpoczynek i uzupełnienie filiżanki z kawą, a potem kolejna sesja.

Jak to z każdego wydarzenia, tak i z tego wyniosłem kilka wniosków, które są bardziej lub też mniej istotne:
– wysokopoziomowe języki programowania pozwalają znacznie łatwiej, szybciej i czytelniej programować,
– łatwiej jest pierw napisać poprawnie działającą logikę, a następnie refaktoryzować,
– utwierdziłem się w przekonaniu, że pisanie w parach jest super i przynosi wymierne efekty,
– brak zaznajomienia z klawiatura znacząco obniża sprawność pisania kodu,
– nie zawsze trzeba pisać kod aby uzyskać rozwiązanie (ukłon w stronę chłopaków, którzy za pomocą excela wyprodukowali wzór na to, czy komórka jest żywa, czy martwa w przyszłej turze).

Global Day of Coderetreat 2013

Zdjęcie z FB

Leave a Reply

Your email address will not be published. Required fields are marked *