Trochę czasu już minęło od Tygodniowego Wyzwania Programistycznego. Czas na podsumowanie z naszej strony.
Making Of
Sam pomysł na wyzwanie był inspirowany rozmową z jedną z naszych czytelniczek po wystąpieniu Ani na Rails Girls Tricity. Ania usłyszała: “zostań Chodakowską programistek” i pomyślała, że czemu nie zrobić, tak jak Ewa, wyzwania :)
Nie wybraliśmy daty, trochę postawiliśmy siebie przed faktem dokonanym, decydując się pewnego wieczora, że od piątku ruszamy — miało to potem konsekwencje: przede wszystkim dla nas to też było wyzwanie, a każdego dnia siadaliśmy do opracowanych zadań, by stworzyć nasze rozwiązania.
Pomysły na zadania pojawiły się dość spontanicznie. Mieliśmy jasny cel: pokazać początkującym techniki, które pomogą im w uczeniu, oraz doświadczonym metody na analizę swojej wiedzy, a także sposoby na jej pogłębianie. To nie miało być tylko kodowanie, choć nie do każdego ten komunikat trafił (o tym będzie później). To przede wszystkim miały być różnorodne zadania, których efektem będzie przede wszystkim: ROZWÓJ i autodiagnoza. Stąd pojawiło się też zadanie #0, pytania ewaluacyjne po każdym zadaniu oraz podsumowanie go z wytyczeniem celu. Wiedzieliśmy, że nie dla każdego tak wysokopoziomowe podejście okaże się słuszne, ale z drugiej strony bardzo nie chcieliśmy publikować tylko zadań z kodowania — ich w internecie można przecież znaleźć tysiące. Nie zdziwiło nas to, że wyzwanie nie okazało się dla każdego, bo wiedzieliśmy, że tak będzie.
To co na pewno było utrudnieniem, to stworzenie zadań, które będzie można zaimplementować niezależnie od języka (to był kolejny argument, by nie skupiać się na kodowaniu,). Z drugiej strony tak bardzo chcieliśmy nie ograniczać Javą naszego wyzwania, bo w dużym obrazku język to przecież tylko narzędzie, a programowanie to bardziej sposób myślenia.
Jak wyszło?
Chcieliśmy, żeby pod zadaniami odbywała się wymiana wiedzy, dlatego wpadliśmy na pomysł grupy na facebooku, na której w sumie było ponad 800 osób, które kliknęły zainteresowany lub biorę udział — co uważamy za spory sukces. Wiedzieliśmy też, że same treści i rozwiązania będziemy publikować na blogu — tak by z samego wyzwania mogli skorzystać też “spóźnialscy”.
Rzeczy z których na pewno jesteśmy zadowoleni to ścieżka zadań jaką udało nam się stworzyć. Wyszło różnorodnie, z naciskiem na różne obszary, a o to nam chodziło. Bardzo nam było miło gdy pojawiały się komentarze, uwagi, gdy wzajemnie zagrzewaliście się do walki :)
Z drugiej strony wiemy też, że po drodze odpadali nam uczestnicy — to potwierdzają chociażby wejścia na kolejne wpisy ;) O statystykach będzie jeszcze nieco później. Trochę brakowało nam większej aktywności pod zadaniami — liczyliśmy na dyskusję, zadziałało chyba prawo internetu: jak nikt nie dyskutuje, to ja też nie będę. Początkujący po pierwszym zadaniu wrzucili sporo odpowiedzi, jednak interakcja była między nimi mniejsza, więc zakładam, że potem już nie każdemu się chciało (tym, co się chciało fanfary i brawa!).
Trochę liczb
W tygodniu wyzwania najpopularniejszym wpisem był ten z pierwszym zadaniem, zaliczył on 1 999 odsłon.
Każdy kolejny wpis był odwiedzany rzadziej i rzadziej. Z czym od początku się liczyliśmy — jednak mimo wszystko, 7 dni codziennego kodowania to dużo, dwa, nie każdemu takie zadania mogły przypaść do gustu. Jest to więc sytuacja, na którą byliśmy przygotowani.
Jeśli chodzi o rozkład sił — najwięcej osób zadeklarowało programowanie w Javie. Potem Python, JavaScript, C#.
Od momentu publikacji do dziś, wpisy z tygodniowym wyzwaniem programistycznym mają poszczególne liczby odsłon:
Wpis zbiorczy: 674
Zadanie #0: 1010
Zadanie #1 : 2436
Zadanie #2: 954
Zadanie #3: 637
Zadanie #4: 595
Zadanie #5: 430
Zadanie #6: 444
Zadanie #7: 503
Finał: 395
O ile każdy wpis z zadaniami ma czas odwiedzin na około 3 min, to wpis z podsumowaniem ma go na poziomie 58 sekund.
Średnio codzienne na naszym blogu mamy około 1500–1800 sesji.
Ilość opublikowanych przez Was rozwiązań: 24 (sumarycznie dla obu grup)
Wasze wrażenia
Nie bylibyśmy sobą gdybyśmy nie zrobili ankiety podsumowującej całą akcję. Zebraliśmy odpowiedzi od … 9 osób, którym serdecznie dziękujemy za feedback! Tak, nie jest to może próba, która może udowadniać tezy naukowe, ale są to ludzie, którym chciało się podzielić swoimi wrażeniami.
Wyniki możecie obejrzeć sobie w tym pdfie.
To, do czego chcielibyśmy się odnieść poniżej (w formie skrótów myślowych):
“Za mało kodowania” — conajmniej kilka razy, mówiłam tak do Kuby, że początkujący będą narzekać, że jest mało kodu do pisania, jednak ani ja, ani on nie chcieliśmy zmieniać tych zadań. Dlaczego? Bo oboje wierzymy, że nauczenie się technik, które Wam pokazaliśmy o wiele bardziej pomoże w nauce programowania niż kolejne zadanie w stylu: z ciągu znaków wybierz te, które się nie powtarzają. Tak takie zadania też są potrzebne, bo pozwalają ćwiczyć się Wam w “gramatyce” języka, a także w rozwiązywaniu problemów. Jednak, by móc to robić efektywnie warto znać różne sposoby na rozwiązywanie zadań i je właśnie chcieliśmy Wam pokazać, nauczyć i pozwolić na ich zrozumienie. Wszystkim, którzy szukają zadań typowo do kodowania polecamy chociażby 30 dniowe wyzwanie HackerRank (a więcej takich wyzwań znajdziecie w naszym wpisie).
“nie znałem narzędzi o których mówiliście, okazało się, że wiem bardzo mało” - wyzwanie miało nauczyć nowych rzeczy, pokazać techniki, więc to nic złego, że ich nie znałeś. Uzupełnienie swojego warsztatu właśnie o nie może okazać się pomocne w dalszej nauce. Kodowanie to nie wszystko, choć często na sam początek wystarczy :) Ważne, by szukać dobrych praktyk i rozwijać swój warsztat.
“zadania dla praktyków za łatwe” — to też się przewijało, również w komentarzu. No widzicie, musieliśmy przyjąć jakiś poziom minimum, który będzie OK zarówno dla osoby z pół rocznym stażem, jak i bardziej zaawansowanych. Może to był błąd i kolejna edycja powinna to rozróżniać? Mimo wszystko, uważamy, że dość “luźne” zadania ułatwiały dostosowanie do poziomu — jak było za łatwo można było sobie utrudnić:) Code Kata zakłada, że zadania nie są trudne, albo inaczej, że są tak trudne, by była możliwość swobodnego programowania. Zadania dla praktyków również miały oprócz konkretów pokazać Wam sposoby na ulepszanie swojego warsztatu — mamy nadzieję, że poznane techniki będą pomagać w rozwoju.
“może jakieś zadanie raz w tygodniu” - na blogu, prawie co tydzień, pojawiają się wpisy z serii #main, w których możecie znaleźć pytania techniczne i zadania. Polecamy śledzić i rozwiązywać! A dotychczasowe wyzwania techniczne z tej serii znajdziecie we wpisie zbiorczym.
Nasze wrażenia
Ania: Samo wyzwanie (bo pamiętajmy, że my też rozwiązywaliśmy te zadania), okazało się dla mnie niezłym … wyzwaniem. W między czasie szukałam pracy, biegałam na rozmowy, robiłam codility i no, nie zawsze miałam ochotę siąść i je rozwiązać ;) Miłym zaskoczeniem było jednak to, że każde z podjętych przeze mnie zadań pokazało mi coś fajnego o moim programowaniu. Ulubione zadanie? To chyba programowanie emocjonalne z ostatniego zadania — pomysł na edytor tekstowy był mój, ale dziękuję Kubie za implementacje w JavaScripcie ;) Myślę sobie, że mimo “spadku zainteresowania” to wyzwanie to kawał roboty i naszej i Waszej. I, że z przyjemnością bym je powtórzyła. Może z użyciem innych narzędzi? Jakiś live coding, jakieś video … Zobaczymy.
Kuba: Poza wyzwaniem w sensie czasowym, o którym wspominała Ania, dla mnie ciekawe było podejście do rozwiązywania zadań dla początkujących. Niby proste rzeczy, ale przy każdym byłem w stanie się czegoś nauczyć czy dowiedzieć o swoim warsztacie — zdecydowanie cenne doświadczenie. Myślę, że powtórka w przyszłości jak najbardziej, ale musimy jeszcze wymyślić jak lepiej podtrzymać zainteresowanie i uczestnictwo :)
Na koniec: śmiało możesz skomentować ten wpis i podzielić się swoimi dodatkowymi uwagami.