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.

Skąd się tutaj wzięłam

W kilku odcinkach spróbuję opisać, co zrobiłam do tej pory, by z młodszej księgowej ze znajomością jednego z języków skandynawskich, a wykształceniem humanistycznym w dziedzinie filologi angielskiej zostać testerką oprogramowania.

W mojej dotychczasowej karierze występowałam w różnych rolach. Z racji wyuczonego zawodu, przez dwa lata nauczałam języka angielskiego w szkole podstawowej, a przez następny rok zajmowałam się tłumaczeniami w biurze tłumaczeń. Potem wyjechałam na cztery lata do Skandynawii, dołączając do męża pracującego jako programista, gdzie miałam okazję nauczenia się kolejnego języka. Dodatkowo zrobienie licencjatu z zarządzania informacją, pozwoliło mi na realizację kilkumiesięcznych praktyk studenckich polegających na wsparciu projektu informatycznego w jednej z firm farmaceutycznych. Projekt ten nie wymagał dogłębnej znajomości narzędzi czy zagadnień informatycznych, a raczej przeanalizowania potrzeb użytkowników i dostosowywania do nich istniejącej platformy informatycznej.

Po powrocie do Polski, znajomość języka dość unikalnego na rynku wrocławskim, pomogła mi w znalezieniu pracy w tzw. shared service center. Po dwóch latach codziennego powielania tych samych czynności w zawodzie księgowej poczułam, że chciałabym coś zmienić, że chciałabym móc rozwijać się intelektualnie w nowym kierunku. Nie widziałam dla siebie takiej możliwości w firmie, w której pracowałam. Gdy odchodziłam na urlop macierzyński, a następnie wychowawczy, postanowiłam znaleźć dla siebie nowe, ciekawsze zajęcie.

Kłopot w tym, że nie miałam pomysłu na dalszą karierę. Próbowałam z pomocą coachingu odnaleźć swoje powołanie, ale nie czułam, że potrafię nazwać jedną pasję, która przyniosłaby mi zawodowe i ekonomiczne spełnienie. Nie kieruje mną jedna konkretna pasja, a raczej ogólnie pojęta ciekawość świata i zdolność dostosowywania się do nowych sytuacji. Zresztą nie wydaje mi się, że musimy podążać za jakąś wielką pasją, aby poczuć, że osiągnęliśmy sukces. Stąd, za sugestią męża, postanowiłam spróbować przebranżowić się na testerkę oprogramowania. Nie dlatego, że codziennie rano zaczynam dzień od czytania o nowinkach technicznych i znam wszystkie najnowsze modele telefonów komórkowych. Wybrałam testowanie, ponieważ chciałabym mieć dobrze opłacalne zajęcie w sektorze, który ma jeszcze przed sobą długą przyszłość. Ponadto podoba mi się kultura pracy w branży informatycznej. Wydaje mi się być bardziej nastawiona na współpracę zespołową i bardziej cenić ludzi jako jednostki. W korporacji raczej czułam się jak trybik, od którego niewiele zależy i który bardzo łatwo wymienić na inny.

Ponieważ jednak uważam się za umysł humanistyczny i czuję, że nie dla mnie są studia informatyczne, to mierząc siły na zamiary, chcę spróbować testowania, gdzie aby zacząć wystarczy znajomość programowania na poziomie podstawowym. W maju 2016 zapisałam się więc na podyplomowe roczne studia w Wyższej Szkole Biznesu we Wrocławiu na kierunku Tester oprogramowania dla aplikacji mobilnych i serwerowych. Mam nadzieję, że da mi to podstawy wiedzy i pozwoli poczuć, że mam szanse na rynku pracy w nowej dla mnie dziedzinie. Ponieważ jestem dopiero na początku drogi przekwalifikowywania się, nie znam skutecznej recepty na osiągnięcie swojego celu, ale zapraszam Was do uczestniczenia razem ze mną w tej drodze i przekonania się wspólnie, czy to co robię zaprowadzi mnie do celu.

niedziela, 23 października 2016

Początek


Logo projetu girls 4 girls

Brałam wczoraj udział w wykładach organizowanych przez Nokię w ramach akcji girls 4 girls. Celem wykładów i warsztatów jest przekonanie dziewcząt i kobiet, że warto zainteresować się technicznymi dziedzinami nauki i wybrać związaną z nimi karierę.

Nie udało mi się zapisać na warsztaty z programowania, bo zabrakło już miejsc, ale posłuchałam czterech wykładów dotyczących testowania. Pierwsza opowiadała o swojej drodze przebranżowienia Katarzyna Meinhardt. Przedstawiła ona inspirujące świadectwo, że można zostać testerką nie mając informatycznego zaplecza edukacyjnego. Jej pytanie do publiczności "Czy któraś z Was chciałaby się przebranżowić?" wywołało pojawienie się lasu rąk. Dało mi to do myślenia, że na warsztaty nie przyszły same technicznie wykształcone dziewczyny, ale wiele osób w sytuacji podobnej do mojej. Czyli próbujących nabyć umiejętności zupełnie im do tej pory obce. Co więcej, to wystąpienie dodało mi otuchy, bo skoro dziewczyna zajmująca się wcześniej handlem została testerką, to może i mi uda się testowania nauczyć.

Po wystąpieniu Kasi, w przerwie przed kolejnym wykładem wiele dziewczyn podchodziło, aby porozmawiać, zadać dodatkowe pytania i prosić o wskazówki, co dokładniej trzeba zrobić, żeby zostać testerką. Obserwując tę sytuację, ba nawet biorąc w niej czynny udział, coś mnie natchnęło. Dziewczyny szukają konkretnych wskazówek; są ciekawe, co zrobić, żeby się przebranżowić bez konieczności zaczynania kolejnych studiów. Ta myśl zmotywowała mnie do spisania mojej drogi krok po kroku. Ja chętnie poczytałabym bloga Kasi Meinhardt, gdyby go prowadziła, żeby poznać jej proces stawania się kimś zupełnie nowym zawodowo.

Spodobała mi się inicjatywa wspierania się kobiet zaproponowana przez girls 4 girls. Drugi wykład Arletty Jasonek prezentujący po krótce na czym polega zawód testera i jakie cechy osobowości pomagają zostać testerem (m.in. komunikatywność, dociekliwość, dbałość o szczegóły) utwierdził mnie w przekonaniu, że może mi się udać. W duchu solidarności i wzajemnego wspierania się kobiet, postaram się więc dzielić swoimi przeżyciami i przemyśleniami na łamach bloga. Być może mój przykład pomoże którejś z Was podjąć decyzję o zmianie zawodu.
Skoro na testowanie porywa się anglistka, to czemu Wy miałybyście się bać spróbować...