Pierwsze próby nauki programowania podjąłem w gimnazjum. Mój tata widząc zapał i chęci do nauki, sprezentował mi książkę pt.: „C++ dla każdego” autorstwa Jesse’go Liberty. Pod jej przewodnictwem napisałem pierwszy program „Hello world” wykonywany w windowsowej linii poleceń. Zadowolony ruszyłem dalej.

Użyszkodnik

Niestety, jak to często bywa w książkach do nauki programowania, zaraz po pierwszych sukcesach jesteśmy wręcz miażdżeni wieloma stronami szczegółowej, czystej teorii, której mój młody umysł nie mógł przeboleć. „Po co mi jakiś opis zmiennej? Ja chcę wiedzieć jak to wykorzystać! Co znaczy skrót ‚std’? A skąd wziął się ten zapis?”. Bardzo szybko przybywało rzeczy dla mnie nie jasnych, a sam zapał systematycznie malał.

Dodatkowo w moim środowisku nie miałem nikogo, kto mógłby mi coś wyjaśnić lub wskazać dobry kierunek. W końcu zapał zgasł, a ja z uczuciem klęski stwierdziłem, że programowanie widocznie nie jest dla mnie, do tego stopnia, że zrezygnowałem ze studiowania informatyki pozostawiając całe IT w sferze zamiłowania.

Na zdjęciu: Michał Orski, autor tekstu

Sytuacja zmieniła się, gdy poszedłem na studia na nowy wówczas kierunek: Inżynieria Biomedyczna, ze specjalnością Informatyka medyczna. Był to kierunek interdyscyplinarny mający z założenia łączyć szeroko rozumianych informatyków z przedstawicielami sektora medycznego, dlatego zakres nauczania był bardzo szeroki. Począwszy od przedmiotów czysto medycznych jak anatomia, biochemia poprzez fizyczne, jak biofizyka i mechanika, a na czysto informatycznych kończąc. Na pierwszym semestrze miałem wielkie szczęście, gdyż praktyczne zajęcia podstaw programowania prowadził prawdziwy pasjonat – praktyk, który prócz nauczania zawodowo zajmował się programowaniem.

To właśnie on krok po kroku rozwiewał niepewności i niejasności z lat gimnazjalnych. Pokazywał wiele różnych podejść do jednego problemu, w sposób jasny i prosty potrafił przedstawić rzeczy, które książki potrafiły tylko zaczernić. Od niego usłyszałem po raz pierwszy określenie „użyszkodnik” (połączenie słów „użytkownik” i „szkodnik”), gdy wywołał wyjątek w mojej pierwszej aplikacji. „Pamiętaj, gdy poprosisz użyszkodnika o wybór klawisza 1 lub 2, to on zawsze wciśnie klawisz ENTER”. Do teraz pamiętam tą przestrogę.

Przez kolejne lata bez problemu tworzyłem kolejne aplikacje będące zadaniami na studiach. Jednak im więcej programowałem, tym bardziej przerażał mnie ogrom wiedzy, który był jeszcze przede mną. Jak się okazało brak wiary we własne umiejętności, który pojawił się w pierwszych krokach programowania w C++ nie tylko nie minął, ale zaczął się powiększać. Zawsze z tyłu głowy miałem uczucie i przeświadczenie, że to jeszcze za mało, że to co już potrafię to ledwo podstawy i jeszcze długa droga przede mną, a ukończenie studiów było tuż, tuż.

Wszystko zmieniło się podczas pewnego programistycznego wydarzenia (eventu)

Było nas tam około dziesięciu, głównie osoby, które już pracują lub łączą studia z pracą zawodową. Naprawdę świetnie się tam bawiłem, dodatkowo zobaczyłem jak zawodowcy w indywidualny sposób podchodzą do różnych problemów oraz przede wszystkim w moim umyśle pojawiła się iskierka nadziei, że może moje umiejętności nie są na tak niskim poziomie jak mi się wydawało. Gdy w żartobliwy sposób poruszyłem ten temat z prowadzącym, ten powiedział, że z tymi umiejętnościami spokojnie mogę szukać pracy. Tląca się wcześniej iskierka nadziei wybuchła płomieniem mobilizacji do szukania pierwszej pracy.

Swoją pierwszą pracę zacząłem szukać u źródła wszelkich początków w dzisiejszym świecie, czyli w Internecie. Zacząłem przeglądać oferty pracy na najpopularniejszych portalach. Jeden, kolejny i jeszcze jeden. Po przejrzeniu kolejnych zastanawiałem się, czy te wszystkie ogłoszenia piszą jakieś boty? A może to jakiś szablon? Doklejają tylko nazwę firmy i zmieniają tło. Po długim maratonie między ogłoszeniami zdecydowałem się przesłać jedno CV, na najbardziej zaskakujące i jednocześnie najbardziej prymitywne ogłoszenie jakie znalazłem, brzmiało ono mniej więcej tak: „Poszukujemy osoby do zespołu programistycznego. Wymagania: znajomość języka C#”.

Proste i wyjątkowo krótkie ogłoszenie, które wówczas zadziałało na mnie jak magnez. Umówiłem się na rozmowę. Jak się potem dowiedziałem ogłoszenie zostało zamieszczone przez kierownika zespołu programistycznego, który uważał, że HRowskie doczepki typu „młody, dynamiczny zespół”, „możliwość rozwoju” itp., zaciemniają warunki i odstraszają kandydatów, a on po prostu potrzebuje ludzi.

Finalnie krótkie, nietypowe ogłoszenie okazało się ofertą pracy dla jednego z największych banków w Polsce

Panowie z notesikami

Pierwszej rozmowy kwalifikacyjnej nie zapomnę. Zostałem zaproszony do pokoju, w którym był szef działu IT oraz „wielka trójka”, czyli osoby zarządzające poszczególnymi grupami programistycznymi. Rozmowa absolutnie nie wyglądała tak jak przypuszczałem. Nie miałem żadnych pytań typu „Gdzie się widzę za pięć lat”, „Czemu chcę u nich pracować”. Pytania głównie skupiały się na moim doświadczeniu programistycznym. Najmilsze było to, że moi rozmówcy w pełni zaakceptowali fakt, iż jestem osobą po studiach bez indywidualnego projektu na koncie. Bez przekąsu czy uszczypliwej uwagi skupili swoje pytania na projektach i zadaniach ze studiów.

Powoli opowiadałem o każdym znaczącym dla mnie projekcie i zadaniu, wyszczególniając czego się przy nich nauczyłem. Przy okazji jednych opisywałem radość jaką odczuwałem przy pokonaniu przeszkód, przy drugich o wnioskach, które wyciągałem po przegranej. Przy okazji zwracałem również uwagę na moich spostrzeżeniach, uzyskanych podczas prac grupowych i indywidualnych.

Wiele osób uważa, że programista na studiach musi tworzyć jak najwięcej projektów do swojego przyszłego portfolio, że bez tego nikt z nami nie zechce rozmawiać. Jestem chyba przykładem przeciwnego nastawienia

W każde zadanie i projekt zadawane na studiach przez prowadzących angażowałem całego siebie, z drugiej strony przez cały okres studiów nie stworzyłem więcej niż dwóch prostych aplikacji niezwiązanych z zajęciami. Oczywiście często otwierałem kompilator i sprawdzałem nowości i rozwiązania z portali tematycznych, jednak nie były to całe projekty. A jednak dzięki studiom poznałem, czym jest i jak powinna oraz jak nie powinna wyglądać praca zespołowa, czym jest pokonywanie barier i czym jest istota samokształcenia.

Rozmowę prowadził szef działu IT, „wielka trójka” zadawała pojedyncze pytania, prosząc o szczegóły poruszanych przeze mnie tematów, notując raz po raz coś w swoich notesikach. Czułem się trochę jak na przesłuchaniu. Na koniec zostałem sam na sam z osobą odpowiedzialną za warunki pracy. Taka mała uwaga, teksty typu: „Chciałbym zarabiać adekwatnie do swoich umiejętności” w ogóle się nie sprawdzają.

Druga rozmowa kwalifikacyjna (do drugiej pracy) odbyła się raczej standardowo. Na początku pisemny test kompetencji (do rozwiązania w 5 minut) i proste zadanie programistyczne na laptopie (czas 30 minut). I krótka rozmowa na temat moich odpowiedzi i rozwiązania. Zła odpowiedź na pytanie na kartce nie przekreślała szansy, a otwierała szansę na rozmowę i dodatkowe pytania: dlaczego, czy się pomyliłem, czy nie znałem odpowiedzi. Następnie to już standardowe pytania HRowe: ile bym chciał zarabiać, na jakich warunkach itd.

Trzy warunki

Jak podjąłem decyzję o wybraniu danej oferty pracy? Zostały spełnione trzy proste warunki:

  1. Chcieli mnie
  2. Zgodzili się na moje warunki
  3. Widziałem możliwość rozwoju

Na pewno prestiż przyszłego pracodawcy również trochę połechtało moje ego. Takie podejście polecam każdemu szukającego pierwszej pracy.

Im mniej wymagań i uprzedzeń, tym szybciej człowiek pozna czego oczekuje od pracodawcy i samych warunków pracy

W pierwszy dzień wyszła zabawna sytuacja, bo się spóźniłem, a jednocześnie się nie spóźniłem. Standardowy dzień pracy w zespole był od 9:00 do 17:00 tak też zostałem poinformowany przy okazji rozmowy telefonicznej, podczas której dowiedziałem się, że „chcą mnie zatrudnić”. Jednak w przeddzień dostałem SMSa z przypomnieniem o rozpoczęciu pracy i prośbę o przyjściu na godzinę 10:00, tak też więc zrobiłem. Jak się domyślacie, moją karierę zawodową rozpocząłem od spóźnienia. Oczywiście nie poniosłem żadnych konsekwencji za nie, a prawdę powiedziawszy, przez tą pierwszą rozmowę skróciłem dystans z przełożonym, ale nie radzę tego próbować u siebie.

Po wstępie, przeszedłem do podpisania umowy, a następnie dostałem podręcznik do JavaScriptu. Jak się potem okazało, nie pisaliśmy standardowych aplikacji okienkowych, lecz aplikacje webowe, a dokładniej .NET MVC + js Knockout. Moja wiedza w tym zakresie była zerowa. Nigdy nie pisałem aplikacji webowych, a tym bardziej nie dotykałem JavaScriptu. Jednak po miesiącu zacząłem powoli łapać i rozumieć o co chodzi w tym języku oraz w samych aplikacjach webowych, a po dwóch miesiącach mój samodzielnie napisany moduł został zaakceptowany do paczki release. W aklimatyzacji pomogło wyrozumiałe podejście zespołu, który nie miał problemu z wyjaśnieniem wszystkiego, czego nie mogłem samodzielnie zrozumieć.

Przy okazji tego artykułu, chciałbym bardzo podziękować mojemu tacie, który wspierał mnie w moich kluczowych wyborach ścieżki kariery. Dziękuję Ci, gdyby nie Ty, nie byłbym tu gdzie jestem.

Przeczytałeś właśnie artykuł z cyklu Pierwsza praca. Pokazujemy w nim ciekawe historie, sposoby na znalezienie pierwszej pracy dla programisty. Jeśli szukasz pracy, najlepsze oferty znajdziesz tutaj.

Zdjęcie główne artykułu pochodzi z rawpixel.com i zostało udostępnione na licencji CC0

Zapraszamy do dyskusji