KwalfikacjaKariera NR.8 Rozmowa kwalifikacyjna może być trudnym orzechem do zgryzienia. Przejście rozmowy wymaga od ciebie zupełnie innego zestawu umiejętności. Jako programista rozwiązujesz duże i złożone problemy, które wymagają myślenia całościowego. Na rozmowach kwalifikacyjnych natomiast dostaniesz małe wyzwania wymagające szybkiej odpowiedzi.

Często się też zdarza, że sama osoba rekrutująca jest słabo przeszkolona, albo nie ma pojęcia o programowaniu. Co oznacza, że pytania na rozmowie będą oddalone od rodzaju faktycznej pracy w firmie. W nieprofesjonalnych środowiskach to, czy uda ci się przejść rozmowę może być zależne od stronniczości rekrutującego oraz braku standaryzacji procesu rekrutacji w firmie.

Osobiście nie jestem fanem rozmów kwalifikacyjnych i raczej dążę do tego, aby moja osoba stała się na tyle popularna, aby oferty pracy same do mnie przychodziły. Oczywiście rodzi to problem ponieważ nie każdy z nas ma bloga czy udziela się w społeczności. Dobrze by było być „tak sławnym”, żeby to ludzie zabiegali o ciebie abyś chciał u nich pracować, ale jest to luksus, który nie każdy ma i może mieć.

Jednym słowem rozmowa kwalifikacyjna jest złem koniecznym. Bez niej pracy się nie dostanie. Jakie więc umiejętności są ci potrzebne, aby przejść rozmowę kwalifikacyjną?

1. Podkreśl swoje referencje

Nikt za ciebie tego nie zrobi. Jeśli pracowałeś w firmie, której nazwa jest bardzo dobrze kojarzona, to na pewno warto to podkreślić. A co jeśli nie masz czegoś takiego? W takim razie zastanów się jakie są teraz twoje najważniejsze atuty. Jeśli jesteś ich świadomy przed rozmową, to zapewne łatwiej ci będzie o nich opowiedzieć w trakcie rozmowy kwalifikacyjnej.

Pamiętaj twoim zadaniem jest zaznaczyć co potrafisz. Nawet jeśli jest to napisane w CV twój rekruter zapewne już o tym zapomniał bo czytał 100 innych dokumentów. W sumie to jaką masz pewność, że w ogóle przeczytał twoje CV.

2. Bądź entuzjastyczny

Gdy pierwszy raz szukałem pracy w Warszawie było dla mnie oczywiste, że entuzjazm i wyrażanie swoich chęci to najlepsza broń na każdej rozmowie. Kandydaci zazwyczaj odpadają nie dlatego, że nie znają odpowiedzi na jakieś pytania programistyczne. Odpadają bo rekrutek stwierdza, że nie pasują do szablonu kultury firmy.

Oczywiście ciężko jest zgadnąć jaka jest kultura firmy, ale jedno jest pewne ich obraz pracownika wykazuje się entuzjazmem. Jeśli więc lubisz programowanie i lubisz o nim opowiadać z wielką radością, to nie powinieneś mieć z tym problemu. Pamiętaj w trakcie rozmowy twój entuzjazm z jednej rzeczy możesz przekierować na inny temat.  Dlaczego firmy wybierają takich pracowników? To proste kandydat, który płonie żarem i energią pokazuje, że będzie szczęśliwy pracując tutaj, a skoro będzie szczęśliwy to znaczy, że będzie pracował wydajnie.

Nie możesz udawać swojego pozytywnego nastroju. Nie ma sensu gadać jak “ta” praca jest twoją wymarzoną pracą, gdy mówiłeś to już przez tydzień innym firmom. Lepiej jest opowiedzieć o tym co tak naprawdę cię kręci, mimo iż może nie mieć to nic wspólnego z firmą lub branżą w jakiej się znajdujesz.  

Większość z nas chce dostać dużo pieniędzy i mieć miłą pracę. Oczywiście tego nie powiesz na rozmowie. Zawsze istnieje jakiś powód do bycia zainspirowanym.

Możesz przed rozmową przygotować sobie listę rzeczy, które ciebie podniecają w pracy. Uwaga oczywiście nie mogą to być gołe foty na komputerze.

Jeśli masz taką listę, to bez problemu wybrniesz z pytania -“dlaczego chce pan tu pracować?”.

3. Przygotuj się na podstawowe pytania programistyczne

Nie zrobię ci tutaj listy wszystkich możliwych pytań z JavaScript, C#, SQL, Python i itp. Jeśli startujesz na stanowisko programisty C lub C++ musisz być gotowy na pytania ze struktury danych i algorytmów.

Nie musisz być ekspertem, ale trzeba jednak wyposażyć się w odpowiednią wiedzę na rozmowę. W zależności od twoich zdolności ten etap rozmowy kwalifikacyjnej może wydawać się prosty bądź przerażający. W tym jednak rzecz. Skoro tak mało wiesz o języku, w którym chcesz pisać programy w pracy, to jak w ogóle chcesz przetrwać pierwszy tydzień u nich.

Dlatego jeśli czujesz, że czegoś ci brakuje odważ się przyznać do tego i weź się do nauki. Przygotowanie się do pytań rozmowy kwalifikacyjnej nie tylko pozwoli ci przejść przez tę barierę, ale też faktycznie spowoduje, że staniesz się lepszym programistą.

Zrób więc listę pytań z języka, jeśli jesteś początkującym programistą. Jeśli jesteś już na zawansowanej drodze kariery, to zastanów się jakie pytania mogłyby ciebie zagiąć.  Może pomimo doświadczenia nie wiesz co to są indeksery w C#.  Pomyśl i wypełnij swoje luki.

Zastanów się może nie wiesz co oznacz tag <ol> w HTML.

4. Praktyczne rezultaty twoich przeszłych projektów

Rekruterzy często pytają się o twoje projekty, nad którymi pracowałeś w przeszłości. Jesteś programistą więc z natury odpowiadasz na to pytanie od technicznej strony. Niestety, ale rekruter zazwyczaj nie będzie miał pojęcia o czym ty do cholery mówisz. Sieci neuronowe, MVC i MVVM, boty. Co to oznacza? Koncentrując się na technicznej stronie projektu jak i jego implementacji tworzysz chaos. Rekruter będzie miał problem z ocenieniem czy to, co faktycznie zrobiłeś w tym projekcie miało znaczenie.  

Co gorsza wielu kandydatów lubi przeceniać role swoich prostych projektów, które być może wcale nie działały. Rekruter nie może tego stwierdzić. Dlatego zawsze jest sceptyczny.

Wybierz więc projekt, który podkreśla ostateczny rezultat. Nie koncentruj się na “jak” coś zostało zrobione, tylko na tym co to dało w wyniku końcowym. Może kiedyś napisałeś aplikację na Facebook i wiele osób z niej skorzystało. Może kiedyś napisałeś usługę sieciową, która później odbierała SMS od tysiąca ludzi. Może kiedyś stworzyłeś stronę, która do dzisiaj istnieje i spełniła swój cel dla klienta.

To są projekty, o których warto mówić. Wybierz więc do swojej opowieści projekt, który był najbardziej praktyczny i zrobił coś dla świata.

Szczegóły techniczne zostaw. No chyba, że ktoś cię o nie zapyta. 

5. Jak byś stworzył system X, czyli test analizy

Kolejne pytanie, które może dać niezły ból głowy, jeśli nie jesteś przygotowany.  Spotkasz się z tym pytaniem, gdy będziesz już doświadczonym kandydatem.

Nic tak nie może w końcu sprawdzić twojej wiedzy, jak twój obraz tego, jak złożony system powinien być skonstruowany. Może to być coś prostego jak sklep, blog, serwis informacyjny. Może też być coś trudniejszego jak API dla banku, własna sieć społecznościowa lub aplikacja giełdowa.

Jak widzisz potrzebna jest pewna wiedza by odpowiedzieć na takie pytania. Co więcej trudno abyś wiedział jak zabezpieczyć API dla banku, gdy w takim nie pracowałeś. Poza tym czy to przypadkiem nie jest poufne.

Celem tego pytania jest jednak wykazać twoje zdolności projektowe oraz to czy umiesz pewne pojęcia skleić w sensowne puzzle systemowe. Zastanów się…

Jaka:

  • Baza danych
    • Jakie tabelki
    • Jakie indeksy
    • Jakie plany zapytań
  • Jaki protokół HTTP
  • Jaki mechanizm cache
  • Jaka usługa sieciowa. REST czy SOAP
  • Jak system rozproszyć
  • Jak napisać strony HTML. Angular czy coś innego
  • Jakie wzorce projektowe i w jakiej warstwie
  • Jaki framework to robienia zapytań w SQL
  • System kolejkowy? Jaki NServiceBus?
  • Aplikacja mobilna? Wbudowana baza czy pliki XML

Musisz mieć świadomość tych koncepcji i musisz wiedzieć jak to wszystko dopasować do prawdziwego systemu.

Rodzi się pytanie, ale skąd mam to wiedzieć. Na szczęście istnieje wiele źródeł, które opisują architekturę back-end i front –end. Jednym z nich są projekty programistyczne na stronie CodeProject.

Zacznij od największych kawałków, a potem rozbijaj się na coraz mniejsze elementy. Na każdym większym kawałku zadaj pytanie rekruterowi. Co on dokładnie chce od tego systemu i pokaż mu, że umiesz dostosować swoje odpowiedzi do jego wymagań i specyfikacji.

Rekrutera nie będzie obchodziło czy to wszystko, co powiesz będzie miało sens. Bądź szczery, gdyby każdy umiał przez 7 minut opisać działającą sieć społecznością, to każdy byłby milionerem. Rekrutera obchodzi to czy jesteś w stanie analizować swoje własne rozwiązania. Czy jesteś w stanie ocenić swoje pomysły i znaleźć w nich wady i zalety.

6. Dialog i pomoc od rekrutera

Czy wiesz, że osoba przeprowadzająca z tobą wywiad może ci pomóc. Ona nie gryzie i nie chce ciebie zjeść. Chociaż w naszej głowie to osoba wygląda jak jakiś BOSS w grze, który stoi nam na przeszkodzie do skarbu. Ludzie jednak nie są źli.

Rekruter może dawać ci wskazówki, pomocne pomysły. Jego zadaniem jest w końcu przeprowadzić ciebie przez ten proces.

Zawsze możesz poprosić o dokładniejsze wyjaśnienie pytania. Pozwoli ci to uniknąć pewnych pułapek. Co więcej zadając dodatkowe pytania możesz kupić sobie czas na zastanowienie się nad swoimi pytaniami.

Jest to bardziej przydatne niż myślisz. Jeśli zostałeś poproszony do tablicy do napisania konkretnego kodu – zatrzymaj się. Jeszcze niczego nie pisz. Możesz dużo stracić. Zadaj najpierw pytanie na temat, czy ma być to rozwiązanie eleganckie, czy takie aby było. Nawiąż dialog z tym drugim człowiekiem i zauważ co on dokładnie chce zobaczyć na tej tablicy.

Wymień się pomysłami z rekrutującym, a pokażesz mu więcej niż fragment tekstu, który napisałbyś na tej tablicy.

Pamiętaj o tym. Nawet jeśli dostaniesz jakieś dziwne pytanie z algorytmu, o którym nigdy nie słyszałeś, zawsze może poprosić o pomoc i być mądrzejszy na następnej rozmowie o pracę.

7. Ćwicz

W Warszawie moja pierwsza rozmowa o pracę była kompletną porażką. Każda następna była lepsza, ale zdarzały się błędy. To co zadecydowało o moim sukcesie na rozmowie, to pamięć co do odpowiedzi na pytania, które wcześniej zawaliłem.

Musisz więc ćwiczyć i przeprowadzać jak najwięcej rozmów kwalifikacyjnych. Rozmowy kwalifikacyjne są stresujące, a stres utrudnia pokaz twoich umiejętności.  Jak więc pokonać ten stres? Trzeba się do niego przyzwyczaić przeprowadzając wiele rozmów. Nie napiszę ci tutaj na jakie pytania powinieneś się przygotować. Zrób jednak sobie listę i ćwicz.

Nie każda firma robi testy przy tablicy bądź przy laptopie, ale możesz poćwiczyć pisanie wzorca projektowego Sigleton z palca przy użyciu kartki papieru. Wiele pytań na rozmowach kwalifikacyjnych jest powielanych, więc masz szansę na nie się przygotować.

Jeśli masz przyjaciół pozwól, aby to oni zadali ci pytania. Ćwiczenie jest esencją. To też sprawia, że początkujący programiści potrafią sobie lepiej radzić na rozmowach kwalifikacyjnych niż bardziej doświadczeni.

Firmy, o dziwo o tym wiedzą i rozmowy kwalifikacyjne wydają się łatwiejsze wraz z nabytym doświadczeniem, bo firmy mają zaufanie do twoich zdolności oraz do tego, że nie masz ochoty bawić się w tę zabawę, jeśli masz już pracę.

Przechodzenie rozmów kwalifikacyjnych jest więc pewną umiejętnością, której nie będziesz miał od razu, ale nabędziesz ją w praktyce po pewnym czasie.