1000+ zadań w Pythonie (i każdym innym języku) – ćwiczenia dla początkujących programistów

Nauka programowania nie jest łatwa, a tym bardziej szybka. Poznanie koncepcji to jedno, a praktyka to drugie. Żadne zostań programistą w 2 tygodnie nie zadziała, bo nie ma innej tajnej i skutecznej metody uczenia się niż rozwiązywanie problemów. Pozostaje więc ćwiczyć, ćwiczyć i jeszcze raz ćwiczyć.

Robienie kursów polegające tylko na przyswojeniu samej teorii i składni jest jałowe.

Dla mnie nauka programowania jest trochę jak nauka języków obcych. Możesz zapoznać się z każdą stroną podręcznika do nauki języka np. francuskiego i nie napisać tym czasie ani jednego zdania, nie prowadzić żadnych konwersacji. Czy kończąc 150 stron książki możesz powiedzieć, że umiesz francuski?

Podobnie z nauką języków programowania. Na blogu rozwijam kurs Pythona, który się składa z wprowadzenia, kodów do przekopiowania i zadań praktycznych. Jednak i tak uważam, że tych pythonowych ćwiczeń, praktycznych zadań jest za mało, aby potrenować logikę języka.

W związku z tym mam dla was ogormną paczkę materiałów: Python zadania z rozwiązaniami. Część z nich możliwe, że już znacie, ale część na pewno jest mało popularna.

Zadania z programowania – Python, Java, PHP, C++ a może JavaScript?

Większość zadań tak naprawdę nie jest jest dedykowana, żadnemu specjalnemu językowi, dlatego warto sięgać po nie niezależnie od języka w jakim się uczysz. Rozwiązania są w Pythonie, ale to żadna strata! Można potraktować je jako 'pseudokod’, przeanalizować odpowiedzi i ćwiczenia rozwiązać w dowolnym języku.

10 darmowych źródeł zadań

W poście paczce znajdują się tylko darmowe materiały. Kolejność jest dość przypadkowa, dlatego polecam zapoznać się z każdym ze źródeł, przejrzeć sposób prezentacji wszystkich i wybrać te najbardziej adekwatne do własnych potrzeb 😉

1) Practice Python

36 zadań w Pythonie. Każde ćwiczenie składa się z krótkiego wprowadzenia oraz rozwiązania na osobnej podstronie. Pod zadaniem jest też sekcja „discussion” zawierająca materiał do nauki związany z zadaniem i rozwiązaniem. Papryczki oznaczają poziom trudności zadania.

zadania Python

2) Coding Bat

Zadania w Pythonie oraz Javie. Póki co w Pythonie jest zdecydowanie mniej materiałów – 8 poziomów, 72 zadania na poziomie zupełnie początkującym. Każde zadanie składa się z opisu, przykładowych danych oraz miejsca na nasz kod. Na stronie uruchamiamy interpreter przyciskiem Go i od razu wiemy się czy nasz kod jest poprawny. Po darmowej rejestracji strona zapamiętuje nasz postęp. Jest prosta, może nie ma porywającego designu, ale bardzo podoba mi automatyczna sprawdzarka.

3) Snakify

Od Pythona do Front-End Developmentu. Również interaktywne zadania podobne do Coding Bat. Zbiór większy, bo ponad 200. Najpierw wprowadzone są zadania Python, a później wchodzą ćwiczenia JavaScript, HTML + CSS, a na końcu elementy jQuery. Wszystkie zadania z automatyczną sprawdzarką. Ciekawy zbiór, ale brakuje mi, jakiegoś pomysłu jak to połączyć to w całość. Przydałoby się finalnie stworzyć mały projekt front-end + back-end.

Snakify zadania Python

4) w3resource – zbiór ćwiczeń

To konkretna porcja, bo ponad 900 zadań podzielonych tematycznie, z podanymi rozwiązaniami, interaktywnym edytorem sprawdzającym zadania.

ćwiczenia Python

Przykładowo w rozdziale dotyczącym algorytmów sortowania i przeszukiwania pojawia się zadanie 4 – sortowanie bąblekowe wraz z ilustracją jak powinno działać. Obrazkowe przedstawienie oraz schemat blokowy pomagają w zrozumieniu trudnych tematów.

algorytmy Python

Szybko zleciało te 1000 zadań, ale spokojnie to nie koniec! 😉

5) 100+ Python challenge

– ponad 100 zadań w jednym pliku tekstowym od najprostrzych do coraz trudniejszych. Plik ma strukturę: treść zadania / podpowiedź / rozwiązanie. Podane rozwiązania są w Pythonie 2.7! Warto od razu rozwiązać je w Pythonie 3 (- tu wkrótce będzie link do rozwiązań w Pythonie 3 😉 )

6) Exercism.io

– oferuje naprawdę ogromny zbiór ćwiczeń i ogromny wybór języków programowania – w tym Python. Zadania mamy opisane na stronie, robimy je lokalnie – do pobrania jest paczka uruchamiana konsolowo wraz z automatycznymi testami.

Exercism - zadania Python

7) 101 Exercises for Data Analysis (Python)

– niech was nie zmyli nazwa – 101 to polskie „od 0” albo „krok po kroku”. W artykule znajduje się 70 zadań z wykorzystaniem biblioteki NumPy dla osób, które myślą, by rozwijać się w kierunku Analizy danych w Pythonie. Od bardzo podstawowych (L1) do zaawansowanych (L4).

8) Checkio.org – Python ćwiczenia praktyczne

To ponad 200 zadań w Pythonie w formie gry online – darmowa, wymaga rejestracji. Jest również wersja JavaScriptowa.

python zadania - gra online

9) Projekt Euler

Zawiera ponad 600 zadań matematycznych, które można rozwiązać dowolnym językiem programowania. Po darmowej rejestracji możemy podać nasze rozwiązanie, a strona odpowie czy wynik jest zgodny z oczekiwaniem.

10) Python school

Już tylko kilka zadań, ale za to ciekawie przedstawionych wraz z lekcjami wideo. Na stronie znajdują się artykuły opisujące zakres zadania oraz proponowane rozwiązania.

* Dodatkowo: Python Video Workbook

zadania Python wideo
Jest to jedyny płatny zbiór zadań w zestawieniu – zawiera 100 zadań do wykonania samodzielnego, wraz z punktacją za każde zadanie. Wideo krok po kroku tłumaczy zarówno treść zadania (nie podając rozwiązania), teorię jak i przedstawia finalne rozwiązanie. Nauka przez rozwiązywnie problemów.

Samego kursu wideo może wydawać się niewiele – tylko lekko ponad 2 godziny. Jednak to głównie zadania do pobrania i praca własna są najważniejszą częścią kursu. Pierwsza połowa to zadania głównie dla początkujących, od 50 zadania pojawią się ćwiczenia dla średniozaawansowanych – pobieranie danych z zewnętrznego API, obsługa formatu JSON czy pobieranie plików na podstawie URL, generator haseł i wiele innych.

Jeżeli szukacie kursu Pythona, ale zwykłe kursy was nudzą, lub brakuje wam czasem, by ktoś po prostu wytłumaczył problem słownie, to ten zbiór zadań może być dla was. ten zbiór zadań (szczególnie, gdy jest na promce Udemy 😉 ).

Jeśli znacie inne ciekawe źródła zadań – podzielcie się w komentarzu ;D