niedziela, 30 października 2016

Ujarzmić Pythona

Będąc osobą nie związaną dotychczas z informatyką (a jedynie z informatykiem, co w żaden sposób nie poprawiało mojej wiedzy programistycznej) poprosiłam WSB o sugestie, jak mogę się przygotować do zajęć. Kierownik merytoryczny studiów zaproponował, abym pouczyła się jednego z języków programowania: ruby, Python, swift lub golang. Wszystkie brzmiały dla mnie jednakowo obco. Skoro jednak na zajęciach mieliśmy używać Pythona, zdecydowałam się zacząć właśnie od niego. Według moich wstępnych poszukiwań - przeprowadzonych z pomocą profesora Googla - Python miał być dobrym i prostym językiem na start, umożliwiającym tworzenie aplikacji webowych, gier, wyszukiwarek, etc. Dodatkowo jego nazwa pochodzi od Latającego Cyrku Monty Pythona, co wydało mi się zachęcające, bo wskazywało, że jego twórca miał poczucie humoru.

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.
Wszystko w jednym miejscu - idealnie!

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.

2 komentarze:

  1. Marta ! Jesteś super dziewczyna. Pisz dalej o swych postępach w nauce języków oprogramowania . Pozdrawiam i życzę sukcesów.

    OdpowiedzUsuń