W jaki sposób efektywnie uczyć się informatyki?
1. Zaczynamy
Zacznijmy od tego, którą gałąź informatyki mam zamiar omawiać, ponieważ pojęcie "informatyka" jest bardzo wieloznaczne. W sumie to informatykiem w dzisiejszym skomputeryzowanym świecie może nazwać się prawie każdy - wystarczy, że potrafi się przetwarzać informacje znajdujące się w naszych komputerach, czyli np. przeszukiwać zawartość internetu przy pomocy wyszukiwarki.
Ja mam zamiar przekazać Ci tajniki w jaki sposób efektywnie uczyć się programować. Co to tak naprawdę oznacza słowo PROGRAMOWANIE? Programowanie oznacza pisanie kodu w jakimś języku, czyli czymś za pomocą czego możemy komunikować się z naszą można by rzec bez nas głupią (przynajmniej na razie) maszyną PC (Personal Computer). Czyli programowanie można by porównać do pisania tejże tutaj lekcji, przy pomocy której komunikuję się z Tobą w języku polskim. My skupimy się jednak na programowaniu w innym języku, a dokładniej będzie nim Java. Oznacza to, że przy pomocy Javy, będziemy pisać pewnego rodzaju artykuł w naszym wypadku będzie to kod źródłowy, który zostanie zamieniony na język zrozumiały przez naszą maszynę.
2. Jak efektywnie się uczyć?
Zrozum jak działa komputer
To co teraz napiszę podkreślam jest można by rzec najważniejszym czynnikiem, aby zrozumieć to co programujemy. Programując musimy zdawać sobie sprawę z tego, że maszyna, która czyta nasze programy JEST GŁUPIA, co z tego, że liczy kilkanaście tysięcy razy szybciej niż my, kiedy nie potrafi (przynajmniej na razie) racjonalnie myśleć. Jeśli ona myśli, to myśli tylko tak jak kazał jej to robić jakiś program, czyli tak naprawdę człowiek, bo w końcu programy piszą ludzie.
Do czego zmierzam? Otóż pisząc programy powinniśmy zdawać sobie z tego sprawę, że maszyna nie domyśli się Twoich zamiarów oraz Cię nie poprawi. Ona wykona kod, który Ty napisałeś w 100% tak jak go napisałeś. Czyli kod ZAWSZE działa teoretycznie prawidłowo z tym co napisaliśmy. Czyli to nie maszyna popełnia błąd w interpretowaniu, ale to my podczas pisania popełniamy błędy.
Co z tego wynika? Powinniśmy pisząc programy zniżyć się do poziomu komputera i myśleć tak jak program, który zwie się kompilatorem. Kompilator tak ogólnie mówiąc, nie wbijając się w szczegóły interpretuje kod źródłowy (czyli to co my piszemy), a następnie (pomijając kilka kroków) zamienia go w język zrozumiały przez komputer. Czyli jaki? Po prostu zmienia go w ciąg zer oraz jedynek, czyli np. 0110 0011 1100 0001 1111... . Dlaczego są to 0 oraz 1? Bo akurat takie impulsy najłatwiej otrzymywać komputerowi. Co to oznacza? Oznacza to, że wszystkie programy powinniśmy pisać tak jakbyśmy to my byli kompilatorami. Czyli czytamy kod źródłowy OD GÓRY DO DOŁU, w taki też sposób będzie wykonywany nasz program (z pewnymi wyjątkami).
Reasumując popełniając błąd nie rozbijajmy monitora, ani nie przeklinajmy na komputer bo to nie jego wina ;) Bo on nie myśli... Myślimy tylko my i niestety pisząc program musimy zniżyć się do poziomu kompilatora.
Ucz się języka angielskiego
Jeżeli chcesz na poważnie "zabawić się" w programowanie to powinieneś znać język angielski na przynajmniej średnim poziomie. Dlaczego? Wszystkie biblioteki tzn. zbiór pewnego rodzaju zabawek do tworzenia mniej oraz bardziej skomplikowanych programów są opisane w języku angielskim. Do jakiegoś poziomu możesz znaleźć kursy języka programowania w naszym rodzimym języku, ale im wyżej zajdziesz tym trudniej będzie Ci takie kursy znaleźć. Dodatkowo 90% tych (jak ja to tymczasowo nazwałem) zabawek, są opisane najczęściej tylko w bibliotekach.
Następnym argumentem za tym, aby uczyć się angielskiego jest to, że wszystkie języki programowania także są w języku angielskim. Dla przykładu: public static void - z niej mogę wywnioskować, że:
Public - z ang. publiczne - dostępne dla wszystkich
Static - z ang. statyczne - czyli będzie w jakimś sensie stałe
Void - z ang. puste - czyli nie będzie pewnego rodzaju wartości?
Jeżeli znamy język angielski to z samych słów można wywnioskować coś naprawdę wartego uwagi. Dochodzimy tym samym do następnego podpunktu.
Czytaj uważnie to nie jest powieść!
Lepiej jest przeczytać książkę dotyczącą informatyki 10x wolniej niż 10x szybciej. Każde słówko ma często ogromne znaczenie. Nad każdym słowem powinniśmy się zastanowić. Jeżeli nie rozumiesz pewnego pojęcia to polecam zawsze mieć odpaloną np. stronę: https://sjp.pwn.pl/, na której możesz szybko rozmyć swoje wątpliwości. Często myślimy, że rozumiemy dane słowo, jednak jest to niestety mylne, warto zaglądać do słownika!
Jako przykład podam słowo mapowanie. Cóż ono oznacza? Mapa najczęściej kojarzy nam się jako przedmiot, no ale tutaj mamy czasownik. Czyli co... mapowanie to będzie rysowanie jakichś ścieżek na mapie? W pewnym sensie tak. Jeżeli te ścieżki porównałoby się do połączeń dwóch ze sobą elementów to jak najbardziej tak. Mapowanie oznacza przyporządkowanie do siebie dwóch elementów w stylu klucz(identyfikator)-wartość. W zdaniu, które przed chwilą wyjaśniło co to jest mapowanie, znajduje się znów parę pojęć, nad którymi powinno się znów spędzić chwilę czasu, np. przyporządkowanie. Przyporządkowanie jest to po prostu porządkowanie, czyli układanie czegoś w określonym porządku, a następnie to coś stawiamy PRZY sobie, czyli łączymy, aby stanowiło w jakimś sensie jedność, czyli coś w stylu połączenia. Oczywiście wszystkie definicje słownikowe mogą się bardzo różnić od tego co ja tu napisałem. Proszę pamiętać, że każda definicja, czyli opis został stworzony przez człowieka. Człowieka, który nie jest nieomylny, człowiek często popełnia błędy.
Z tego co napisałem można wywnioskować, że każde słowo ma jakieś znaczenie i nad każdym słowem tak naprawdę można by spędzić dużo czasu analizując go. Ale jeśli poświęcimy te parę chwil to zaprocentuje to nam w efektywności naszej nauki.
Pamiętaj, że WSZYSTKO nazywa się w jakiś sposób nie z byle jakiego powodu. Każde słowo ma jakieś pochodzenie, tzn. genezę np. geometria pochodzi od greckiego geo, co oznacza ziemia, a metria od miary, czyli jest to nauka o mierzeniu na ziemi.
Po co to wszystko piszę i tak podkreślam? Ponieważ jeżeli zaczniesz uczyć się w taki sposób to każde słowo będziesz nagle z czymś kojarzył, a nasz umysł jest tak skonstruowany, że właśnie w taki sposób zapamiętuje informacje najszybciej oraz na długi okres czasu.
Pisz oraz programuj sam!
Jeżeli czytasz jakiś kurs lub też oglądasz video kurs, to po przeczytaniu / obejrzeniu każdej lekcji sprawdź czy tak naprawdę potrafisz wykonać to czego się dowiedziałeś. Często po przeczytaniu dobrego artykułu lub też lekcji, wydaję nam się, że wszystko jest takie proste i piękne ;) Jeżeli nie potwierdzimy tego swojego stanu umysłu poprzez ćwiczenia to szybko to co poznaliśmy może nam po prostu wylecieć z głowy.
Stawiaj sobie wyzwania, twórz własne programy, testuj, nie bój się, kompilator jest jak dziewczyna - podobno nie gryzie... ;) Pamiętaj - trening czyni mistrza!
Nie ucz się bez przerwy!
W trakcie nauki umysł męczy się tak jak i ciało podczas treningu, ale im dłużej trenujesz tym lepszą masz kondycję, oczywiście nie powinno się przesadzać bo padnie się na... . Im więcej się uczymy tym wydajność naszego umysłu jest coraz mniejsza. Rób sobie pewnego rodzaju przerwy, które nie dość, że poprawią Ci sylwetkę oraz kondycję to pozwolą Twojemu umysłowi między czasie się zregenerować. Polecam bardzo basen, oraz np. ustawienie sobie jakiegoś programu, który będzie informował Cię o tym, że minęła np. 1 godzina i czas zrobić sobie przerwę. Podczas przerwy możesz np. zrobić parę pompek, przysiadów, brzuszków, za co na pewno organizm Ci się za to odwdzięczy.
Video Kursy = szybki start
Ostatni punkt możesz i masz prawo uważać za mało obiektywny, ponieważ sam jestem autorem Video Kursów. Jeżeli zaczynasz przygodę z programowaniem, to naprawdę video kursy pozwolą Ci przejść przez to co jest najtrudniejsze, czyli początek.
Początki są zawsze trudne, pierwsza jazda na rowerze, pierwszy skok do wody, pierwsza jazda autem, każdy ten pierwszy raz jest związany z różnego rodzajem trudnościami. Najczęściej przy tych zdarzeniach, które wymieniłem ktoś Ci pomagał oraz tłumaczył jak wykonać daną czynność, na pewno ułatwiło Ci to ten pierwszy raz. Tak samo jest z językami programowania. Ten pierwszy język do poznania będzie trudny, każdego następnego nauczysz się dwukrotnie szybciej oraz przyjdzie Ci to z łatwością. Jeżeli chcesz nauczyć się programować w wygodniejszy oraz szybszy sposób nie męcząc się z czytaniem i analizowaniem wszystkiego samemu to po prostu zachęcam do zapoznania się z Video Kursami, które sprawią, że ten właśnie pierwszy raz będzie łatwiejszy. Zaoszczędzisz moim zdaniem przynajmniej 20-30 h swojego cennego życia, które możesz wykorzystać na lepsze cele chociażby lenistwo, które też czasem rozwija, bo pozwala nam odpocząć ;)
Video Kursy są o tyle dobre, że podczas oglądania uczysz się od razu tak jakby praktyki, ponieważ przynajmniej w kursach które ja prowadzę, wszystkie kody pisane są od zera. Jesteśmy wzrokowcami więc nauka idzie dużo szybciej. Czytając książkę, używamy tylko narządu wzroku oraz tekst czytany jest statyczny (nieruchomy). Oglądając video kurs korzystamy nie tylko z narządu wzroku, ale także słuchu.
W książkach kod źródłowy jest napisany od razu w całości, często jest nie do końca wytłumaczony. Musisz niestety analizować ten kod najczęściej w 90% sam. Natomiast w video kursach widzisz jak osoba prowadząca pisze cały ten program od zera.
Więcej o video kursach możesz przeczytać tutaj.
3. Podsumowanie
Reasumując, ucząc się w sposób efektywny, czyli taki jak ja to opisałem zyskasz na czasie, ale najważniejsze w tym jest to, że to co się nauczysz zostanie Ci na dłużej w pamięci, a co za tym idzie będziesz móc dłużej z tego korzystać oraz cieszyć się z faktu, że się wszystko rozumie. Mam nadzieję, że to co napisałem pokazało, że informatyki nie powinno uczyć się na pamięć ze schematów. Informatyka, a w naszym przypadku programowanie jest bardzo logiczna tak jak i matematyka oraz fizyka i nie powinno się jej "kuć", lecz próbować zrozumieć, skupiając się podczas nauki ;)