Początki samodzielnej nauki programowania to głównie kursy online. Zazwyczaj wyglądają one podobnie – mamy część teoretyczną, a potem przechodzimy do praktyki. Co robić, gdy masz już dość i nie chcesz oglądać kolejnych wykładów i robić ćwiczeń? Z pomocą przychodzą coding games.
Coding games – co to takiego?
Czym są coding games? To nowy sposób na naukę. Od razu chcę zaznaczyć, że jest to forma dla osób, które mają już jakieś podstawy w danym języku. Na blogu skupiam się na kursach związanych z front-endem (jak na przyklad we wpisie o tym, jak zacząć naukę), ale gry, które zaprezentuję, umożliwiają wybór języka, w jakim chcemy ćwiczyć. Ja korzystałam ze ścieżek dla JavaScriptu, ale można wybrać także choćby Javę czy Pythona. A wracając do samej idei coding games – chodzi o to, by poćwiczyć programowanie w formie wyzwań i jednocześnie się przy tym dobrze bawić. Najlepiej oczywiście spróbować samemu i zobaczyć, jak to wszystko wygląda. Przestrzegam, że często wyzwania mogą nam się wydawać bardzo trudne, szczególnie, jeśli dopiero zaczynamy. Nie ma się jednak co zrażać. Można wtedy włączyć sobie inne wyzwanie albo spróbować zrobić, ile się da. Na pewno coś wyniesiemy z prób rozwiązania zagadki.
Codewars
W Codewars mamy do wyboru mnóstwo zadań na różnych poziomach. Zarówno poziomy zadań, jak i poziom użytkownika mierzy się tutaj w kyu, czyli tak jak w sztukach walki. Im wyższa liczba kyu, tym łatwiejsze zadanie. Wyzwania są bardzo dobrze opisane, więc możemy sprawdzić, czy w ogóle interesuje nas poszukiwanie danych rozwiązań. W Codewars mamy do czynienia z typowo “programistycznymi” zadaniami. Możemy na przykład napisać skrypt wypisujący co którąś liczbę z ciągu (to oczywiście bardzo prosty przykład). Jednym z fajniejszych zadań, na jakie trafiłam było napisane SQLa w JavaScripice. Chodziło o rozpisanie poleceń z SQLa w JavaScript, tak żeby można było sumować elementy, wybierać je czy usuwać. Przy danym zadaniu możemy zobaczyć, w jakich językach jest ono dostępne. Co bardzo ciekawe, na początku wybieramy nasz główny język i musimy rozwiązać zadanie testowe, żeby w ogóle dostać dostęp do kolejnych. Zadania mają wbudowane testy, więc po napisaniu rozwiązania, możemy wszystko dokładnie sprawdzić.
Codingame
W Codingame z kolei mamy do czynienia z faktycznymi grami. To znaczy – piszemy skrypty, które sprawiają, że dana gra działa. Mamy więc za zadanie napisać kod, który sprawi, że bohater gry będzie mógł strzelać czy mierzyć do przeciwników. Wszystkie kroki są dokładnie opisane, wiemy więc co po kolei robić. Podobnie jak w Codewars, przy każdym zadaniu mamy wypisane języki, w jakich zadanie można rozwiązać. W Codigame mamy do wyboru kilka rodzajów wyzwań. Są tzw. Solo Puzzles, które pozwalają poznać nowe algorytmy i triki. Dostępne są także bitwy, podczas których rywalizujemy z innymi użytkownikami. Dużym plusem Codingame jest na pewno strona wizualna. Fajnie jest widzieć, jak napisane przez nas rozwiązania testowane są w praktyce, tj. bohaterowi gry walczą albo się ścigają.
CodeCombat
CodeCombat to strona, która powstała dla uczniów, aby zapoznać ich z tematyką programowania. Layout strony jest więc trochę bardziej “dla dzieci”, w porównaniu z Codewars czy Codingame. Uważam jednak, że nic nie stoi na przeszkodzie, aby ze strony korzystali także dorośli, którzy dopiero zaczynają swoją przygodę z kodowaniem. Na CodeCombat znajdziemy np. gry, które wprowadzają nas w zagadnienia związane z HTML i CSS, ale większość dostępnych kursów dotyczy szerokopojętego Computer science. Zapoznajemy się między innymi z takimi pojęciami jak funkcje, zmienne czy pętle, co na pewno jest przydatne dla każdego, kto myśli o nauce programowania. Według mnie największym plusem CodeCombat jest fakt, że wydaje nam się, że bawimy się na stronie dla dzieci, tymczasem naprawdę wiele możemy zyskać zapoznając się z kolejnymi tematami.
Do dzieła!
Mam nadzieję, że zachęciłam Was do spróbowania swoich sił w coding games. Wszystkie trzy przedstawione strony oferują mozliwość rozwiązywania zadań i zagadek za darmo. Warto więc się zarejestrować i zobaczyć, czy pasuje nam nauka przez zabawę. Jak wspomniałam wcześniej, zadania na Codewars czy Codingame mogą się wydawać dość trudne na pierwszy rzut oka, ale na pewno podjęcie wyzwań zaprocentuje. Z kolei CodeCombat w prosty i przyjemny sposób pozwoli poznać niezbędne do programowania podstawy. Nie pozostaje mi nic innego, jak życzyć wam powodzenia przy rozwiązywaniu kolejnych zadań!
Świetny wpis. Nie jestem game-devem, ale z doświadczenia mogę powiedzieć, żę CodinGame jest świetną platformą dla początkujących!
Dziękuję! 🙂 Też uważam, że fajnie jest spojrzeć na naukę trochę inaczej, szczególnie na początku
JAK SUPER! próbując szukać informacji/inspiracji/kursów, często trafiam na miejsca gdzie są “suche fakty” lub nawet są przykładowe zastosowania, ale są one zbyt proste. Bardzo się cieszę, że tu trafiłam, być może któraś z tych stron pozwoli mi “nie zatrzymywać się w miejscu” i uczyć się programować na konkretnych zadaniach, których sama jeszcze nie umiem sobie wymyślić lub zabieram się za to źle 😉 Dzięki!
Tak, bardzo raz jeszcze polecam coding games zamiast wymyślania sobie ćwiczeń samemu. Na pewno to większe wyzwanie, ale jaka satysfakcja ! 🙂
A ja trochę nie w temacie: podoba mi się wizualnie Twój blog. Wszystko wygląda tak estetycznie. Świetnym rozwiązaniem jest kolorowanie tekstu po najechaniu myszką. Jak to zobaczyłam powyżej, pomyślałam sobie: “Wow!”.
Dziękuję za treść, już jestem w trakcie testowania.
Będę częściej tu wpadać 😉
Bardzo dziękuję 🙂
Jesli chodzi o code wars, moim jedynym zastrzezeniem jest to, ze czesto zadania z tego samego poziomu rażąco wręcz różnią sie stopniem trudności.
To prawda, można trafić na naprawdę różne na tym samym poziomie
Nie zgodzę się co do tego, że jest przystępna dla początkujących. Sam jestem po pełnym kursie Pythona na Codecademy ale tutaj nie byłem w stanie zrobic ani jednego zadania poza tutorialowym, kompletnie nie mogę zrozumieć jak zabrać się tam do pisania czegokolwiek, sam opis zadania to czarna magia, a po spojrzeniu w hint przekonuję się tylko, że muszę nabrać masę doświadczenia, żeby w ogole to załapać.
Próbowałem kilku innych platform do nauki i naprawdę, ta jest jedna z najcięższych i nie wiem skąd pomsył, że nadaje się dla początkujących.