Często dostajemy od Was zapytania o to, skąd brać zadania do ćwiczenia programowania. Poniżej więc zestawienie najciekawszych źródeł, które dadzą Wam możliwość nauki.
Project Euler
Wyzwania matematyczne i programistyczne, których trudność rośnie wraz z kolejnymi numerami zadań. Po zalogowaniu możliwość sprawdzenia swojego wyniku. Projekt ten ma sporą tradycję i na niejednym githubie znajdziecie rozwiązania problemów w różnych językach programowania.
Codility
Większość z Was kojarzy pewnie platformę codility z zadaniami rekrutacyjnymi, które to, nie każdemu przypadają do gustu (dlaczego nie są naszą ulubioną formą weryfikowania wiedzy pisaliśmy tutaj). Jednak na pewno warto sprawdzić tutoriale, które uczą jak podchodzić do takich problemów. Znajdziemy tam też zadania do rozwiązania. Co więcej, na stronie Codility znajdują się też comiesięczne wyzwania programistyczne.
CodeFight
Opcja na testowanie swoich umiejętności … na czas ;) Mamy więc prawdziwą arenę i prawdziwych przeciwników. Jest też opcja training, gdzie po prostu można poćwiczyć. Fajna opcja w szczególności do treningu przed rozmowami rekrutacyjnymi dla juniorów — zadania są dość proste, więc warto sobie je rozwiązywać i ćwiczyć programowanie. Na platformie znajdziecie też turnieje i wyzwania.
Międzynarodowy wykop też ma swój dział z wyzwaniami programistycznymi. Znajdziecie tam różne zadania z podziałem na poziomy trudności. Propozycje rozwiązań publikowane są w komentarzach, jest to więc też ciekawe źródło do porównania języków programowania między sobą.
CodeChef
Wiele zadań na kilku poziomach trudności, ale też wiele wyzwań i konkursów. CodeChef zebrał ponad 100 tysięczną społeczność, która aktywnie udziela się na portalu i współtworzy treści.
CodeByte
Kolejna strona z wyzwaniami programistycznymi o różnym poziomie. Aby przesłać swoje rozwiązanie musisz być zalogowany.
TopCoder
Wyzwania, dzięki którym możesz zarobić, społeczność prawie miliona programistów i zadania, które są dość wymagające. Wyzwania dzienne i tygodniowe wymagają przede wszystkim logicznego myślenia i mogą okazać się trudne. Polecamy raczej bardziej zaawansowanym programistom.
Exercism.io
Platforma, która uczy również code review. Po wysłaniu swojego rozwiązania możesz ocenić rozwiązania innych. Platforma stawia na komunikację między użytkownikami, bo bardzo bliska jest jej idea, że to właśnie rozmawiając o kodzie możesz nauczyć się najwięcej. Przykład takiej uczącej rozmowy znajdziecie w tym linku.
CodeWars
To co wyróżnia CodeWars to nauka TDD (test driven development)! Są też elementy grywalizacji i rywalizacji i ładny interfejs. Więcej o platformie znajdziecie w tym filmie.
CodinGame
Pisanie kodu. by grać w grę w wersji nietrywialnej. Pamiętam, że sama bawiłam się tymi zadaniami gdy uczyłam się programowania i całkiem mnie wciągnęło. Do wyboru wiele gier, a w każdej kilka wyzwań. Ciekawa opcja by zobaczyć, że te for’y czy if’y faktycznie coś robią ;)
HackerEarth
Na stronie znajdziecie wyzwania, które są też ofertami pracy bądź/i konkursami z nagrodami. Ale na stronie można znaleźć też zadania dla początkujących!
HakerRank
Strona zawiera sporo ciekawych wyzwań, jak i zadań. Na początku określa się swoje obszary zainteresowania, by jeszcze lepiej dobierała nam materiał do ćwiczeń, co jest bardzo fajnym pomysłem.
CodeAbbey
Minimalistycznie i konkretnie, dużo zadań, które mogą przydać się ma początku Twojej nauki.
Rosalind
Zadania związane z bioinformatyką, ale też duży zbiór tych o algorytmach, czy podstawach pythona. Umieszczenie swojego rozwiązania możliwe po zalogowaniu.
Sphere online jugde
Zadania algorytmiczne, bez konkretnej specjalizacji. Możliwość wysłania rozwiązania do oceny i porównania z innymi.
CheckiO
Gra dla programistów, w której nie tylko poprawisz swoje umiejętności programistyczne, ale także możesz wyzwać współpracowników na pojedynek!
EMPIRE of CODE
Kolejna ‘growa’ propozycja dla programistów, która skupia się na konflikcie JavaScript vs Python. Wprawdzie programowanie nie jest stricte wymagane, jest to nadal ciekawy sposób na naukę.
Tyle od nas, choć zdajemy sobie sprawę, że tematu nie wyczerpaliśmy, a stron z zadaniami jest znacznie więcej - jeśli masz jakaś ulubioną, koniecznie daj znać. Wiemy natomiast jedno, to są naprawdę fajne i różnorodne źródła — na pewno znajdziesz tam coś dla siebie. Wymówka nie wiem co programować chyba własnie przestała istnieć :)