Trochę zwlekałam z rozpoczęcia przygody z Pythonem. Mail od WSB z poradami dla laików zawierał kilka linków do książek i internetowych tutoriali. Najtrudniej było wybrać jeden ze sposobów nauki tak, aby wreszcie zacząć się uczyć. Instynktownie nie mam zaufania do uczenia się programowania z książek. W moim przypadku szybko mogłabym się zniechęcić. Jeśli na papierze coś wydawałoby mi się zbyt skomplikowane, nie wierzyłabym, że można tego spróbować w wirtualnym świecie. Większość proponowanych tutoriali działała na zasadzie "zanim zaczniemy, zainstaluj to czy tamto, wejdź tu, wpisz to etc." Już to było trochę zniechęcające, a do tego teoria znajdowałaby się na jednej stronie, a ćwiczenia musiałabym wykonywać gdzie indziej.
Kurs internetowy przygotowany przez Codecademy nie wymagał instalowania żadnego programu. Na dodatek w warstwie wizualnej łączył w sobie:
- teorię,
- opis zadania do wykonania,
- edytor kodu,
- konsolę, która wyświetlała rezultaty z wyprodukowanego przeze mnie kodu.
W kursie Codecademy podobało mi się to, że lekcje były dosyć krótkie. Miałam poczucie, że udaje mi się w czasie jednej sesji zakończyć dany temat lub zyskać konkretną umiejętność. Jest to ważne dla podtrzymywania motywacji, kiedy człowiek uczy się zupełnie nowych, czasami trudnych rzeczy. Każda lekcja w kursie miała krótką część teoretyczną, a następnie sporą dozę sprawdzania teorii w praktyce. Nie bez znaczenia było też to, że twórcy kursu wykazywali się poczuciem humoru i nawiązywali, gdzie tylko się da do Monty Pythona. To sprawiało, że nauka stawała się przyjemniejsza. No i kurs jest zintegrowany z forum użytkowników, więc gdy się utknie na jakimś zadaniu i nie wie się, jak iść dalej, można sprawdzić, jak wybrnęli z podobnych opałów inni. Ostatecznym kołem ratunkowym był telefon do męża informatyka.
Humanistyczne zdolności językowe pomagały mi zrozumieć, że w programowaniu istnieją pewne zasady, jak w gramatyce i trzeba się ich trzymać, żeby komputer zrobił to, co chcemy - żeby nas zrozumiał. Żeby coś zadziałało, trzeba w odpowiednim miejscu zrobić wcięcie w tekście albo nie można tego wcięcia zastosować, bo będzie jakaś katastrofa. Jest pewien zestaw poleceń i funkcji, jak słówek i zwrotów w żywym języku, które muszą zostać użyte, żeby "dogadać się" z naszą maszyną i uzyskać oczekiwany efekt.
Ale programowanie to też sporo arytmetyki - musiałam sobie przypomnieć, że istnieją liczby całkowite (integers), liczby ułamkowe (floats), reszty z dzielenia (modulo) itp. i co z nimi można robić. Na co dzień mało się nad tym zastanawiam, nawet robiąc zakupy. Wyzwaniem były też dla mnie rozważania logiczne (booleans), czy coś jest Prawdą czy Fałszem i wykorzystanie tego przy tworzeniu funkcji, która miała powodować pojawienie się jakiegoś wyniku. Niektórych tematów związanych stricte z arytmetyką nie udało mi się przejść w ogóle (np. wykorzystanie silni czy mediany), ale około 90% kursu zdołałam zaliczyć poznając podstawowe pojęcia i zagadnienia Pythona. Miałam okazję realizować zadania matematyczne takie, jak obliczanie podatku i napiwku w restauracji lub obliczanie kosztów wczasów. Próbowałam też stworzyć prowizoryczną stronę dla sklepu internetowego, a nawet zagrać z komputerem w statki.
Nie potrafię stwierdzić, czy nauczyłam się Pythona. Powiedziałabym, że się z nim zapoznałam i mnie nie udusił. Przynajmniej potrafię zrozumieć, co różne dziwne zwroty w kodzie oznaczają i rozszyfrować, co mają za zadanie zrobić. Wydaje mi się, że mogę nauczyć się programowania jedynie ćwicząc dalej i poznając kolejne języki. Myślę, że teraz spróbuję pouczyć się np. Ruby. Ciekawe czy są jakieś podobieństwa i czy znając już trochę Pythona będę mogła szybciej nauczyć się Ruby. Zanim wyjechałam do Skandynawii podszkalałam się z niemieckiego, bo wiedziałam, że gramatyka niemiecka jest podobna do skandynawskiej. Rzeczywiście było mi łatwiej uczyć się zupełnie obcego, niszowego języka, bo rozumiałam coś z innego znanego mi nieco języka i bazowałam na tych podobieństwach. Mam nadzieję, że w kodowaniu będzie podobnie.