Wątpliwości czy nasze umiejętności techniczne są na poziomie oczekiwanym przez rynek. Obawy czy konkurencja nie zostawiła nas w tyle. Frustracja podczas spędzania cennych godzin na kolejnym zadaniu rekrutacyjnym. Dla wielu programistów właśnie takie skojarzenia budzi szukanie pracy.

A nie musi tak być. Przez trzy lata w branży oszczędziłem sobie tego typu rekrutacyjnych “przyjemności”.

Rozmowy kwalifikacyjne na obydwa stanowiska, zarówno pierwsze jak i aktualne, były dla mnie przyjemną formalnością. Oferty dostałem bez weryfikacji technicznej i zadania rekrutacyjnego.

Jak już wspominałem w podcaście, pierwszą linijkę kodu napisałem mając na karku 21 lat. Doświadczenie niekomercyjne nie było moją kartą przetargową.

W takim razie jak to możliwe?

Przecież sprawdzenie umiejętności technicznych, zwłaszcza osób niemających solidnego portfolio, wydaje się czymś naturalnym i rozsądnym.

Czyżbym miał szczęście? Albo co gorsza… ZNAJOMOŚCI? A może znam jakiś magiczny trick, który będę Ci próbował wcisnąć pod koniec tego artykułu za kilka stówek?

Niech to póki co pozostanie tajemnicą i cytując podcastowego klasyka: “zacznijmy od początku”…

Pierwsza praca

Jest kwiecień 2015 roku. Bydgoszcz. Jestem na drugim semestrze studiów teleinformatycznych. Jeszcze rok wcześniej byłem studentem prawa. Dopiero stawiam pierwsze kroki z JS na FreeCodeCamp. Jak nie trudno się domyślić, nie mam wiele do zaoferowania od strony technicznej.

Oprócz studiów dziennych, pracuje w dziale obsługi klienta IKEA. Jako że bydgoski sklep nie narzeka na nadmiar klientów, praca nie jest zbyt męcząca. W połączeniu z kozacką zniżką na obiady i niezłym wynagrodzeniem, jest to układ zadowalający zarówno mój brzuch jak i portfel. ŻYĆ NIE UMIERAĆ.

Dopiero co zaraziłem się siłownią. Moim partnerem treningowym jest dobry kolega Łukasz, również studiujący Teleinformatykę, tyle że na trzecim roku. Jest jedną z trzech znanych mi osób pracujących jako programista.

Łukasz od niecałego roku pracuje jako back-end developer w startupie z branży automotive. Firma mała a projektów do zrealizowania aż za dużo. Tak się złożyło, że jego kolega z biura postanowił zmienić pracę. Przyszedł czas na szybką rekrutację. Potrzebny jest stażysta do testów automatycznych systemów wbudowanych.

Łukasz na jednym z treningów pyta czy chciałbym spróbować swoich sił.

Ciężki temat. Nastawiłem się na naukę front-endu, chcę współtworzyć internet, mój ulubiony wynalazek w historii technologii. Co gorsza, nie mam pojęcia czym są testy automatyczne, systemy wbudowane tym bardziej.

Pierwsza myśl: sorry Łukasz, to nie dla mnie. Po co mam rezygnować z połowy pensji, którą dostaję w IKEA (i tych obiadów!) na rzecz czegoś co przeraża mnie i nudzi jednocześnie. Przecież mogę zaczekać aż znajdzie się coś zgodnego z moimi “oczekiwaniami”.

Łukasz nie dawał za wygraną: “Stary, na stażu nauczysz się więcej niż przez całe studia. Nawet robienie side-projectów a praca dla prawdziwego klienta, to kompletnie inne doświadczenie”.

Jako nerd z krwi i kości spędziłem w młodości tysiące godzin przed grami komputerowymi. Dzięki temu nauczyłem się, że możliwość szybkiego zdobywania doświadczenia, jest kluczowa do zdobycia przewagi nad konkurencją. Zacząłem programować stosunkowo późno, więc każdy sposób na nadrobienie zaległości jest w mojej sytuacji na wagę złota. Jeżeli mogę przyspieszyć swój rozwój już na pierwszym roku studiów, to muszę spróbować dostać się na ten staż.

Łukasz uprzedził szefa, że nie mam żadnej z oczekiwanych kompetencji technicznych. O testach nie wiedziałem nic, słabiutko znałem Linuxa, nie potrafiłem pisać skryptów w Bashu a projektowanie układów scalonych czy programowanie sterowników w C++ było dla mnie czarną magią.

Mimo to zostałem zaproszony na pierwszą rozmowę kwalifikacyjną do branży IT.

Zamiast wymaganych umiejętności technicznych, miałem do zaoferowania zdolność szybkiej nauki i chęci do dalszego rozwoju. Potwierdziłem swoje atuty za pomocą projektów z FreeCodeCamp oraz książek o front-endzie, które czytałem zamiast przysypiać na wykładach.

Jakimś cudem się udało. Od maja zaczynałem staż.

Dwa lata później

Jest sierpień 2018 roku. Przeszedłem drogę od stażysty testera, przez junior web developera do regulara. Wiem już czym są testy automatyczne systemów wbudowanych. Napisałem i przeprowadziłem ich setki. Łukasz skończył studia i przeprowadził się do Poznania, gdzie zaczął pracę w Allegro. Mój zakres odpowiedzialności poszerzył się do utrzymywania wszystkich aplikacji webowych firmy.

Większość kodu piszę w Javie, po stronie back-endu. Mimo to najpewniej czuje się w JSie i bibliotece React. Nie porzuciłem zamiarów rozwijania się na froncie. Wszystko za sprawą nauki po godzinach: side-projecty, książki, kursy i przede wszystkim blog. Od września 2017 dokumentuje na nim swoje postępy.

Przede mną ostatni semestr studiów. Po uzyskaniu dyplomu planuje zrealizować swój najważniejszy cel: przeprowadzić się do Krakowa. Czeka tam na mnie mój przyjaciel Jędrzej i cała masa możliwości, których na próżno szukać w Bydgoszczy.

Z jednej strony jestem podekscytowany a z drugiej widmo szukania pracy w mieście odległym o 500 km od rodzinnego gniazda, wywołuje u mnie dyskomfort. A co jeśli okaże się, że w obliczu tak dużej konkurencji, nikt nie będzie zainteresowany moimi usługami?

Na szczęście nie poświęcałem za dużo czasu na zadręczanie się takimi wątpliwościami. Miałem dużo na głowie: studia dzienne, praca na 3/4 etatu, siłownia trzy razy w tygodniu, dziewczyna, praca inżynierska i blog.

Mimo wypchanego kalendarza, moje myśli cały czas zmierzały w kierunku YouTube’a. Chciałem prowadzić własny kanał już w czasach liceum. Wtedy marzyło mi się nagrywanie contentu o League of Legends. Niestety ze względu na ograniczenia sprzętowe, skończyło się na marzeniach.

Ciekawość i chęć zdobycia umiejętności dzielenia się wiedzą na filmie sprawiły, że postanowiłem wcisnąć kolejną aktywność do swojego harmonogramu.

Czy obawiałem się jak to wszystko ze sobą zepnę? Oczywiście.

Czy powstrzymało mnie to przed działaniem? W żadnym wypadku.

Jeden z czytelników mojego bloga (pozdrawiam Krystian!) polecił mi zainspirowanie się twórczością pewnego youtubera. Obejrzałem jego materiały. Byłem pod wrażeniem. Tego samego wieczoru napisałem do niego maila z kilkoma pytaniami.

I tego samego wieczoru dostałem odpowiedź.

Tak poznałem Adama znanego szerszej publiczności jako overment. Pogadaliśmy na skype. Dodaliśmy się do znajomych na fejsbuku.

Jakieś dwa miesiąca później overment, który poza kanałem na YouTube zarządza startupem, potrzebuje kolejnego programisty do swojego zespołu. Kogoś kto weźmie na siebie część jego obowiązków.

Zależało mu na człowieku elastycznym co do technologii, gotowym w biegu opanować to co narzucają wymagania biznesowe. Kluczowe było zamiłowanie do nauki, chęć do ciągłego rozwoju.

Wiedział, że ciężko upolować taki egzemplarz w dziczy ale po kilku godzinach przyszedł mu do głowy pewien gość z internetu.

I tak pojawiła się kolejna okazja na przyspieszenie mojego rozwoju. Wziąłem dziekankę i 2 grudnia 2018 roku wylądowałem w Krakowie.

Wiesz co się liczy?

Okej, pewnie teraz już nie masz żadnych wątpliwości, że moim “sekretem” jest połączenie szczęścia i znajomości. Nie zaszkodziła również odrobina naiwności pracodawców, bo w końcu: “Talk is cheap. Show me the code” i inne tego typu historie.

W takim razie po co ten artykuł? Przecież nie jesteś w stanie nic z niego wyciągnąć dla swojej kariery.

Nie mogę się z tym zgodzić. W mojej historii kryje się pewien wzorzec.

W każdej decyzji biznesowej, nieważne czy jest to rekrutacja czy wybór stacku technologicznego do kolejnego projektu, decydujący wpływ na Twoją siłę przebicia ma pewna waluta.

Zanim zdradzę Ci czym jest ta tajemnicza waluta, omówię co decyduje o tym ile masz jej do rozdysponowania.

W świecie programowania mamy do czynienia z trzema głównymi częściami składowymi.

Są to umiejętności, zdolności i wartości.

Różnicę pomiędzy nimi przedstawię Ci na przykładzie żeglowania.

Umiejętności

Zacznijmy od najbardziej oczywistego elementu całej układanki.

Umiejętność to biegłość w wykorzystywaniu narzędzi niezbędnych do wykonywania określonej pracy.

Umiejętność może zdobyć każdy w skończonym czasie. Jest nią przykładowo: cumowanie rufą do kei czy zawiązanie węzła knagowego.

To czy nowy członek załogi posiada potrzebną nam umiejętność tu i teraz jest kluczowe tylko w trzech wypadkach:

  • musimy dotrzeć do celu najszybciej jak to możliwe
  • statkowi grozi zatonięcie
  • mamy wątpliwości czy żeglarz nie jest skończonym de… potrafi nabywać nowe umiejętności ;)

Jeżeli nie gonią Cię piraci, statek jest w dobrym stanie a kandydat na żeglarza posiada ZDOLNOŚĆ szybkiej nauki, to jako doświadczony wilk morski przeszkolisz rekruta w w mgnieniu oka.

Zdolności

Zdolność to powtarzający się wzorzec myślenia, odczuwania i zachowania mający produktywne zastosowanie. Analityczne myślenie przy rozwiązywaniu problemów, szybkie przyswajanie wiedzy, kreatywność czy wizjonerstwo. Instytut Gallupa nazywa zdolności mianem talentów i wyznaczył ich aż 34 (więcej na ten temat w artykule Adama: Zrozumieć siebie).

Z uwagi na wypadkową swoich genów, środowiska w którym się wychowywałeś oraz miliona innych zmiennych, posiadasz unikalne połączenie kilku zdolności.

Znacznie trudniej zdobyć nową zdolność niż umiejętności. Oprócz samej praktyki, opanowanie zdolności wymaga zmian w sposobie myślenia i w nawykach, co znacznie obniża prawdopodobieństwo sukcesu.

W dłuższym okresie czasu, to właśnie zdolności decydują gdzie dopłynies jako żeglarz. Czy zostaniesz kapitanem statku? Staniesz się ekspertem nawigacji? A może kompletnie nie masz tego co trzeba i powinieneś pozostać szczurem lądowym.

Jeżeli zależy Ci na określonych zdolnościach u marynarza, powinien je mieć tu i teraz. Nie ma co liczyć, że nabędzie je podczas nauki umiejętności żeglarskich.

Wartości

Na koniec zostały wartości czyli standardy i przekonania odnośnie tego co jest istotne w życiu. Wartości mają kluczowy wpływ na to jakie decyzje podejmujesz.

Przykładami wartości są: prawdomówność, lojalność, władza, odwaga, komfort, chęć rozwoju, materializm czy odpowiedzialność.

To właśnie od wartości zależy czy w momencie wpłynięcia statku w sztorm, staniesz na wysokości zadania i zadbasz o losy swojej załogi czy może pod osłoną nocy odpłyniesz w szalupie ratunkowej na pokład innego statku.

Wartości są wypadkową tych samych czynników co zdolności i ulegają zmianie z równie dużym oporem i trudnościami.

Waluta przyszłości

W ostatecznym rozrachunku to właśnie suma Twoich umiejętności, zdolności i wartości składa się na wspomnianą wcześniej walutę.

Tą walutą jest wiarygodność.

Chodzi o dokładnie to samo co Michał Szafrański nazwał “zaufaniem” i słusznie określił ją jako walutę przyszłości.

To dzięki wiarygodności mogą zachodzić wszelkie transakcje w rekrutacji i w biznesie. Ktoś dostaje prace, bo jest bardziej wiarygodny niż cała reszta kandydatów. Kogoś zdanie jest decydujące podczas wyboru technologii, bo jest bardziej wiarygodny niż pozostali. A tak przynajmniej być powinno, jeżeli zależy nam na racjonalnym podejmowaniu decyzji.

Niestety, wielu programistów oceniając wiarygodność swoją i innych, bierze pod uwagę wyłącznie umiejętności. Oczywiście taki stan rzeczy ma swoje wytłumaczenie. Na podstawie ogłoszeń o pracę ciężko dojść do innego wniosku. W końcu liczy się N lat doświadczenia w technologii X, Y i Z, niezbędne do wywiązywania się z odpowiedzialności A, B i C.

Wszystko wygląda na to, że to właśnie umiejętności mają najwyższy kurs w kantorze wiarygodności, skoro są tak podkreślane i określane jako wymagane.

To, że umiejętności zajmują kluczową pozycję w ogłoszeniach, wynika z innego, pragmatycznego powodu. Biorąc człowieka “z ulicy”, jedyne co możesz miarodajnie zweryfikować to właśnie umiejętności.

Jak z każdym przesadnym uproszczeniem rzeczywistości bywa - ma to swoją cenę.

Czy naprawdę wolisz mieć w zespole gościa, który przez lata naklepał setki komponentów w Reactcie ale w gruncie rzeczy jest mało błyskotliwy i leniwy, od pełnego energii juniora chłonącego wiedzę jak gąbka?

Przecież dużo łatwiej będzie Ci nauczyć tego juniora kilku wzorców pisania kodu (umiejętność) niż przekazać leniwemu klepaczowi jak szybko uczyć się nowych technologii (zdolność) albo przekonać delikwenta, że musi brać odpowiedzialność za siebie i resztę zespołu (wartość).

Ograniczone możliwości weryfikowania trzech składowych wiarygodności w procesie rekrutacyjnym, to jedno. Racjonalna chęć każdego pracodawcy do maksymalnego prawdopodobieństwa, że rekrutuje właściwego człowieka, to drugie.

Każdy człowiek szuka potwierdzenia, że osoba, z którą wchodzi w jakąkolwiek relację, jest wiarygodna.

I nie widzę powodu, dla którego jako programista nie powinieneś pracować nad podwyższaniem swojej wiarygodności. Jeżeli jesteś na tym wczesnym etapie kariery, gdy brak Ci jeszcze szerokiego wachlarza umiejętności, to tym bardziej powinieneś mieć to na uwadze.

Zobacz jak to zadziałało w moim przypadku.

Moja wiarygodność

Mimo przeciętnych umiejętności, moja wiarygodność w oczach pracodawców była na tyle wysoka, że rozmowy techniczne nie były konieczne.

Przy pierwszej pracy moja wiarygodność bazowała przede wszystkim na rekomendacji.

Łukasz wiedział, że szybko się uczę, cenię sobie rozwój i nie poddaje się w obliczu przeciwności. Tak się składa, że były to zdolności i wartości, które cenił sobie również jego pracodawca. Dowiedziałem się o tym na rozmowie kwalifikacyjnej, gdy przyszły szef sam przekonywał mnie do przewagi zdolności i wartości nad umiejętnościami.

Rekomendacja to nic innego jak łańcuch wiarygodności: pracodawca uważał Łukasza za osobę wiarygodną a Łukasz uważał za taką osobę mnie.

W przypadku drugiej pracy, zadziałał inny mechanizm potwierdzający moją wiarygodność.

Adam miał dowody na moje umiejętności, zdolności i wartości, w postaci czynów. Widział bloga, widział że jego rady w niekrótkim czasie przerodziły się w filmy na YouTube. Więcej nie było mu trzeba.

Prawda jest taka, że nic nie buduje wiarygodności jak konsekwentne działania przez dłuższy okres czasu.

Potwierdzenia tej tezy nie trzeba daleko szukać. Wystarczy spojrzeć na sukcesy Macieja Aniserowicza czy Mirka Burnejko.

Jak budować wiarygodność jako programista?

Sposobów jest wiele.

Możesz skorzystać z dwóch najpopularniejszych, chociaż moim zdaniem dalekich od miana najefektywniejszych. Są nimi:

  • Studia
  • Praca w renomowanej korporacji

Wielu programistów decyduje się budować wiarygodność właśnie na bazie reputacji uczelni bądź korporacji. O tym czy taka strategia zadziała w Twoim wypadku, zadecydują inne zdolności i wartości niż te, które pozwolą Ci rozwinąć skrzydła w świecie startupów. Decyzja należy do Ciebie.

Na szczęście w erze internetu masz do dyspozycji więcej sposobów na budowanie wiarygodności:

  • blogowanie
  • nagrywanie materiałów na youtube
  • przemawianie na meetupach
  • podcasting

Taka różnorodność zapewnia elastyczność. Niezależnie od Twoich konkretnych zdolności i wartości, znajdziesz coś dla siebie. Z moich obserwacji, każdy z tych sposobów jest efektywniejszy niż te dwie ścieżki wybierane przez masy.

Dlaczego?

Jeżeli dzielisz się wiedzą za pomocą jednego z tych mediów, regularnie publikujesz na nim treści, to dajesz żywy dowód na swoją pasję do nauki, dyscyplinę, odwagę a przy okazji masz szansę pokazywać co potrafisz technicznie.

Dla każdej rozsądnej osoby oceniającej Twoją wiarygodność, będzie to znaczyło dużo więcej, niż odpowiedzi na kilka pytań z szablonu i prosty projekt podczas procesu rekrutacyjnego.

No tak, fajnie Marcin ale: “Ja nie umiem pisać, ja nie umiem nagrywać, ja nie umiem mówić”.

Jeżeli dla Ciebie jest to przeszkoda nie do przejścia, to właśnie dowiedziałem się, że najprawdopodobniej albo nie lubisz się uczyć, albo nie jesteś gotów ponosić porażek w imię rozwoju, albo brak Ci dyscypliny.

A co ciekawe właśnie do tych zdolności i wartości, większość kandydatów przekonuje swoich potencjalnych pracodawców w procesie rekrutacyjnym.

Pisać i mówić może nauczyć się każdy, tak samo jak każdy może nauczyć się programowania - to umiejętności. Niekoniecznie będziesz miał pióro jak Szekspir, porywał tłumy jak Cyceron czy pisał kod równie czysty jak Uncle Boba - do tego potrzebne są odpowiednie zdolności i wartości. Tyle że Twoim celem jest budowanie wiarygodności a nie mistrzostwo w wymienionych dziedzinach.

A co jeśli nie jesteś ekspertem w programowaniu i nie masz nic przełomowego do powiedzenia?

To witaj w klubie. Mam na karku zaledwie trzy lata komercyjnego doświadczenia i humanistyczny background. Siłą rzeczy szanse na to, że w najbliższym czasie podziele się ze światem czymś przełomowym, są dość niskie. Nie przeszkodziło mi to specjalnie w wypuszczeniu dziesiątek artykułów i video, które są określane przez ludzi jako wartościowe :).

Po prostu dokumentuj to czego się uczysz. Nie bój się popełniania błędów.

Pracuj nad umiejętnościami, które pozwolą Ci prezentować zdolności i wartości i przy okazji dzielić się wiedzą techniczną. Taki skillset przyda Ci się niezależnie od tego w jakim kierunku pójdzie Twoja kariera. To na pewno lepszy pomysł niż poświęcanie czasu na naukę technologii na zapas. Wie o tym również drugi bohater tego artykułu, Łukasz.

Kiedy zbudujesz wiarygodność, szukanie pracy przestanie przypominać wyścig szczurów. A przy okazji otworzy się przed Tobą wiele furtek w naprawdę ciekawe miejsca.

Powodzenia!