Rozwiązywanie ciekawych problemów jest dla programistów dobrą zabawą jak i również świetną nauką. W czasach kiedy zaczynałem swoją przygodę z tą branżą, popularnym portalem zawierającym zadania do rozwiązania w różnych językach programowania był SPOJ. Jednak według mnie nie wciągał on na dłużej, a samo rozwiązywanie coraz większej liczby zadań było mało ciekawe. Brakowało tutaj elementu bezpośredniej rywalizacji z innymi, co czyni „grę” oraz zajmowanie coraz wyższych pozycji w rankingu niesamowitym wyzwaniem. Chęć bycia lepszym od innych i wygrywaniem jest tym co przyciąga nas do gry na dłużej. Jakiś czas temu trafiłem na portal CodinGame i na prawdę żałuję, że gdy zaczynałem i miałem mnóstwo czasu na rozwijanie się, nie było takiego serwisu.
Czym jest CodinGame?
CodinGame jest platformą dla programistów o różnym poziomie zaawansowania (każdy znajdzie coś dla siebie) umożliwiającą rozgrywkę, która polega na rozwiązywaniu różnych zadań. Do wyboru jest kilka trybów:
- „Practice” – łamigłówki do samodzielnego rozwiązania
- „Clash of Code” – szybka rozgrywka polegająca na rozwiązaniu prostego problemu
- „Contest” – dłuższa rozgrywka trwająca kilka dni, polegająca na zaprogramowaniu bota, który rywalizuje z botami stworzonymi przez innych graczy
Rozwiązania nadsyłać można w różnych językach. Wybór jest naprawdę ogromny. Za wykonywane zadania dostajemy punkty doświadczenia co pozwala wbijać kolejne poziomy. Do odblokowania są rozmaite osiągnięcia np.:
Practice
Ten tryb rozgrywki jest w zasadzie identyczny jak na SPOJ i służy raczej jako trening do gry przeciwko innym graczom. Mamy tutaj do wykonania zadania o różnym poziomie trudności. W zależności od złożoności problemu danego zadania dostajemy odpowiednią ilość punktów doświadczenia.
Clash of Code
W tym trybie rozgrywki mamy do rozwiązania prosty problem w określonym czasie. Każdy z graczy może utworzyć taką rozgrywkę, do której następnie dołączają gracze. Maksymalnie dołączyć może ich ośmiu, jednak aby grę rozpocząć potrzebnych jest minimalnie dwóch graczy. Czas na rozwiązanie zadania zawiera się w przedziale od 5 do 15 minut. Zadania są podzielone na trzy typy:
- Fastest – najszybsze przesłanie gotowego rozwiązania
- Shortest – najkrótszy kod
- Reverse – dostajemy wejście oraz wyjście i na ich podstawie musimy się domyślić jaki kod napisać
Warto tutaj dodać, że przy typie zadań na najkrótszy napisany kod niektóre języki programowania mają przewagę nad pozostałymi. Przykładowo kod napisany w pythonie lub rubym będzie dużo bardziej zwięzły niż java czy c++. Należy więc wybierać odpowiednie narzędzia do danego problemu, a nie ograniczać się tylko do jednego języka.
Contest
Rozgrywka w tym trybie organizowana jest co jakiś czas i trwa kilka dni (najbliższa zaplanowana jest na 10 dni). Tutaj do wygrania są już nagrody, jak i również możliwość aplikowania po konkursie na stanowiska dodane przez firmy.
Rozgrywka polega na napisaniu bota, który będzie rywalizował z botami stworzonymi przez innych graczy.
Jak przebiega rozwiązywanie zadań?
Poniżej przedstawiony został ekran rozwiązywania zadania w trybie Practice. Po lewej stronie jest opis problemu, w środku znajduje się edytor, gdzie możemy wybrać dany język programowania oraz automatycznie wstawiany jest szkielet programu, czyli obsługa wejścia/wyjścia, co ułatwia start. Pod edytorem znajdują się testy, które możemy odpalać w dowolnej kolejności, jak i zbiorowo wszystkie naraz. Gdy nasze rozwiązanie jest gotowe, przesyłamy je.
Podsumowanie
Według mnie CodinGame jest świetną platformą do nauki jak i rozrywki. Rozwiązywanie problemów i rywalizacja z innymi wciąga bardzo. Zachęcam więc do spróbowania swoich sił!
A czy jest płatne gdy przechodzi się do dalszych etapów? Bo korzystałem kiedyś z czegoś podobnego i później trzeba było już subskrypcje wykupić.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Nie jest płatne.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Hi! I am a robot. I just upvoted you! I found similar content that readers might be interested in:
https://sarvendev.com/2017/04/codingame-czyli-rywalizuj-innymi-programujac/
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit