Z głową

Złe powody do nauki programowania

Nowy rok to dla wielu z nas doskonała okazja do stworzenia listy planów, także tych dotyczących rozwoju i nauki nowych umiejętności. Programowanie jest jedną z tych dziedzin, których posiadanie daje spore możliwości. Doświadczeni programiści mają teraz gwarancję zatrudnienia, świetną płacę, możliwości pracy właściwie na własnych warunkach. Brzmi jak marzenie? Nic dziwnego, że wielu ludzi co roku decyduje się na naukę programowania.

Czy istnieją złe powody do nauki programowania?

Jeśli Ty również postanowiłaś lub postanowiłeś rozpocząć w tym roku naukę programowania, potraktuj proszę ten tekst jako mały rachunek sumienia – sprawdzenie czy masz szansę wpaść w którąś z motywacyjnych pułapek, które opisane przeze mnie powody do nauki programowania mogą spowodować.

A wiecie skąd to wiem? Bo to były właśnie naczelne powody, dla których zeszłej jesieni zasiadłam, niczym zagubiony talent polskiej inżynierii, do programowania. Złapanie dobrego rytmu i zdrowego podejścia zajęło mi sporo czasu, a frustracje i wątpliwości dopadały mnie regularnie. Nadal nie jestem wolna od takich przeszkadzajek, ale z celów, które wyznaczyłam sobie po jakimś czasie i powodów, dla których obecnie się uczę, jestem dużo bardziej zadowolona.

To co, chcesz programować? Super, tylko zapal ostrzegawczą lampkę jeśli jedyne co Cię do tego popycha to fakt, że:

Twój partner życiowy jest programistą

Ogromnie dużo adeptek i adeptów programowania zaczyna, bo mają z programistami styczność w domu lub w pracy. O tym drugim przypadku więcej napiszę w kolejnym punkcie, teraz skupmy się na pozornie bardzo pomocnej konfiguracji. Pomocnej, bo to tak, jak mieć na pełen etat mentora i wsparcie przy każdej możliwej trudności na drodze. Pozornie pomocnej, bo w rzeczywistości wcale to tak dobrze nie wygląda.

Po pierwsze, zbyt duże poleganie na takiej pomocy jest bardzo, bardzo kuszące – zwłaszcza jeśli Twój partner czy partnerka posługują się tą samą technologią, której się uczysz. Poszukiwanie odpowiedzi i dociekanie przyczyn błędów są nieodzownymi częściami życia każdego programisty. Ale jak tu nie poprosić o pomoc, kiedy wiesz, że zamiast żmudnego (i być może finalnie nieudanego) dochodzenia do sedna problemu, możesz rozwiązać go w kilka minut z czyjąś pomocą?

Dla mnie najtrudniejszym momentem w programowaniu jest rozpoczęcie rozwiązywania jakiegoś zadania. Samo ulepszanie kodu czy sprawdzanie czemu nie działa jest przyjemnością, ale przejście od czarnej pustki do pierwszych prób ogarnięcia tematu wydaje się często przepaścią. Kiedyś bardzo często w takim momencie zaczepiałam domowego Python deva żeby skonsultować strategię na wykonanie kodu. Teraz staram się działać samodzielnie tak długo, jak się da i daje to dużo lepsze efekty. Satysfakcja z działającego (lub prawie działającego) swojego własnego kodu jest ogromna.

Trzeba też pamiętać, że nie każdy jest urodzonym pedagogiem. Ktoś, kto nigdy nie miał okazji tłumaczyć komuś zasad programowania może, mimo najszczerszych chęci, być powodem mętliku w głowie czy nawet poważniejszych frustracji. Jak myślicie, w jakiej relacji łatwiej o niepotrzebne negatywne emocje? W tej z własnym chłopakiem czy obcym mentorem?

No właśnie, skoro już o emocjach mowa. Trzeba pamiętać, że poleganie na własnym partnerze obciąża też tę drugą stronę. I to nie tylko czasowo, ale właśnie emocjonalnie – kto chciałby czuć się, na przykład, kiepskim nauczycielem?

Chcesz zdobyć szacunek, ewidentnie nie przysługujący osobom “nietechnicznym”

Klasyczny problem pracy w IT, gdzie świat dzieli się na “technicznych” i “nietechnicznych”. Czy chęć nauki programowania aby podnieść swoje kwalifikacje na stanowisku project managera czy testera jest dobrym pomysłem? Oczywiście, że tak. Ba! Uważam, że taki Python bardzo przydaje się w działach marketingu czy “officowych” gdzie wykonuje się sporo czasochłonnej pracy, którą można zautomatyzować.

Ale błagam, błagam, nie zabierajcie się za programowanie żeby udowodnić coś innym. Jeśli ktoś ma w zwyczaju lekceważenie ludzi, bo nie posiedli umiejętności programowania, to jest po prostu kiepskim współpracownikiem i wysoce prawdopodobne, że wcale nie jest świetnym programistą. W IT łatwo wpaść w kompleksy, ale można znaleźć też wspierających ludzi. Od toksycznych proponuję się odcinać, bo szanse na zdobycie ich szacunku są i tak niskie.

Znasz język obcy, a Python to właściwie taki norweski tylko bardziej po angielsku

Zazwyczaj mówię ludziom, że podstawy programowania są prostsze niż mogłoby się wydawać. Trudniej robi się dopiero po jakimś czasie. Zanim na dobre zabrałam się za naukę Pythona miałam kiedyś okazję wziąć udział w dwudniowych warsztatach Ruby. Wyszłam z nich z koślawą, ale działającą aplikacją, oraz przekonaniem, że programowanie jest naprawdę łatwe. No, to teraz wiem, że nie jest.

Porównywanie języków programowania do języków obcych jest częste i niepozbawione sensu. Sama jestem podwójnym filologiem więc wydawało mi się, że skoro podstawy języków programowania rzeczywiście przypominają nieco egzotyczny angielski (mówisz takiemu Pythonowi print i on coś z siebie wypluwa, całkiem proste, nie?), to wystarczy opanować bazę „słówek” i można płynnie posługiwać się danym językiem. Niestety – im dalej w las tym większą rolę gra bardzo specyficzny sposób myślenia, polegający na maksymalnym upraszczaniu swojego kodu, poszukiwaniu optymalnych rozwiązań i wymagający budowania swoich koncepcji od zera.

Kontynuując porównanie do języka obcego – coraz mniej w tym tłumaczenia z języka na język, a coraz więcej tworzenia własnych treści, korzystając z mnożących się zasad (a czasem nawet tworzenia swoich). Programowanie to ciągłe doskonalenie swojej znajomości języka, ciągłe poszukiwanie lepszych sposobów na zrobienie danej rzeczy, a w pewnym momencie często nawet poszukiwanie nowego języka do opanowania, bo ten dotychczasowy stracił swoją pozycję w branży.

Chcesz sobie coś udowodnić, a przecież programowanie jest dla mądrych ludzi

Wierzcie lub nie, sporo jest niemądrych programistów. Takich co potrafią sprawić, że strona internetowa nie wywala się na żadnym urządzeniu, ale raczej nie nazwalibyście ich bystrymi. Tak samo jak sporo jest niemądrych architektów, nauczycieli czy blogerów.

Programowanie nie jest ścieżką wyłącznie dla wybranych, wybitnych jednostek. Oczywiście, wśród najlepszych specjalistów w tej dziedzinie są prawdziwi wymiatacze. Ale do tej branży trafia coraz więcej osób, które, mniej lub bardziej przypadkowo, dokonały lukratywnego wyboru jeszcze w gimnazjum czy w liceum i teraz mogą pochwalić się solidną umiejętnością programowania. Żadna tiara przydziału nie powiedziała im “ze względu na wasze wybitne zdolności trafiacie na informatykę, a reszta głupków pójdzie na inne kierunki”. To nie tak.

Jeśli chcesz sobie udowodnić, że stać Cię na zrobienie czegoś spektakularnie intelektualnego i intelektualnie spektakularnego, to programowanie jest jedną z opcji, ale na pewno nie jest opcją jedyną. Można, na przykład, napisać fajną książkę – mi by tam to bardzo zaimponowało.

Chcesz szybko zdobyć pracę, po której złote góry i chwała

To akurat był najmniejszy z moich powodów do rozpoczęcia nauki programowania, ale widzę, że często przewija się jako główny motywator wśród początkujących koderów. Rzeczywiście – świetni programiści zarabiają bardzo duże pieniądze, nie muszą też nigdy martwić się o brak propozycji pracy. Początek drogi, pod względem finansowym, wygląda zgoła inaczej. Weź pod uwagę, że jeśli już posiadasz jakieś doświadczenie w innej dziedzinie, to może się okazać, że dotarcie w zupełnie nowej dziedzienie do progu finansowego, który jesteś w stanie osiągać teraz, zajmie całkiem sporo czasu.

Może być nawet tak, że w pełni przekwalifikowanie się na programistę w ogóle Ci się nie opłaca finansowo. Wiele zawodów (tak jak wspomniane stanowiska marketingowe, project managerskie czy, na przykład, analityczne) można “podbić” pewną wiedzą z zakresu programowania i, będąc wyposażonym w taką mieszankę kompetencji, osiągnąć świetne zarobki.

To jak z tą Twoją motywacją do nauki?

Wymieniłam w tym wpisie dość popularne powody do nauki programowania, szczególnie na samym początku kiedy jeszcze nie wiadomo jak ta tajemnicza i nieco wyidealizowana czynność tak naprawdę wygląda. I jeśli Ty też zaczynasz, bo [powyższe powody], to nic straconego. Spróbuj kodowania, sprawdź czy wpadasz w stan, w którym czas leci sam, a długie poszukiwanie poprawnej odpowiedzi budzi adrenalinę, a nie złość. Zastanów się nad tym czy Twoja motywacja do nauki jest czymś więcej niż wynikiem niesprzyjających okoliczności w Twoim życiu (czy też tych sympatycznych i pozornie sprzyjających – patrz powód pierwszy).

Ten wpis nie ma nikogo zniechęcić do samej nauki programowania, o nie! Za każdym razem kiedy czytam w internecie wpis nowej adeptki programowania lub gdy widzę pełną salę na cotygodniowych zajęciach z Pythona, na które chodzę, czuję się świetnie widząc jak wiele osób podąża podobną drogą.

Na początku drogi trudno być pewnym czy programowanie to jest coś co chce się robić na pełen etat i na całe życie – w tym akurat nie ma nic złego. Pamiętaj, że sama umiejętność automatyzowania sobie pewnych zadań czy, na przykład, własnoręcznego upiększania bloga to już bardzo duże ułatwienie życia i okazja do podniesienia swojej wartości na rynku pracy. Ale niezależnie od tego, co przyniesie przyszłość, decyzję o nauce programowania warto wesprzeć analizą swoich celów.

Dobra wiadomość dla wszystkich-nieprogramistów? Wiecie co mówią – najlepszy moment żeby zacząć był parę lat temu, ale drugi najlepszy jest teraz. Do roboty więc!

Tyle ode mnie. Jaki jest powód, który Ciebie napędza do nauki programowania? A może któryś z powyższych był Twoim przekleństwem (lub przeciwnie, sprawdził się świetnie)? Daj znać w komentarzu!

9 komentarzy

  • Reply
    Rita Fly Nerd
    7 stycznia 2018 at 13:37

    Bardzo fajny tekst, w wielu punktach pokrywa się z moimi przemyśleniami, ale chyba już trochę „siadłam” w tym programowaniu na tyle, że zapomniałam jak ważne są same powody programowania.
    Często patrzę na wpisy dziewczyn i myślę „hoho z taką motywacją, to może długo nie potrwać” – z zasady nie komentuję, nie ma sensu, komuś podcinać skrzydeł. Może się mylę, może będzie inaczej.

    Najgorzej mi się czyta o osobach, które chcą się przebranżowić dla zarobków programisty. To zdecydowanie nie tak. Po studiach informatycznych i 3 latach doświadczenia, zdecydowanie nie zarabiam kwoty 5 cyfrowej i nie widzę w tym nic dziwnego. Programowanie to ciągła nauka. Niestety, sporo osób wierzy , że zrobi 2-3-6 miesięczny kurs pogramowania i dostanie stawkę regular developera. Potem zdziwienie, że staż czy stanowisko juniorskie jest niewiele lepiej płatne niż praca sprzedawcy w salonie GSM, a tamten ma jeszcze prowizję od umowy.

    Osoby, które uczą się programowania bez pasji nie biorą pod uwagę, że już dziś tworzy generatory kodu, generatory stron www, pisze się algorytmy, które piszą algorytmy. Możliwe, że praca w IT w niedalekiej przyszłości przestanie być prestiżowa. Może tak być i co wtedy?
    Jeśli robi się to, co się lubi o wiele łatwiej jest iść do przodu i się nie poddawać 🙂

    • Reply
      Ania
      7 stycznia 2018 at 13:43

      O to, to właśnie! Oprócz chęci szybkiego osiągnięcia wysokiego statusu często jest jeszcze przekonanie, że „raz się nauczę i będzie na zawsze!”. Dziękuję za komentarz 🙂

      • Reply
        Rita Fly Nerd
        7 stycznia 2018 at 13:47

        no właśnie, a w tym naszym IT nie ma nic danego raz na zawsze, jest raz.. do najbliższego update’u, nowego trendu ^^

    • Reply
      anonymous
      7 stycznia 2018 at 15:44

      Przefajny tekst – szczególnie kwestia osób nietechnicznych podchodzących do programowania ‚żeby programiści mnie lubili’ – albo, o zgrozo, żeby pokłócić się z nimi o planowany czas wykonania zadania po tygodniu nauki Pythona, bo i takie rzeczy się zdarzały.

      Megaciekawą sprawą jest ciągłe porównywanie nauki Pythona do nauki języka – temat, który ugryzę z nieco innej strony niż Ty w tekście. Prawda, programowanie i wszelkie procesy myślowe nie mają niemal nic wspólnego z porozumiewaniem się z obcokrajowcami, ale z tego powodu takiej motywacji bym nie kasował, bo język obcy wciąż daje jedną, kluczową przewagę.

      Nawet jeśli głupia znajomość angielskiego nie tworzy solidnej bazy zapewniającej sukces i konfetti z sufitu przy każdym udanym deployu kodu na produkcję, to jednak daje coś absolutnie bezcennego: dostęp do zagranicznych źródeł wiedzy. Jako programista z przeszczepu nigdy nie zaszedłbym tak daleko, gdyby nie anglojęzyczne książki, kursy, przykłady i tony komentarzy w repozytoriach na GitHubie. Może to tylko kwestia upodobań i zwyczajna nieznajomość polskich terminów technicznych, ale jakiekolwiek źródła w języku polskim były w moim przypadku tak bardzo nieskuteczne, że wręcz współczułem każdemu, kto jest na nie skazany.

      @Rita Fly Nerd
      Rozumiem, że mój przykład nie musi tworzyć jakiejś reguły, ale sam przebranżowiłem się wyłącznie z powodów finansowych – i to dość późno, bo na pierwszym roku studiów magisterskich (licencjat mając już za sobą). Nigdy nie oczekiwałem 5-cyfrowej kwoty (choć szansa na taką staje się coraz bardziej realna i mam nic przeciwko temu ;D ), a już przy swoim pierwszym stażu robionym równolegle ze studiami zaproponowano mi wypłatę na tyle wysoką, że mogłem się wreszcie samodzielnie utrzymywać. Jasne, w Biedronce pieniądze były podobne – ale z roku na rok wynagrodzenie rosło w tak dobrym tempie, że wszelkie inne zawody stały się w moich oczach zwyczajnie nieopłacalne, nie wspominając już o ścieżce kariery.

      Nie mogę się zgodzić z tym, że ktoś, kto motywuje się wyłącznie pieniędzmi dostanie głównie miskę zawodu i rozczarowania po każdym miesiącu pracy, bo „gdzie indziej płacą podobnie”. Nawet jeżeli stawka regular developera jest poza zasięgiem, to dla początkującego programisty pierwsza wypłata często znacznie odbiega od zdecydowanej większości ofert dostępnych na rynku. Szczerze? Nie jestem nawet w stanie wskazać jednego zawodu, na który można by przekwalifikować się w domowym zaciszu i który gwarantowałby nie tylko tak ogromne zarobki po pierwszym roku pracy, ale i tworzyłby tak rozległe perspektywy na rozwój. Powiem więcej – chętnie zobaczę przykład zawodu, do którego można przygotować się w podobny sposób i który po trzech latach doświadczenia zapewni wypłatę choćby i o tysiąc złotych netto mniejszą. Nie jestem złośliwy, nie czepiam się – naprawdę nie jestem w stanie znaleźć takiego przykładu, ale może wynika to z mojej stosunkowo ograniczonej wyobraźni.

      Naturalnie, nie mówię też, że opieranie się na takiej motywacji to świetna sprawa. Mam świadomość, że mi się po prostu „udało” i fakt, że uwielbiam swoją pracę nie oznacza, że każdy kto ślini się przy teledyskach z raperami rzucającymi gotówką będzie w roli programisty najszczęśliwszą osobą na świecie. Wciąż, zdecydowanie nie przestawałbym używać wynagrodzenia jako marchewki dla każdego, kto potrzebuje motywacji.

    • Reply
      Asia Wu
      8 stycznia 2018 at 11:20

      Ucząc się javy ugrzęzłam nad głupim problemem, który spowodował, że nie mogłam iść dalej. Ogarnęłam się obeszłam go i za jakiś czas robiąc inne zagadnienie rozwiązałam to co wydawało się nie do ogarnięcia. 😀 Wymyślając problemy do rozwiązania często bazuję na gotowych definicjach, albo podpatruję programy. Nie wyważam otwartych drzwi.

  • Reply
    programmer-girl
    7 stycznia 2018 at 13:54

    Tekst bardzo mi się podoba, ale niestety nie mogę się zgodzić z częścią „Twój partner życiowy jest programistą”: proszenie o pomoc. Według mnie tutaj należy zachować umiar i poradzić to, co warto poradzić chyba każdemu Juniorowi. Najpierw spróbuj rozwiązać problem sam. Jeśli okaże się, że po jakimś okresie czasu nadal jesteś w punkcie wyjścia lub masz 2 propozycje rozwiązań i nie wiesz, które jest lepsze (a zaimplementowanie obydwu rozwiązań i ich porównanie zajmie trochę czasu) – poproś o pomoc. Oczywiście nie po 5 minutach. Należy nauczyć się szukać rozwiązań i próbować je implementować. Ale siedzenie samemu 8h nad problemem może spowodować niepotrzebną frustrację i opóźnienie w projekcie, podczas gdy osoba doświadczona w 5 minut może wskazać błąd i nakierować na jego rozwiązanie. Ważne jest właśnie to nakierowanie – czyli nie zawsze warto dawać uczniowi gotowe rozwiązanie na tacy, tylko pozwolić, żeby sam (za pomocą naszych wskazówek) doszedł do niego. Satysfakcja gwarantowana!

    • Reply
      Ania
      7 stycznia 2018 at 14:05

      Wygląda na to, że się zgadzamy tyle, że… ja na początku nie miałam tyle zdrowego rozsądku i przesadzałam w jedną stronę. Masz rację, że nie ma też co umartwiać się nad kodem w imię samodzielności (i nie jest to też pożądana cecha później w pracy) – dzięki za komentarz!

  • Reply
    Aga
    9 stycznia 2018 at 11:32

    Ja tam zaczęłam się uczyć programowania dla pieniędzy, więc nie dla żadnych „górnolotnych” powodów, a i tak dobrze na tym wyszłam.

    • Reply
      Ania
      9 stycznia 2018 at 18:46

      Wcale dobry powód o ile zdawałaś sobie sprawę z tego, że gratyfikacja finansowa nie przyjdzie błyskawicznie 🙂

Leave a Reply