Czy przemknęło Ci kiedykolwiek przez myśl aby pracować w IT? Śniło Ci się rozwijanie ekstremalnie popularnych aplikacji z milionem pobrań na liczniku? Rozwiązywanie zawiłych problemów przy wtórze fajerwerków i muzyki Mozarta? Pisanie przezabawnych artykułów, które będą miały więcej share’ów niż kot grający na fortepianie? Stop, stop. Chyba mnie trochę poniosło…
A jednak, tak właśnie pracuję! A skoro mi się udało, Tobie również może. Dlatego z nieukrywanym zażenowaniem opowiem nieco o swoich perypetiach, okraszając je przydatnymi materiałami do nauki. Pewnie masz już takich historii po uszy, ale będą obrazki. Nie przejmuj się także, jeżeli nie umiesz jeszcze zbyt wiele, bo aby zacząć w IT wystarczy jeden mały…
KAPRYS
Wiem, to frazes, ale frazes prawdziwy.
Moją pierwszą przygodą z programowaniem był kurs języka C++ realizowany w ramach programu studiów. Co prawda byłem studentem fizyki, nie informatyki, lecz w naszym kraju stopień powiązania przedmiotów z kierunkiem bywa różny. Nie mając uprzednio styczności z programowaniem (świecąco-mrugającej strony w HTML-u nie wliczam do rozrachunku) udało mi się zdać przedmiot bez większych obrażeń. Pomyślałem wtedy: “Cóż, nie było tak źle. Ale przecież nie będę do końca życia pisał kodu!”. Widzicie, miałem ambicje.
Będąc na studiach drugiego stopnia (kiedy zacząłem zdawać sobie sprawę jak bardzo nieprzydatną społeczeństwu osobą jest magister inżynier fizyk) zdecydowałem, w przypływie ciekawości, zapisać się na pierwszy rok informatyki. Już od samego początku zapoznano nas z narzędziami do walki — poznawaliśmy chociażby podstawy programowania w Pythonie. Nagle okazało się, że kodzić można łatwo i przyjemnie. I aby zacząć programować, trzeba po prostu zacząć pisać kod.
Nie przejmuj się na razie wyborem języka, spróbuj i sprawdź, czy to w ogóle Ci odpowiada. Wystarczy ten 15-minutowy kurs Ruby. Może kilka tutoriali z Codecademy albo Codeschool na dokładkę. Dla tradycjonalistów natomiast książka o C++. Było fajnie? To teraz —
DAJ SIĘ KARNĄĆ
Przykro mi tak szybko psuć zabawę, ale dotarliśmy do najgorszego etapu. I to nie dlatego, że już nachodzi mnie już uczucie żałosności własnego pisarstwa, ale dlatego, że najwyższy czas na dokonanie wyborów i zaangażowanie się w naukę. Bo teraz wiesz już co nieco. O uszy obiła Ci się nazwa stack overflow, nauka git’a to pierwsza rzecz jaką planujesz w wolny wieczór, ktoś na pewno doradzał zainstalowanie linux’a, a niekończąca się dyskusja o wyższości jednego języka programowania nad innymi sprawia, że czujesz się jak ten bardzo znany pies:
Niestety, ja również utknąłem w tej bagnistej fazie. Uczyłem się stale, trochę tego i owego, zainstalowałem Ubuntu, stworzyłem profil na Github’ie i wciąż nie wiedziałem, który język jest do czego i po co. Poradniki dla początkujących wydawały się zbyt początkujące. Początek miałem już za sobą. Więc jak, do licha, ruszyć dalej?
Z pomocą przyszedł przypadek. Przyjaciel zaczął uczyć się Ruby on Rails i polecił mi świetny kurs. To było to. Humor Pana Hartl’a tak przypadł mi do gustu, że przerobiłem kurs dwukrotnie. I podążając za jego radą rozpocząłem własny projekt.
Czasami tyle wystarczy. Dlatego warto ciągnąć za języki, pytać o radę przyjaciół czy forumowych samarytan. Oczywiście, materiału w sieci jest ogrom: na udacity każdy napewno znajdzie coś dla siebie, djangoproject linkuję dla tych, co wolą węże od klejnotów. Wszystko sprowadza się jednak do jednego: zacznij swój własny projekt.
PRAKTYKA CZYNI RZEMIEŚLNIKA
Nie przesadzę, stwierdziwszy, że 90% developerów rozwijało swoje umiejętności głównie poprzez pracę nad indywidualnymi projektami. Niektórzy implementowali własne pomysły, inni ulepszali istniejące rozwiązania, jeszcze inni próbowali odtworzyć gotowe produkty. Dla każdego coś miłego, ważne, aby lekcja została odrobiona.
Wszystko to brzmi pięknie, zakładając, że masz niewyczerpane pokłady motywacji i wystarczająco nieustępliwości by wciąż szukać nowych rozwiązań napotkanego problemu, który na pewno jest banalny, tylko jak go, u diaska, rozwiązać?
Mam dobrą i złą nowinę.
Okej, kłamałem, mam tylko złą. Każdy musi przejść przez to piekło sam (tak też mnie to denerwuje). Ale taka sytuacja.
Nie dam Ci jednak ginąć marnie. Przynajmniej nie bez żadnych obiecanych wskazówek.
Czuję, że na tym etapie najważniejsze było zebranie wystarczającej ilości motywacji by przetrwać w założonych celach, jak i zaznajomienie się z co powszechniejszymi problemami. Idealną receptą okazały się małe, programistyczne ćwiczenia, po zgłębieniu których czuć natychmiastowy przypływ własnej mocy obliczeniowej (nie wspominając o mimowolnym wchłanianiu wiedzy). Pamiętajcie, by odwiedzić Pana Hattori Hanzo, gdyż najsłuszniejszą drogą na tę wojenną ścieżkę są place treningowe wojowników kodu. Następnie może zechciecie dołączyć do walki na frontendowo-backendowym (javascript vs python) froncie. Dla bardziej pokojowo nastawionych wojowników polecam medytację nad własną karmą wraz z doskonałymi Ruby Koans. W poszukiwaniu nowych przygód nie zaszkodzi również sprawdzić dobrego starego reddita. Niech Wasze miecze pozostaną ostre, a wiatr wieje Wam w plecy.
Oprócz nadania dynamiki naszej nauce, przejście przez wymienione tutoriale przynosi dodatkową korzyść jaką jest nabieranie płynności w wybranym języku programowania. Co więcej, niewiarygodnie zwiększa się pewność siebie, co jest nieocenione w sytuacjach, gdy zostaniemy skonfrontowani z nieznanymi uprzednio problemami (na przykład podczas rozmowy kwalifikacyjnej!).
KOŃCZ WAŚĆ, WSTYDU OSZCZĘDŹ
Jeżeli liczyliście na więcej żenujących historii o zmaganiach młodego człowieka, które umilą autorefleksję nad własnym mizernym życiem — proszę bardzo. Po całym tym gonieniu, nauce, ćwiczeniach i ogromie poświęconego czasu, nadal czułem się niegodny aplikowania gdziekolwiek. Porównywałem podane wymagania do własnych umiejętności wypadając lepiej lub gorzej. Czułem się mimo wszystko niekompetentny i przyrzekałem sobie naukę kolejnej technologii z długiej listy wymienionych w ogłoszeniach. Marazm, wiadomo, rzecz do przezwyciężenia. Wystarczy zacząć aplikować. Bułka z masłem.
Wkrótce jednak okazało się, że praktycznie do każdego wysłanego CV otrzymuje się w odpowiedzi zadanie rekrutacyjne, rozwiązanie którego nie należy do najłatwiejszych obowiązków. Szczególnie, że z reguły obarczeni jesteśmy dodatkowo przyjemnym deadline’m. Pysznie, prawda? Ale nie ma nic lepszego na doszlifowanie swoich umiejętności.
Ponadto trzeba pamiętać, że każda przebyta rozmowa kwalifikacyjna to kopalnia informacji. Dowiadujemy się jak działa rynek, oswajamy się z atmosferą pracy, a także doskonalimy własne zachowania i uczymy się walczyć ze stresem. Kto wie, być może wywarte przez nas wrażenie pomoże nam następnym razem, gdy będziemy szukać pracy?
W przestrzeni kosmicznej są cebuliony porad dotyczących rozmów kwalifikacyjnych, wobec czego nie będę Was zanudzał. Chciałbym tylko zaznaczyć jedno: cały proces jest tak prosty jak interakcje fotonu z jego wirtualnymi kolegami w infinitezymalnej odległości od horyzontu zdarzeń supermasywnej czarnej dziury. Wiadomo, zastanów się dwa razy czy nie można było zachować się lepiej, lecz miej na uwadze, że ostateczna decyzja wynika z wielu niezależnych od Ciebie czynników. Być może twoja osobowość nie współgrałaby dobrze z firmowym zespołem, a może z kolei Twoje zgłoszenie znalazło się wtedy kiedy trzeba, tam gdzie trzeba. Bywa różnie. Czasem szukamy plaży a znajdujemy bunkry.
Jasnym jest, że rekrutacja może toczyć się w trybie ciągłym, ale może też narodzić się spontanicznie. Firma może czekać z ogłoszeniem wakatu, albo z drugiej strony — zatrudnić kogoś bez uprzedniego planu. Do brzegu, marynarzu. Chodzi o to, aby nie polegać kurczowo na udostępnionych oficjalnie “wolnych stanowiskach”, lecz pytać, wysyłać maile, wykazywać inicjatywę (tylko błagam, w imię dobrego snu rekruterów, o wcześniejsze zapoznanie się z profilem pracodawcy). W praktyce, na zdecydowaną większość zapytań otrzymywałem odpowiedź, a w niej — o tak! — zadanie rekrutacyjne.
Zdaję sobie sprawę, że presja jaką trzeba wytrzymać w okresie rekrutacji jest porównywalna do tej odczuwalnej przez drużynę narodową podczas meczu o awans do mistrzostw świata w piłce nożnej. Jednak silna wola (tu filmik długi, przepraszam, ale warto) i bycie wytrwałym popłaca. Pewnego razu nie otrzymałem odpowiedzi na wysłaną aplikację. Nic, nawet “Dzięki, ale niestety nie”. Więc po dwóch tygodniach zadzwoniłem na podany w ogłoszeniu numer by zabić niepewność. W efekcie zostałem zaproszony na rozmowę. Zgadnijcie, gdzie pracuję teraz?
Podsumowując, prokrastynacja nie ma sensu. Najłatwiejszy sposób aby przetestować swoje umiejętności to wykonanie zadania. Nie ważne, czy zdołasz je rozwiązać — na pewno czegoś się nauczysz. Gdzie z kolei szukać potencjalnych pracodawców? Znam jedno magiczne miejsce, rozwiązuje problemy lepiej niż Pan Wolf. Polecam przyjrzeć się również lokalnym fejsbukowym grupom o tematyce start-up’owej. Nie zaszkodzi rozejrzeć się za organizowanymi tu i ówdzie konferencjami IT i targami pracy, które są doskonałą okazją do nawiązania znajomości.
WIECZNY OGIEŃ
Przypuśćmy, że udało Ci się zdobyć pracę. To już jest koniec, nie ma już nic. W rozgwieżdżone niebo strzelają światła fajerwerków, szampan leje się na ulice, ktoś bije werbel do “We are the champions”, ktoś inny krzyczy “Sto lat!”. Świat jest piękny, kolorowy i przyjemny (czy zażywano ostatnio jakieś substancje?) a w Tobie strach wzbiera jak azjatyckie tsunami. Nic dziwnego, pierwsza praca to przerażające doświadczenie (jeżeli współpracownicy każą przynieść pączki, lepiej szybko spełnić ich prośbę, inaczej na deser zjedzą Ciebie). Lecz czas mija szybko, nim się spostrzeżesz, w pracy będzie wygodnie niczym w kapciach kubota. Po co w takim razie ten akapit?
Ponieważ to nie koniec naszych wysiłków. W tej branży zdobycie pracy to dopiero początek nauki. Nagle okazuje się, że w praktyce nie używa się już technologii, której z taką dociekliwością się uczyliśmy. Że system, który masz rozwinąć koniecznie powinien zostać zaimplementowany w Angularze, nie w Emberze. Albo logika biznesowa wymaga całkowitej zmiany podejścia do projektu. Oto co Cię czeka: nieustanny rozwój.
Rynek szybuje szybciej niż rakiety Elona Musk’a. Trzeba wysiłku, aby zostać w grze.
Na pocieszenie mam garść pomocnych linków. Warto śledzić pojawiające się regularnie blog-posty. Tematyczne podcasty, wpasowują się idealnie w czas dojazdu do pracy. Cykliczne newslettery to świeża dawka informacji w jednym miejscu. Nie zapominając o wszechobecnych, ukochanych social-media: Reddit, Facebook czy Youtube wyznaczają tempo jeżeli chodzi o przepływ informacji. O dalsze porady lepiej jednak podpytać kolegów i koleżanki z pracy. Koniec końców, jestem tylko Juniorem.
Przeczytaj również
W ostatnich latach na intensywny i dynamiczny rozwój e-commerce…
Na początku każdego roku dokonujemy przeglądu najlepszych praktyk i…
E-commerce zdecydowanie zakorzenił się w naszym stylu życia. W…