Skip to content

9 rad dla osób bez doświadczenia szukających pierwszej pracy lub stażu w programowaniu

Po internecie krąży porównanie rynku programistycznego dla juniorów i juniorek do sytuacji mężczyzn na Tinderze. W obu tych wypadkach, aby cieszyć się powodzeniem znalezienia pierwszego doświadczenia lub znalezienia partnerki, należy uchodzić za co najmniej 9/10 na tle konkurencji.

Jeżeli zaciekawił Cię wątek Tindera, to zostawiam tutaj wątek do artykułu, gdzie przeczytasz więcej o tym, że zasada Pareto działa również i tam, oraz że Tinder jest mniej sprawiedliwą gospodarką ekonomiczną od 95% gospodarek narodowych na świecie https://medium.com/@worstonlinedater/tinder-experiments-ii-guys-unless-you-are-really-hot-you-are-probably-better-off-not-wasting-your-2ddf370a6e9a#.u9kjjrno3

O ile mężczyznom ciężko będzie przeskoczyć niektóre ze swoich fizycznych atrybutów i urosnąć przekraczając magiczną barierę 180 cm. O tyle w kwestiach poprawy swoich szans jako kandydata na praktyki jest już nieco łatwiej, w czym może pomóc niniejszy artykuł. Ale po kolei.

Skąd pomysł?

Niedawno zakończyliśmy rekrutację do kolejnej edycji praktyk, którą mam przyjemność współorganizować w obecnej firmie, w której pracuję w TomTom.

Tak, TomTom to ci od nawigacji, które mijałeś czasem w Saturnie lub innym Merkurym. Mogłeś się wtedy zastanowić:

Co za boomer to jeszcze kupuje, mając w dzisiejszych czasach smartfona w kieszeni?

To prawda, rynek nawigacji znanych jako urządzenia przyczepiane do szyby, od kilku lat sukcesywnie umiera. Nie oznacza to jednak, że TomTom nie widzi tego trendu. W firmie dzieje się sporo i tak o ile nawigacje jako urządzenia stanowią coraz mniej istotny element w portfolio firmy, jest sporo innych rzeczy, które firma rozbudowuje z sukcesem:

– Tworzymy mapy, również takie dla pojazdów autonomicznych,

– Budujemy nawigacje zintegrowane z autami czy dla użytkowników wspomnianych już smartfonów

– Oferujemy serwisy lokalizacyjne dedykowane innym programistom, którzy nie chcą wydawać majątku i tracić swojej prywatności na rzecz Google,

-Możemy się też pochwalić jednym z najlepszych pod względem jakości źródeł danych o ruchu drogowym.

– Mogłeś też słyszeć o corocznym badaniu – rankingu zakorkowanych miast na świecie https://www.tomtom.com/en_gb/traffic-index/, tak to również nasza sprawka.

Wracając do wątku praktyk. Poszło zaskakująco sprawnie, niecały miesiąc wystarczył, aby:

  1. Pozyskać zadowalającą ilość kandydatów na nasze stanowiska,
  2. Ocenić ich CV oraz portfolio projektowe i wybrać grupę, z którą chcieliśmy porozmawiać,
  3. Finalnie ocenić jak wypadli na rozmowie i zaproponować staż czwórce, która była najlepsza.

To co my rekrutujący nazywamy sukcesem, po drugiej stronie może być postrzeganie jak coś zupełnie odwrotnego. W końcu dla 90% kandydatów proces ten zakończył się nieosiągnięciem upragnionego celu. Wolę jednak, aby wszystkie osoby uczestniczące w tym procesie wyciągnęły coś dla siebie i nie traktowały tego jak porażkę.

Główny grzech firm rekrutujących

Właśnie z tego powodu uważam, że dobry proces rekrutacyjny, powinien zawierać wartościowy feedback dla drugiej strony. Zbyt często słyszałem narzekania moich studentów, którzy byli na etapie poszukiwania swojej pierwszej okazji do zdobycia doświadczenia. Dostawało się zarówno małym, jak i dużym:

  • A to brak jakiejkolwiek reakcji na wysłane CV,
  • A to brak oceny na dalszym etapie rekrutacji,
Skrzynka pocztowa kandydata oczekującego na feedback

Zupełnie tak jakby brak odpowiedzi był wystarczającym feedbackiem dla kandydata. A przecież taka osoba, z chęcią usłyszałaby:
– nad czym powinna jeszcze popracować,
– jakie błędy popełniła w trakcie rekrutacji,
– oraz jakie elementy oceniane są dobrze.

Nie chcę być osobą, która kontynuuje tę niechlubną tradycję. Dlatego też informację zwrotną w prywatnej wiadomości, mailowej lub za pośrednictwem innych mediów dostały wszystkie osoby, które aplikowały na staż. Zawarłem tam porady dotyczące tego, nad czym warto skupić się w dalszym rozwoju. Nie pominęliśmy też mocnych stron kandydatów, aby potwierdzić dobry kierunek rozwoju tych obszarów, w których poradzili sobie dobrze.

Po tym wydarzeniu stwierdziłem, że warto napisać artykuł dla szerszego grona, zbierającego porady w bardziej ogólnej formie. Nie chciałem powielać oczywistych punktów typu koduj więcej, ale przedstawić kilka subtelniejszych porad, które nie dla wszystkich są tak oczywiste. Liczę, że dzięki takiej formie uda się dotrzeć do większej grupy odbiorców niż „tylko” kilkadziesiąt osób, zaangażowanych w tę konkretną rekrutację, jednej firmy.

No to zaczynamy. Na początek zestaw porad, które sprawią, że twoje CV będzie miało większe szanse przejść do kolejnego etapu. Sercem każdej kandydatury, jest portfolio projektowe, które zdradza bardzo dużo o doświadczeniu, jakości kodu jaki, ktoś generuje oraz jak mniej więcej wygląda przygoda z programowaniem.

personalne projekty

Szerszy kontekst prywatnych projektów został poruszony tutaj https://kodujmy.pl/dlaczego-personalne-projekty-programistyczne-sa-tak-wazne/. Znajdziesz tam sporo przydatnych informacji, między innymi czemu w dzisiejszych czasach dobre portfolio może być o wiele ważniejszym elementem niż jakikolwiek papier dokumentujący ukończenie uczelni czy bootcamp.

Posprzątaj swojego GitHuba

Tak jak kilkanaście lat temu, twoja mama, wytykała ci nieposprzątany pokój, tak ja dzisiaj zwracam się do ciebie z podobnym apelem na temat twojego GitHuba. Dlaczego kilka lat temu, zapraszając kogoś do swojego pokoju, zadbałeś o to, aby był w nim porządek, a dziś nie stosujesz podobnej strategii do swoich prywatnych projektów?

Czasem i taki zabieg wystarczy, aby twoje repozytorium robiło lepsze wrażenie.

Pierwszym elementem, który wpływa na decyzję jest to jakie wrażenie na rekruterach robi profil GitHub. Doświadczone osoby, są w stanie wyczytać z niego bardzo dużo, ale zanim to nastąpi, musimy im dać szansę. Jeżeli masz kilkanaście repozytoriów, jaką masz pewność, że osoby oceniające Cię, zajrzą do tego, z którego jesteś najbardziej dumny.

Przy dziesiątkach CV spływających do rekruterów, ważne jest, aby ocena twojego była jak najłatwiejsza. Dlatego też polecam Ci:

  1. Powywalaj stare repozytoria, które niekoniecznie chcesz eksponować w procesie rekrutacji. W szczególności te, które nie są kompletnymi projektami, a np. zacommitowanym kodem na początku twojej nauki, łącznie ze skompilowanymi źródłami i chaosem w kodzie.
  2. Zostaw i wyeksponuj (np. przez opcję przypiętych repozytoriów) Twoje kluczowe projekty. Najprawdopodobniej będą to najnowsze projekty. Pamiętam, z doświadczenia, że każdy kolejny projekt rozbudowywał moje umiejętności, dzięki czemu poprzeczkę można było stopniowo podnosić i realizować co raz to bardziej wyzywające projekty.
  3. Umieść wzmiankę o kluczowych projektach w twoim CV. Taka sekcja, jest świetną alternatywą dla osób, bez doświadczenia. Niektóre z sekcji na etapie filtrowania CV, potrafią robić bardzo dobre wrażenie

Jak dobrym jesteś fotografem?

Tutaj fotograf Jordan Matter, specjalizujący się w fotografowaniu baletnic.

Czasem więcej wcale nie znaczy lepiej. Od Davida Becketta słyszałem kiedyś świetny przykład metafory, którą z powodzeniem można zastosować również w tym przypadku. Jeżeli, ktoś poprosi Cię o pokazanie Twoich najlepszych zdjęć, aby na ich podstawie ocenić, jak dobrym jesteś fotografem. Jest duża szansa, że zadziała tutaj pewien schemat.

  1. Jeżeli pokażesz swoje 3 najlepsze zdjęcia, które zrobiłeś w całym swoich życiu, jest duża szansa, że osoba oceniająca, powie, że jesteś świetnym fotografem z dobrym warsztatem.
  2. Pokazując 20 zdjęć, oczywiście zawrzesz w nich swoje 3 najlepsze zdjęcia, ale będą one ukryte pośród 17 innych nieco gorszej jakości. W tym wypadku ocena z dużym prawdopodobieństwem będzie oscylować w okolicach, niezłego fotografa.
  3. Jeżeli dostarczysz, zbiór 100 fotografii, znajdą się tam zdjęcia wybitne, dobre, ale również takie, które tylko Ty cenisz, a inni uznają za mocno przeciętne. W tym przypadku jest nikła szansa, że ktoś oceni Cię jako wybitnego fotografa, a większe prawdopodobieństwo, że dostaniesz łatkę przeciętnego fotografa.

Przekładając to na nasz kontekst. Nie ma znaczenia ile rozgrzebanych projektów typu CRUD pokażesz w swoim CV, dużo ważniejsze jest, aby osoba oceniająca trafiła na ten najbardziej wartościowy. Płynnie przechodzimy więc do drugiego punktu.

Oprowadź rekrutera po swoim portfolio

Jest nieco lepiej niż w poprzednich edycjach, bo zdecydowana większość repozytoriów posiada już namiastkę README. Niestety nadal nieliczni robią to dobrze, czyli tak, aby wprowadzenie do ich projektów było jak najsprawniejsze. W wielu brakuje ogólnego opisu, co to za projekt i jaki jest jego cel. Jeszcze rzadziej kandydaci prezentują link do DEMO, czy screeny prezentujące jak wygląda ich aplikacja na żywo. A przecież w dzisiejszych czasach, uruchomienie projektu na platformie pokroju Heroku, jest niezwykle proste i dodatkowo pokazuje dodatkowe umiejętności kandydata.

Gdybyś był ciekawy jak to zrobić, koniecznie przeczytaj mój poprzedni artykuł, gdzie opisałem krok po kroku jak uruchomić projekt Spring Boot na tej darmowej namiastce chmury, w pełni za darmo.
https://kodujmy.pl/jak-uruchomic-swoj-projekt-spring-boot-w-sieci-na-platformie-heroku/

README, to pierwsza okazja, aby wzbudzić zainteresowanie i przyciągnąć oceniającego na dłużej. Ciekawie zaprezentowane projekty, powodują, że chętnie nurkuje się w kod, aby zobaczyć jak zostały zaimplemetnowane niektóre elementy.

Jeżeli szukasz narzędzia, które wygeneruje Ci szybki szkielet pod twoje README, polecam serwis https://readme.so/

Dosłownie kilkoma kliknięciami jesteś w stanie wygenerować szablon gotowy do wypełnienia.

Prawda jest jednak taka, że nawet najlepsze README nie spowoduje automatem, ze twój projekt będzie ciekawy, dlatego też przydatna będzie kolejna rada.

Spraw, aby twoje projekty były ciekawe

Ilość księgarni, sudoku, tic tac toe wśród projektów jest zdecydowanie wyższa niż innych bardziej niszowych i oryginalnych pomysłów. To element, którym zdecydowanie można się wyróżnić na tle innych. Przy ocenie CV i portfolio projektowego ten element ma spore znaczenie. Ciekawe projekty to coś, co potrafi przykuć uwagę na dłużej i w efekcie spowodować, że to właśnie ta kandydatura będzie miała większe szanse na przejście do kolejnego etapu rekrutacji.

Na dalszym etapie dobrze wybrany projekt, pozwala na prowadzenie ciekawej dyskusji w trakcie rozmowy rekrutacyjnej. Jest to świetna okazja do zaprezentowania pasji, zaciekawienia domeną i wplecenia w to wszystko aspektów technicznych. W kontrze, bardzo proste projekty z namiastką domeny są słabszym zapalnikiem pod taką dyskusję.

A co z ciekawymi technologiami?

Ciekawość możemy również rozpatrywać w innym aspekcie, a mianowicie doboru technologii w projekcie. Tak dobrany tandem pozwala na stworzenie projektu idealnego na potrzeby rekrutacji. I tutaj jedną z pierwszych rad, która mi się nasuwa na podstawie doświadczeń przeglądania dziesiątek (jak nie setek, licząc poprzednie edycje) kandydatur.

Zainwestuj w testy, to część, która nadal wśród projektów jest mocno marginalizowana i może stanowić ciekawy wyróżnik twoich projektów. Projekty z testami, nawet tylko tymi dla kluczowej funkcjonalności (serca domeny) powodują, że ktoś podchodzi do realizacji projektów z dużą dozą staranności i dbałości o jakość.

Tutaj moje wystąpienie na temat testów w Javie, które może stanowić dobre wprowadzenie do tematu, po więcej szukaj towaru od Oli Kunysz

Nie zostawiaj projektów rozgrzebanych

Wśród kilku kandydatur, dało się zauważyć, że projekty nie są kończone w żadnym sensownym etapie. Wiele osób zbyt mocno rozdmuchuje zakres i skupia się na szerokim pokryciu funkcjonalnościami, w efekcie nie dowożąc skończonego minimalnego zakresu, nie mówiąc już o dociągnięciu pewnych detali.

Ilu Edwardów skrywa twój GitHub?

Dużo lepsze wrażenie zrobi mniejszy i skromniejszy projekt, ale dociągnięty do jakiegoś etapu. Najprościej osiągniesz to, minimalizując zakres funkcjonalny projektu. Pokażesz w ten sposób, że dowozisz rzeczy do końca i nie masz słomianego zapału. Lepiej jeśli zainwestujesz swój czas w dopieszczenie podstawowych kluczowych funkcjonalności, dodasz porządne README, poprawisz kwestie estetyki czy zadbasz o lepszy UX. Samą dalszą wizję warto wtedy sprowadzić do np. prostej formy roadmapy rozwoju projektu, jaką masz w planach, którą zawrzesz w jednym z rozdziałów README projektu. Na koniec zawsze warto, abyś pamiętał o zasadzie Pareto i zastanowił się, które 20% stanowi o 80% wartości twojego projektu. Od razu podpowiem, że nie jest to autoryzacja i uwierzytelnianie.

To tyle jeśli chodzi o szybkie porady na temat, samego portfolio projektowego. Druga część stanowi sekcje, która może przydać się już podczas samej rozmowy rekrutacyjnej.

Popracuj nad komunikacją

Założenie, że z programistów zdejmuje się odpowiedzialność dobrego komunikowania się, jest iluzją. Obraz grubego okularnika, zamkniętego w swojej pieczarze i kodującego coś w samotności w niemal żadnym stopniu nie przypomina pracy programisty w XXI wieku.

Nie powinien dziwić fakt, że jest to jeden z bardziej istotnych punktów, na który zwracamy uwagę podczas rekrutacji, zarówno my, jak i inne firmy. Dodatkowo słabe umiejętności komunikacyjne, nierzadko wpływają negatywnie na odbiór innych umiejętności np. stanu posiadanej wiedzy.

Najpierw ogół, później szczegół

Od mojego kolegi studiującego archeologię słyszałem lata temu, że studiuje najbardziej leniwy kierunek w Polsce. Kiedy spytałem go, co oprócz picia ponadprzeciętnych ilości alkoholu, uczy się przeciętny student archeologii, uraczył mnie historią:

Będąc na pierwszym roku, kiedy wykopiesz jakiś obiekt z ziemi, jesteś w stanie stwierdzić, że jest to jakiś kawałek drewna.

Na drugim roku, oprócz rozpoznania materiału, będziesz już w stanie powiedzieć, że jest to element łodzi, a drzewo, z którego ją wykonano to eukaliptus wierzbowaty.

Na trzecim roku, rozpoznasz, że jest to kawałek drewna z eukaliptusa wierzbowatego, z którego wykonano łódź, która powstała w 1830 roku i przemierzała się w okolicach Sydney.

Ta łódź naprawdę istniała i odkryto ją podczas budowy kolejnej stacji metra w Sydney.

Nie wiem, jak bardzo dobrze ta historia odwzorowuje program studiów archeologicznych, podoba mi się w niej stopniowe wchodzenie w szczegóły. Jest to rzecz, której niewątpliwie warto się nauczyć w ramach dobrej komunikacji.

Warto, abyś nabył umiejętności prezentowania informacji, zaczynając od ogółu i stopniowego przechodzenia do szczegółów. Rozmowy rekrutacyjne, bardzo często mają tak skonstruowane pytania, aby stopniowo badać, jaki stan wiedzy posiada kandydat. Warto iść według schematu i zaczynać od wyjaśnienia podstaw i stopniowo zanurzać się w szczegóły, dzięki temu twoja wypowiedź będzie bardziej uporządkowana. Przykładowo mówiąc o konkretnych kolekcjach w Javie, warto najpierw zacząć od interfejsów, a następnie prechodzić do konkretnych implementacji. Spotkałem się z kandydatami, ale i ze współpracownikami, którzy mają tendencję do rzucania się w wir opowiadania, od razu przechodząc do detali, zbyt często zakładając, że ta druga strona zna dokładnie pełny kontekst. Taki sposób komunikacji jest zdecydowanie trudniejszy w odbiorze. Zawsze zaczynaj od kawałka drewna! 🙂

Analogia do ładowania obrazów jest tutaj dobrym przykładem.

Tchnij trochę pasji w to, o czym mówisz

Kiedy masz możliwość porozmawiania o swoich doświadczeniach, o swojej przygodzie z programowaniem, zadbaj o to, aby forma prezentowania tego zrobiła jak najlepsze wrażenie na odbiorcach. Pytania podczas rozmów rekrutacyjnych często powielają schemat i się powtarzają. To powoduje, że da się do takich rozmów wcześniej przygotować i przećwiczyć pewne fragmenty, które potencjalnie mogą się pojawić.

  • Własne projekty?
  • Wcześniejsze doświadczenie z programowaniem?
  • Odbyty kurs?
  • Pytanie o sposoby nauki?

Wszystkie z tych pytań dają możliwość, dobrego przygotowania odpowiedzi przed rozmową, dzięki czemu, w momencie, w którym już padną, nie będziesz zmuszony na biegu wygrzebywać ich z zakamarków swojej pamięci. Kolejna rzecz, o której pamiętają tylko niektórzy kandydaci, to dzielenie się tym o czym aktualnie myślą. Zdecydowanie ważniejszym elementem podczas rozwiązywania zadanych problemów jest zaprezentowanie drogi dochodzenia do rozwiązania i podzielenie się swoim sposobem dedukcji, niż sam efekt końcowy,

Twój osobisty gabinet do treningu przemów

Podzielę się z Tobą radą, jaką ja stosuję od kilku lat. Zanim to zrobię musisz wiedzieć, że jeszcze kilka lat temu, w całości podpisałbym się pod badaniami z których wynikało, że:

Ludzie bardziej od swojej śmierci boją się publicznych przemów. Inaczej to ujmując, Ci sami ludzie na pogrzebie woleliby leżeć w trumnie niż wygłaszać mowę końcową.

Od kilku lat, nie mam takiego problemu, a licznik przemów w ramach różnych okazji jak szkolenia, prezentacje wykręcił wynik kilkukrotnie większy niż moje wszystkie przemowy przez poprzednie kilkadziesiąt lat życia. Nie odkryję tutaj Ameryki, gdy powiem, że jak wszędzie sekretem jest praktyka. Mnie osobiście na samym początku przygody w poprawie pewności siebie i wyeliminowaniu przerywników yyyy… eee… pomogły dwie rzeczy:

  • Fikcyjne przemowy sytuacyjne w samochodzie, gdzie niczym schizofrenik gadamy sami do siebie odgrywając pewna scenkę. Mozemy tak na przykład trenować to, że właśnie teraz jest moment w którym, musimy opowiedzieć o swoim największym wyzwaniu programistycznym, z jakim dotychczas mierzyliśmy ucząc się programowania.
  • Nagrywanie swojej własnej osoby i zbieranie w ten sposób feedbacku na temat tego jak składamy wypowiedzi. W wersji z plusem w której dodatkowo możemy rejestrować video, zyskujemy tez cała masę informacji zwrotnych na temat mowy niewerbalnej. Nie zawsze mamy pod ręką inną osobę, która będzie miała dla nas czas, aby posłuchać nas i podzielić się oceną.

Nie muszę dodawać, że oba z tych punktów można wygodnie łączyć. Samochód i rutynowa podróż na zakupy, daje dobrą prywatną przestrzeń do tego, aby poćwiczyć przemowy, a włączony dyktafon w telefonie pozwala na zebranie materiału pod ocenę, nad czym jeszcze powinniśmy popracować. I tak zdaję, sobie sprawę z tego jak ciężko słucha się samego siebie. Z drugiej jednak strony, przynajmniej możesz mieć pewność, że oceniający w tym wypadku, nie będzie zbyt łagodny w swojej ocenie.

Zrozum to czego używasz

Wiedza, którą zdobywamy ma różne poziomy głębokości. Jej pełne spectrum określiłbym następująco:

  • Na samym początku, to wiedza, którą używamy w praktyce, ale jej znajomość jest powierzchowna. To jak skopiowanie odpowiedzi stackoverflow, do rozwiązania naszego problemu. Owszem, cel osiągnięty, coś tam rozumiemy, ale jeżeli mielibyśmy wejść w szczegóły jest już ciężko.
  • Na drugim skraju jest wiedza głęboka, która sprowadza się do poziomu, kiedy możemy wiedzę przekazywać innym. Jeżeli dany problem, zagadnienie, jesteśmy w stanie wyjaśnić prostym językiem, bez chowania się jak skomplikowane jest dane zagadnienie, wtedy właśnie jesteśmy postrzegani jako ekspert i ktoś kto na prawdę rozumie temat.

Wracając do naszych rozmów. Duża liczba osób, z którymi rozmawiamy, zatrzymuje się na poziomie powierzchownego rozumienia pewnych zagadnień. Taka wiedza na tym poziomie jest rozsmarowana i cienka jak ciepłe masełko. Najczęściej, jest ona oparta na praktyce. Czyli uczysz się tyle ile potrzebujesz, do zrealizowania jakiegoś praktycznego elementu w twoim projekcie.

I dobrze! W dzisiejszych czasach zasada „Just in time learning” sprawdza się doskonale.

Tak właśnie powinno wyglądać dobre budowanie solidnej wiedzy. Istotne jest jednak, aby nie zatrzymywać się na tym poziomie, a od czasu do czasu, porządkować swoją wiedzę od strony teoretycznej np. czytając książkę czy nurkując głębiej w źródła lub dokumentacje, aby złapać szerszy kontekst i lepiej zrozumieć pewne założenia. Te sposoby o ile nie są najlepszym na początku nauki, świetnie sprawdzają się jako uzupełnienie do praktyki i zalepiania dziur.

Jeżeli nie potrafisz czegoś wytłumaczyć to tego nie rozumiesz

Moją osobistą inspiracją w tej tematyce jest noblista Richard Feynman, który był wielkim adwokatem głębokiego rozumienia zagadnień, do takiego stopnia, aby można swobodnie tłumaczyć je innym. Twierdził, że jeżeli ktoś nie potrafi czegoś wytłumaczyć innym prostym językiem tak, aby zrozumiało to nawet dziecko, to tak naprawdę tego nie rozumie.

Tutaj przykład z serialu Czarnobyl

Warto rozumieć szerszy kontekst tego, z jakich narzędzi korzystamy. Użyłeś w projekcie Hibernate… przykro mi świetnie, ale zadaj sobie pytanie, co tak naprawdę daje Ci ten czy inny framework/biblioteka. Jeżeli potrafisz opowiedzieć o tym na rozmowie, robisz świetne wrażenie na tle wielu innych kandydatów, którzy, póki co potrafią jedynie przeklejać kod z tutoriali.

Ćwicz algorytmiczne potyczki

Tak zwane whiteboardy, są kontrowersyjnym tematem w rekrutacjach. W ostatnich latach ich udział w procesie rekrutacji zmienia się jednak na rzecz, bardziej praktycznych zagadnień w rekrutacjach. Wszystko to również dzięki popularyzacji platformy DevSkiller.

Kontrowersyjne czy wartościowe?

Słynny tweet Maxa, w którym krytykuje Google za sposób rekrutacji.

Pomijając jednak, czy niskopoziomowe zadania pojawią się na rekrutacji, czy też nie, warto poświęcić swój czas na delikatne podbicie swoich umiejętności myślenia analitycznego. To prawda, że dużą część pracy programisty, stanowi budowanie projektów z gotowych komponentów i tej prawdziwej algorytmiki jest nieco mniej, niż wielu osobom na początku się wydaje. Niezależnie od tego, czas poświęcony na tego typu zadania, dobrze wpływa na trening myślenia logicznego i polepszenie umiejętności kodowania, co jest szczególnie istotne na początku nauki programowania. Serwisów do treningu tego typu zadań jest cała masa, poniżej lista tych, które znam:

  1. Hacker Rankhttps://www.hackerrank.com/
  2. Codilityhttps://codility.com/
  3. Code Warshttp://www.codewars.com/
  4. Projekt Eulerhttps://projecteuler.net/
  5. Code Fighthttps://codefights.com/home
  6. Coding Bathttp://codingbat.com/
  7. Top Coderhttps://www.topcoder.com/
  8. Reddithttps://www.reddit.com/r/dailyprogrammer
  9. Code Chefhttps://www.codechef.com/problems/school
  10. Code Bytehttp://coderbyte.com/CodingArea/Challenges/
  11. Exorcism IOhttp://exercism.io/
  12. Coding Gamehttps://www.codingame.com/start
  13. Hacker Earthhttps://www.hackerearth.com/challenges/
  14. Codde Abbeyhttp://www.codeabbey.com/index/task_list
  15. Rosalindhttp://rosalind.info/problems/locations/
  16. Sphre Online Judgehttp://www.spoj.com/
  17. Check IOhttp://www.checkio.org/
  18. Empire of Codehttps://empireofcode.com/
  19. Leet Codehttps://leetcode.com/
  20. SQL ZOOhttps://sqlzoo.net/
  21. Free Code Camphttps://www.freecodecamp.org/

Niekoniecznie warto poświęcać na nie większość swojego czasu, ale z doświadczenia, swobodne rozwiązywanie niższych i średnio-zaawansowanych poziomów takich zadań, jest dobrą wprawką, do zdobycia swobody w kodowaniu. Dzięki temu, ilekroć następnym razem, ktoś podczas rozmowy poprosi Cię o szybkie zaimplementowanie fizz buzza, nie będzie to stanowić większego problemu.

Nie skupiaj się wyłącznie na języku

To jeden z tych punktów, którego nie trzeba mocno tłumaczyć osobom realizującym praktyczne projekty. Naturalne jest, że sam język nie pozwoli na realizację bardziej skomplikowanych projektów, ponad skrypty automatyzujące jakiś proces lub prostych aplikacji konsolowych. Z tego więc powodu, ilekroć, ktoś realizuje projekt praktyczny nierzadko od strony praktycznej pozna podstawy frontendu, to jak działa protokół HTTP czy jak realizować podstawowe zapytania w bazie SQL. To bardzo naturalny proces.

Jeżeli jesteś jednak na początku drogi w nauce programowania i nie tak wyobrażałeś sobie drogą do pozyskania pierwszej pracy, warto, abyś wiedział, że samo wymaxowanie skilla w jednym języku nie zapewni Ci sukcesu na rynku pracy dzisiaj. Podobnie jak wpakowanie wszystkiego w siłę w grze RPG nie jest najlepszym pomysłem, tak tutaj przydają się inne umiejętności i wiedza.

Dlaczego budowanie profilu „T” jest bardziej wartościowe od profilu „I”?

Szczególnie w ostatnich latach, gdzie sylwetka programisty bardziej powinna przypominać kształt T. Taka sylwetka pasuje o wiele lepiej do zwinnych organizacji z kulturą DevOps. Dla kontrastu sylwetka z wąską, ale głęboką ekspertyzą, czyli kształt I jest mniej pożądany na rynku, niż jeszcze kilkanaście lat temu. Historycznie sprawdzała się ona dużo lepiej w silosowych organizacjach. Tam roadmapa z wycenami, powstawała na najbliższe 2 lata, a Ty byłeś tylko trybikiem w wielkiej maszynie, mogąc skupić się w pełni na małym wycinku dużego problemu.

Jeden z powodów, dla których to właśnie specjaliści z ogólnymi umiejętnościami, są pożądani na rynku pracy opisuje ten artykuł https://jchyip.medium.com/why-t-shaped-people-e8706198e437

TLDR: Chodzi przede wszystkim o możliwość uwolnienia czasu specjalistów. Wszystko po to, aby mogli zająć się likwidacją wąskich gardeł. W tym czasie reszta zajmie się planktonem zadaniowym, do którego nie potrzeba wielkiej ekspertyzy. I tak mając sylwetkę typu T, możesz jednego dnia rozwalać trudne problemy ze swojej dziedziny. Następnego dnia natomiast rozwiązywać proste zadania, aby odciążyć innych ekspertów i pozwolić im spełniać się w swojej podstawowej dziedzinie.

W ramach tego punktu jeszcze raz odwołam się do poprzedniego punktu szóstego. Polecam, aby zrozumieć nieco lepiej, to z czego korzystasz. Dobre rozumienie, robi bardzo dobre wrażenie na rozmowie i jest dużo ważniejsze od szerokiego, ale pobieżnego rozumienia wielu dziedzin.

Przygotuj dobre pytania

Na sam koniec punkt dotyczący umiejętności zadawania pytań. Są osoby, które bardzo dobrze wykorzystują ten moment rozmowy i zadają dobre pytania. Dzięki temu mogą dowiedzieć się przydatnych dla nich informacji, które mogą im się przydać później. Nie jest to jednak jedyny powód, dla którego warto zadawać pytania.

Jak Benjamin Franklin może Ci pomóc w trakcie rekrutacji?

Nie chodzi mi wcale o banknot o nominale 100$

Czy słyszałeś kiedyś o efekcie Benjamina Franklina? Figuruje on również pod nazwą efektu wyświadczonej przysługi.

Jest to tendencja do zmiany postawy na bardziej przyjazną w stosunku do osób, dla których zrobiło się coś dobrego.

Wikipedia

Jest to bardzo ciekawe zjawisko, które jest niesamowicie nieintuicyjne. Polega na tym, że bardziej cenimy osoby, którym wyświadczamy przysługę, niż te które pomagają nam. Jest spora szansa, że prosząc kogoś, o przysługę, zdobędziesz jego sympatię, w przeciwieństwie do narzucania się z pomocą. A jak zyskać sympatię podczas rozmowy rekrutacyjnej? Oczywiście wykorzystując tę zasadę w praktyce.

Przykładami dobrych pytań, które mogą paść podczas rozmowy, są:

  • Co będzie przydatne do przygotowania we własnym zakresie przed rozpoczęciem stażu pracy u was?
  • Kiedy dostałeś się do firmy (kierowane do rekrutera), jakie były Twoje największe wyzwania w trakcie pierwszego pół roku?
  • Jaka jest twoja wizja idealnego zespołu i jak najlepiej mógłbym wnieść wkład do tego modelu?

Warto, aby pytanie było ciekawe i angażujące rozmówcę. Odpowiedź na nie powinna coś wnosić do samego procesu rekrutacyjnego np. obrazować Ci, jaka kultura panuje w firmie, lub na czym możesz się skupić, aby mieć większe szanse na kontynuację pracy po okresie próbnym lub stażu.

Podsumowanie

Tak dużego zapotrzebowania na programistów nie było nigdy dotąd. Technologia z roku na rok powszednieje i ułatwia realizację własnych pomysłów. Jeszcze kilka lat temu, realizacja jakiegokolwiek projektu personalnego była o wiele trudniejszym zadaniem niż dzisiaj. Nie oznacza to jednak, że zdobyć pierwszą pracę jest łatwo.

Wbrew marketingowym zagrywkom szkół bootcampowym, to zadanie wcale nie należy do najprostszych. Okupione jest natomiast procesem idącym w setki godzin, które musisz poświęcić na budowę projektów, naukę i doskonalenie umiejętności z bardzo różnych obszarów. Same rekrutacje przypominają mi trochę, walkę kandydatów o jedno miejsce na prestiżowym kierunku studiów.

Nie ma tutaj niestety dróg na skróty, chociaż dobra mapa, może pomóc w tym, abyś lepiej inwestował swój najcenniejszy zasób, jakim jest czas. Liczę, że te 9 punktów w jakiś sposób spełnia taką rolę. Powodzenia w dalszym doskonaleniu i do usłyszenia!