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.
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.
4) w3resource – zbiór ćwiczeń
To konkretna porcja, bo ponad 900 zadań podzielonych tematycznie, z podanymi rozwiązaniami, interaktywnym edytorem sprawdzającym zadania.
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.
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.
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.
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
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
Nic tylko kodzic 🙂
Starczy życia by to wszystko przerobić?
Wielkie dzieki. Wszystko w jednym miejscu.
spokojnie, wszystkiego nie musisz ;D poza tym pewne problemy się powtarzają – zarówno te najbardziej podstawowe, jak i zadania algorytmiczne typu sortowania czy problem plecakowy po prostu z różnymi danymi :p
za to te challange z zadaniami robi się szybciej niż wygląda, zwłaszcza interaktywne 😛 dobrze jest sobie chociaż część uruchamiać lokalnie poprawiać i udostępniać na githubie, jako prezentację postępów w nauce
tutaj ciekawie wygląda exercism, tylko nie każdemu może spodobać się sposób uruchamiania, ustawiania sobie lokalnie sprawdzajki ;D
Dzięki za zebranie tego w jednym miejscu. Jeden szczegół – w 2) coding bat zamiast coding bota.
ooo ooo ;D dzięki za czujność!
Jak zwykle świetny materiał! Dzięki 😉 !
polecam się!
A czy jest jakiś dobry kurs/książka ucząca programowania GUI w pythonie?
Zajmuję się systemami rozproszonymi i współbieżnymi i uważam, że teoria jest bardzo ważna. Programowanie to jedno, ale teoria w dłuższej perspektywie przynosi większe zyski. Autorka powinna to wiedzieć jeśli zajmuje się pythonem, język to tylko narzędzie, a do napisanie dobrej sieci neuronowej przyda się wiedza. Dziwne, że tego nie doświadczyła.
Nie wiem skąd wyciągnąłeś takie wnioski na podstawie wpisu, który dotyczy… nauki języka, a więc dostarcza zestaw ćwiczeń ;p
To że język jest narzędziem jest oczywiste, czy teoria przynosi większe zyski? trochę truizm, z którym można polemizować w zależności od kontekstu. Na pewno doświadczenie i praca z doświadczonymi osobami (transfer wiedzy) tak naprawdę daje największe korzyści pojedynczej osobie jako jednostce
Nie spotkałem się jeszcze z blogiem o tematyce min. informatycznej,
który skupia w sobie tyle bezcennej wiedzy. Wciągnął mnie nie jeden a
kilka wpisów z których wyciągnąłem sporo wiedzy. Chylę kapelusz autorce.
Jak zwykle konkretny Content. ( ͡~ ͜ʖ ͡°)
Brawo 😀
Rób to dalej! Mega profesjonalnie 🙂 Wiedza na wyciągnięcie ręki!
O, fajne, dziękuję bardzo 🙂
Ja polecam jeszcze to: https://pl.spoj.com
Jest po polsku, co może niektórych przekonywać, choć angielski w IT to podstawa.
Cześć ! od jakiegoś czau sobie dłubie w tych zadankach i jestem mega zadowolony, tego zawsze mi brakowało, PORZĄDNEGO ZBIORU =) .
Dzięki bardzo za świetne materiały!
Jednak po paru dniach zacząłem się zastanawiać, czy po zrobieniu np wszystkich takich zadań jak moge określić swój poziom programowania ?
Nie wiem z jaką wiedzą i umiejętnościami mógłbym zacząć starać się o prace :p
Cześć, wszystkich to chyba nie ma sensu 😛
Co do poziomu i szukania pracy zajrzyj do wpisu: Co musi umieć Junior Python Developer?
Dzięki ! =)
Cześć, nie mam nic konkretnego do napisania, ale bardzo podoba mi się Twój blog – rozjaśnił mi już sporo pojęć i tematów. Chciałbym się przebranżowić z takiego helpdeskowca-bazodanowca (bez powołania) w programistę (takiego z zamiłowania:)) i to, co piszesz naprowadza mnie na właściwe tropy. Dzięki!
Nie pamiętam, czy na tej stronie można też kodzić w Pythonie, ale jest jeszcze taki serwis jak codeforces
Brakuje mi na tej liście Sphere Online Judge 🙂
Artykuł tak czy inaczej świetny!
Pozdrawiam, Mateusz.
Warto wspomnieć o Coding Game. Też świetne do kodzenia dla siebie
Ja bym dodał jeszcze codewars. Uzyskałem 976 i mam kyu 3.
ja się uczyłam w Picxblocks (jest po polsku), trzeba sobie zainstalować programik. Można ominąć te obrazkowe do nauki dla dzieci i przejśc od razu do Pythona. Zabawa też w rysowanie i tworzenie gier. Na youtubie mają kanał z tworzeniem gier.
Drugi to Codecademy, Python 2 jest za free, Pyth 3 już nie, ale i tak jest praktycznie bardzo podobnie, drobne różnice.
Uzupełniłam kursem na Linkedin Python Essentials by Bill Weinmann. 4h wideo, ale warto się samemu pobawić, są zagadnienia, których w poprzednich nie było.
Myślałam też o PyGame.
Ogólnie sam Python to chyba i tak za mało, żeby znaleźć pracę z tego co widzę, więc kulam kursy z innych zagadnień.
Świetny blog tak w ogóle 🙂
Świetny wpis 😉
Warto również sprawdzić:
codinghero.pl
Wszystko ładnie, pięknie…
Jakbym się chciał nauczyć programowania pod linux?
Narazie głównie wykorzystuję Bash ale system daje możliwość C i C++.
Co mam wybrać jako początkujący?