Co powiedziałabym sobie zaczynającej naukę programowania?

By 14 lipca 2017Motywacja, Think Big

Gdzieś pomiędzy lipcem a sierpniem, mija 3 lata odkąd podjełam decyzje o zmianie branży. Każdy dzień, projekt, firma, zespół to nowe doświadczenia, które w ogólnym przypadku jeszcze mocniej utwierdzają mnie w przekonaniu, że podjęłam słuszną decyzję i IT to moja działka. Niemniej, te 3 lata dały mi też zupełnie inne spojrzenie na pracę, naukę i czerpanie satysfakcji z programowania. Dlatego, w dzisiejszym wpisie znajdziecie rady, jakich udzieliłabym sobie na samym początku programistycznej drogi.

Jesteś dzielna, odważna i możesz być z siebie dumna.

Może nie brzmi to jak rada, ale to chyba pierwsze, co przychodzi mi do głowy. Że warto siebie doceniać już od samego początku. Że podjęcie decyzji o zmianie branży, to wzięcie sporego ryzyka. Że codzienna nauka, nawet jeśli jest malutkim kroczkiem, to z drugiej strony trenuje samozaparcie, systematyczność i sumienność – tak ważne w naszej branży. I, że każdy mały sukces jest bardzo, bardzo ważny. Na początku swojej kariery bardzo surowo podchodziłam do swoich umiejętności, porównywałam się do innych, szukałam, jak dużo brakuje mi do zostania „seniorem”. Często zamiast motywacji przynosiło to smutek. Dziś, patrząc już znacznie pewniej na swoje umiejętności, a także, pracując na codzień z osobami mniej doświadczonymi dostrzegam, jak różny może być i poziom, i podejście do rozwoju. I cieszę się ,i doceniam, że robiłam (i nadal robię) swoje, śmiało wyznaczając cele i skrupulatnie je osiągając. A zamiast oglądać się na innych, skupiam się na sobie i tym, co mogę zrobić dla siebie, czy dla swojego zespołu.

Nie bój się popełniać błędów. 

Pierwsze chwile z kodem były naprawdę niezłą udręką :) A mam tu głownie na myśli lęk, że coś się nieskompilowało (proszę, początkujący przeczytajcie ten wpis i weźcie sobie te kroki do serca :)), albo, że nie działa jak powinno. Albo uczenie się pracy z IDE i ta niepewność, co się pojawi, jak kliknę w podkreślony błąd. A przecież kod nie gryzie, głupie błędy można naprawić, a ich rozwiązanie zapamiętać. I nic złego w tym, że jest się kompletnym żółtodziobem. Choć w przypadku zmiany kariery może to być dość paraliżujące – wchodzenie, już jako dorosły, na zupełnie obcy grunt. Z drugiej strony warto mieć tę świadomość, że dzięki temu, że robimy to z własnej woli i wyboru, daje nam również „fory”, a my sami powinniśmy lepiej umieć się uczyć, czy motywować do działania.

Musisz pytać, dociekać, szukać! 

Programowania nie da nauczyć się z głowy. Nie wpadniesz genialnie na pomysł jak działa dana biblioteka, albo jakiej konkretnie metody użyć. Trzeba szukać! Pytać. StackOverflow przyjacielem każdego programisty. Podobnie jak seniorzy i inni programiści w zespole, a także twórcy w sieci. Nie ma nic złego w zadawaniu pytań. Nie ma głupich pytań. Są te zadane nieprecyzyjnie, na które nawet największe guru programowania nie będzie znało odpowiedzi. Skuteczne wyszukiwanie rozwiązań problemów to chyba jedna z najbardziej prakrycznych umiejętności każdego programisty. Im wcześniej, zamiast nie działa, będziesz w stanie powiedzieć, co dokładnie źle robi twój kod (logi/debugowanie/dokłane odtworzenie czynności, które prowadzą do błędu) tym szybciej dostaniesz odpowiedź, a także lepszej jakości ona będzie.

Idealny projekt nie istnieje.

Zawsze będzie coś, co nie będzie pasować, ba twoje oczekiwania będą się zmieniać i to, co przeszkadzało wcześniej, może być tym czego najbardziej Ci teraz brakuje. W każdym projekcie szukaj czegoś, co da Ci rozwój. Nawet jeśli wiesz, że za niedługo będziesz szukać czegoś innego. Pracuj z ludźmi, staraj się dawać z siebie jak najwięcej, trzymaj się swoich standardów, próbuj zachęcać do zmian i dobrych praktyk. Nie daj się porwać marazmowi, niskiej jakości, klepaniu kodu – skup się na tym, by mimo przeszkód „zły projekt” również Cię czegoś nauczył.

Baw się dobrze! 

Działaj, ucz się, twórz, udzielaj. Miej fun. Dużo funu. Już za niedługo, jak tylko opanujesz te podstawy zobaczysz, że programowanie to była najlepsza decyzja zawodowa jaką mogłaś podjąć! Blog, społeczności, projekty, hackatony, konferencje – jest tyle fajnych rzeczy do zrobienia. A samo tworzenia oprogramowania, jak i ciągła nauka i rozwój, które z nim idą to fantastyczna sprawa!

Tak właśnie wyglądało by moje przesłanie do mnie, trochę bardziej niepewnej i początkującej. A ty co powiedziałabyś sobie na początku kariery? Śmiało pisz w komentarzach, niech ten wpis doda energii wszystkim, którzy właśnie są na tym etapie.

  •  
  •  
  •  
  •  
  •  
  • Daniel

    Przede wszystkim, na początku drogi najważniejsza jest cierpliwość w stosunku do siebie. Dobrze wymagać od siebie, ale jeśli to w danej chwili Cię dołuje to czy ma to jakikolwiek sens? Jesteś człowiekiem, błądzisz, każdy ma swój indywidualny czas potrzebny na zrozumienie. Bądź dla siebie partnerem, nie srogim Panem z batem. Codzienna, systematyczna praca – swoim tempem. A uwierz mi, że ani się zorientujesz jak będziesz się oglądać wstecz za poziomem, który wcześniej mogłaś oglądać tylko przez lornetkę.

    • :)

    • Saracen

      Ja pamietam jak 12 lat temu rzucalem ksiazkami po scianach uczac sie C, zaglebiajac sie we wskazniki do wzkaznikow do innych wskaznikow, zeby to zrozumiec, cierpliwosc i dystans to jedyna droga ratunku w programowaniu.

  • areku.san

    Bardzo dziękuję Ci za ten wpis, świetna strona :) Podjęłam decyzję o zmianie branży w tym roku, długo biłam się z myślami czy warto ryzykować, wszystko mam już poukładane, kredyt hipoteczny na głowie, wymagania ciągle rosną a obecna praca nie sprawia mi radości, czasem nie mam czasu na sen, ale ile można żyć od wypłaty do wypłaty bez satysfakcji z pracy zawodowej? Latka lecą i nie można się oszukiwać, praca to nie tyko praca, pochłania większą część życia.
    Zaryzykowałam na razie jestem na początku drogi ale mam nadzieję, że uda mi się osiągnąć cel :) Małymi kroczkami do przodu :)

    Zastanawiałam się nad kursem javy np. organizowaną przez SDA (software development academy), czy ktoś może wypowiedzieć się na temat tych szkoleń czy warto?

    • Bugiel Marek

      Co prawda nie wiem nic o SDA, ale wiem co nieco o zaczynaniu nauki JAVY (i programowania w ogóle). Polecam zacząć od tutoriali Johna z Cave of Programming, z yt. Oczywiście pod warunkiem, że nie jest się na bakier z angielskim, w przeciwnym razie nauka angielskiego powinna iść równolegle do nauki programowania (w moim odczuciu), bo angielski jest niezbędny. Ja ucząc się korzystam w wielu źródeł, niektóre tutoriale/artykuły/książki/fora opisują zagadnienie/problem lepiej, dogłębieniej od innych – np. tutorial ww. Johna o Singleton Pattern jest dość mizerny, za to Ranjith ramachandran na yt ujmuje problem z wielu perspektyw, taki tutorial wsparty rozdziałem z książki GoF pozwala mieć jako taką wiedzę o Singletonie. Problem tak naprawdę jest selekcja materiałów, bo nikt nie przerobił wszystkich tutoriali nie przeczytał wszystkich książek, nie zaglądnął do każdego bloga, żeby móc udzielić odpowiedzi, dwa, często sprawa jest subiektywna, jedni wolą wideo tutoriale, inni książi, jedni wolą taki sposób uczenia, drudzy inny. Nie ma złotej metody. To co najważniejsze w nauce programowania zostało tak naprawdę napisane w artykule: wiara w siebie, systematyczność, dociekliwość, radość.

      • Ano znalezienie wartościowych i atrakcyjnych dla siebie materiałów do nauki to ważna i trudna sprawa, świetnie to ująłeś.

    • Tak jak w komentarzu, który się pojawił, musisz się zastanowić jak lubisz się uczyć, co Ci jest potrzebne, czy nauczyciel i grupa znacznie bardziej poprawią twoją motywacje i efektywność, czy masz znajomego programistę, który może pomóc, czy lubisz uczyć się z książek, tutoriali, kursów … A jeśli już zdecydujesz się na kurs, to warto poszukać wszystkie dostępne opcje i właśnie popytać absolwentów o wrażenia (ale znowu z uwagą, że każdy z nas do efektywnej nauki potrzebuje czegoś innego).

  • Dorota Zelga

    Pozytywne :) zgadzam się w każdym akapicie.

  • marck k

    Super :) sledze wasz blog juz od duzszego czasu i cos juz malo technicznych wpisow o nowych technologiach.
    pozdrawiam

    • Wpisów technicznych mniej z dwóch przyczyn – mamy znacznie mniej czasu, więc łatwiej i szybciej napisać przemyślenia o programowaniu/ byciu dobrym programistą ogólnie, niż o technologii, a dwa, ponieważ, nie chcemy by na tym blogu zaczęły pojawiać się bardzo specyficzne, ale i przypadkowe tematy. Niemniej, powoli do przodu idziemy z projektem bilet, który w systematyczny sposób wprowadzi nowe technologie i zagadnienia.

  • Szymon Draga

    Bardzo pocieszający wpis. Ja dwa tygodnie temu zacząłem pracę jako programista, i jestem przerażony liczbą różnych technologii i rzeczy do nauki. Staram się jednak być systematyczny i codziennie nauczyć się czegoś nowego, chociażby błahego ;)

  • Joanna Bochyńska

    Bardzo fajny artykuł! Dobrze jest przeczytać, że te wszystkie odczucia i niepewności są na początku dość powszechne. Ja sama pracuje od kilku miesięcy na stanowisku juniorskim i właśnie łapię się na tym, ze często zamiast docenić to co już umiem, skupiam się na tym, ile mi brakuje, żeby wiedzieć tyle co bardziej doświadczone osoby. Ale staram się z tym walczyć. I mam nadzieję, że za kilka lat nadal będę zadowolona z decyzji o przebranżowieniu: )

  • Alexandretta

    Fajnie poczytać przemyślenia kogoś kto całą tą drogę ma już za sobą :) Ja dopiero niedawno zaczęłam się uczyć programowania tak na serio-serio, wcześniej zdarzało mi się już klepać jakieś drobne programiki i sprawiało mi to straszną frajdę. W końcu uznałam że nie ma co, skoro mi się to podoba to idziemy na całość! Boję się tylko jednej rzeczy… że nauczę się w domu języka – składni, bibliotek etc, ale potem, jakbym poszła w tym pracować, to dostanę do rozwiązania jakiś problem i nie będę wiedziała co z nim zrobić. Chodzi mi o brak znajomości algorytmów, wzorców projektowych, takich rzeczy… Ktoś byłby w stanie powiedzieć jak tego typu rzeczy wyglądają na początku, na stanowiskach typu junior?

    • ola

      Nie napisze z perspektywy juniora – ale stazysty . Mnie osobiscie wiele rzeczy i ogrom projektu ( w porownaniu do dotychczasowych w domu) przerazilo , jednak wszystkiego idzie sie nauczyc w praniu :) Do tego – nalezy szukac podpowiedzi w internecie i pytac :) Sama zaczelam sie uczyc danego jezyka pod koniec lutego , a teraz pracuje jako stazysta wlasnie w danej technologii i uwazam ze to jest dopiero najlepsza nauka – w praktyce przy realnym komercyjnym projekcie .

    • Hej! Pierwsza praca wygląda bardzo różnie niemniej w firmie wiedzą, że to Twoja pierwsza praca, więc zazwyczaj współpracownicy są otwarci na pomoc, pytania itp. Ogólnie większość inżynierskich prac wygląda w ten sposób, jest problem, nie wiadomo jak go rozwiązać, trzeba szukać, próbować itp. Natomiast ilość wiedzy dostępnej w internecie powoduje, że samo szukanie nie jest aż tak straszne. Co do algorytmów, wzorców projektowych – taką wiedzę można uzupełniać na bieżąco, algorytmy często są odpytywane na rekrutacjach, rzadko jednak bezpośrednio musisz je implementować, zazwyczaj język/biblioteka ma już je w sobie. Co do wzorców projektowych – na pewno warto poczytać, niemniej znowu, w praktyce znacznie łatwiej je przyswoić. Podsumowując, pierwsza praca to zazwyczaj bardzo intensywny czas, gdzie uczysz się bardzo, bardzo dużo, jednak twój zespół powinien zdawać sobie z tego sprawę i Ci w tej nauce pomagać ;) A na pewno nie rzucać niewyobrażalnych wymagań.

  • mynyq

    Witajcie,

    Aktualnie pracuje w instytucji zaufania publicznego… :D jednak otaczają mnie programiści: koledzy, znajomi chłopaka i czasami opowiadają o swoich projektach i co najbardziej mi się podoba – powodzenie zależy tak naprawdę o nich. Dlatego szperam po necie jak i czy w ogóle się przebranżowić. Trochę się boje, bo aktualnie kończe już za pół roku 1 kierunek studiów, i co? Tak zaczynać od nowa? Od zera? Co z aktualną pracą? Masakra. Jednak postanowiłam i chcę spróbować. Chcę zacząć od projektowania stron (już mi koledzy polecili zacząć od html i css, a potem powoli dorzucać javascript. Potwierdzacie?) Chciałabym też zająć się layotami czyli szatą graficzną. Jednak zastanawiam się czy to będzie jakieś rentowne? Kolega powiedział, że stronki są dobre na początek, aby posmakować „Wstępu” programowania. Jednak już 16 latek po pół roku nauki może robić to samo i zaniżać stawki, bo ma mniejsze wymagania i potrzeby finansowe. Więc czy zatem lepiej w aplikacje? Kogo najczęściej pracodawcy szukają? Kogoś od tworzenia aplikacji? I jakie języki są najbardziej „pożądane” u pracodawców aktualnie i ogólnie są na topie?

    • Na wiele z tych pytań znajdziesz odpowiedź tutaj: http://kobietydokodu.pl/faq-chce-zaczac-programowac/, co do tego, kogo pracodawcy szukają, to szukają dobrych, lub dobrze rokujących pracowników – pożądanych technologii jest naprawdę wiele. Pracy jest dużo zarówno w frontendzie jak i backendzie.

  • Agata Krawczyk

    Super post ku pokrzepieniu serc. Dzięki, tego mi było trzeba!<3

  • Zbychu Pan

    Co za faszystowska strona… dostałem bana za podważanie mitu o dyskryminacji kobiet w IT. Faszystowskie metody… a starałem się zachować kulturę. Żenada.

    Przypomina mi się prl… ale nigdy nie miałem dobrego zdania o tej stronie, kobiety próbują się promować dla własnych celów, a nie żeby pomóc kobietom.

    Powodzenia życzę z cenzurą i zadbam, aby udokumentowanie bana dotarło do szerszej społeczności. Pozdrowienia z Wykopu.

  • Monika

    Absolutnie fantastyczny blog! Nie mam pojęcia jak tu trafiłam, ale to chyba najlepszy przypadek jaki mógł mi się przytrafić. Niedawno rozpoczęłam naukę programowania, również chcę zmienić branżę, na start wybrałam Python’a. Super mnie to wciągnęło, szło mi całkiem nieźle (podobno), niestety ostatnio miałam momenty zwątpienia i zniechęcenia, bo tak jakoś wszystko nie działało i nie umiałam sobie z tym sama poradzić :D No i też sama na sobie wywierałam silną presję.. Na szczęście znalazłam się tutaj, przeczytałam wiele wpisów dla żółtodziobów, poznałam Twoją historię Aniu i zmotywowałam na nowo! Dziękuje Ci za to co robisz!