Jak samemu rozpocząć naukę programowania?
Jeśli jesteś na początku nauki programowania i do końca nie wiesz jak efektywnie ją rozpocząć, to ten post jest właśnie dla Ciebie.
Nie od dziś wiadomo, że praktyka czyni mistrza, ale niestety początki bywają trudne i płynne przejście do działających już programów może okazać się zbyt wymagające.
Aby ułatwić sobie start, zachęcam Cię do podzielenia nauki programowania na dwie odrębne umiejętności, które na późniejszym etapie łączą się w jedną całość:
Pionowa oś dotyczy algorytmów, a konkretnie technik i sposobów rozwiązywania pojedynczych problemów o różnym charakterze i stopniu złożoności.
Pozioma oś odnosi się do organizacji kodu, czyli umiejętności, która polega na rozbijaniu kodu w taki sposób, aby móc łatwo wprowadzać do niego zmiany.
Najważniejsze jest to, że obie umiejętności można ćwiczyć oddzielnie, a co za tym idzie łatwiej jest zauważyć postępy w nauce, które tak bardzo motywują do dalszej pracy.
Jak zacząć?
Algorytmy to temat na lata, ale bez obaw :-), nie chodzi o to, aby z dnia na dzień stać się w nich ekspertem. Rozpoczęcie nauki algorytmów nie wymaga nawet zakupu jakiejkolwiek książki.
Zachęcam Cię natomiast do rozwiązywania zadań, w których poziom złożoności ograniczony jest do użycia listy i pętli. Mając do dyspozycji jedynie listę i pętlę Twoja uwaga nie będzie rozpraszana innymi dostępnymi w Pythonie konstrukcjami. Gdy gramatyka schodzi na dalszy plan, wówczas pojawia się przestrzeń na logiczne myślenie oraz łączenie faktów, tak potrzebne w rozwiązywaniu problemów.
Mogę polecić parę wartościowych stron internetowych, które zawierają wiele zadań do rozwiązania, o stopniowym poziomie trudności. Jednym z takich serwisów jest konkurs informatyczny Logia. Nie trzeba być uczestnikiem tego konkursu, aby móc skorzystać z prezentowanej treści.
Poniżej zostawiam listę innych serwisów, z jakimi warto się zapoznać:
Niektóre serwisy charakteryzuje to, że po rozwiązaniu konkretnego zadania udostępnione zostają odpowiedzi innych osób, które mogą stanowić ciekawą alternatywę naszego rozwiązania.
Organizacja kodu
Tak naprawdę istnieje wiele sposobów na organizację kodu. Na ten temat powstała już niejedna zasada, mająca na celu ułatwienie pracy z kodem.
Gdybym miał wskazać tylko jedną rzecz, która znacząco wpływa na rozwój umiejętności związanych z organizacją kodu, to byłyby to zdecydowanie testy.
Testy poza faktem, że podnoszą jakość projektu, to również torują myślenie, ponieważ wymuszają pewien porządek jaki powstaje z podzielenia kodu na mniejsze części. Rozdrobniony kod jest znacznie łatwiejszy w testowaniu, a także otwiera szereg możliwości w zakresie jego ponownego użycia.
Poniżej zostawiam linki do książek, jakie mogą stanowić uzupełnienie wiedzy w temacie pisania testów:
Co dalej?
Zachęcam Cię do zapoznania z ofertą kursów mojego autorstwa do efektywnej nauki Pythona - DevPython.pl. Znajdziesz tutaj nie tylko wiele zadań o charakterze algorytmicznym, ale również szczegółowo omówione projekty.
Nauka została podzielona na część teoretyczną, gdzie zostały omówione fundamentalne zagadnienia oraz na część praktyczną, która polega na rozwiązywaniu zadań o różnym stopniu złożoności. Każda z przesłanych odpowiedzi zostanie przeze mnie sprawdzona, a w komentarzu zostaną ujęte praktyczne wskazówki i cenne uwagi.