11 pytań rekrutacyjnych, do których programista powinien się przygotować
Rozmowa rekrutacyjna z programistą nie jest prostą sprawą. Wielu z nich spodziewa się jedynie pytań związanych z określonym językiem programowania i umiejętnościami technicznymi. Tymczasem programista, którego poszukują pracodawcy to również osoba o takich kompetencjach jak zorientowanie biznesowe, umiejętność pracy w grupie, komunikacji, pracy pod presją czasu i trzymania się terminów. Dlatego podczas rozmowy rekrutacyjnej na stanowisko programisty czy developera, pada szereg pytań pozornie nie związanych z samymi umiejętnościami technicznymi. Na jakie pytania powinien się developer przygotować i jakie cechy lub umiejętności się pod nimi kryją?
1.Jak uaktualniasz swoją wiedzę programistyczną?
To pytanie związane jest z chęcią i otwartością na zdobywanie nowych doświadczeń i naukę nowych rzeczy. Kompetencja w dobie rozwoju nowych technologii niezbędna. To, czego oczekuje pracodawca, to nie tylko przeglądanie branżowej prasy czy internetu w obszarze specjalizacji programisty, ale również eksploracja nowych obszarów – np. nowych języków czy implementacji nowych rozwiązań. To także pisanie „do szuflady” aplikacji czy podejmowanie się udziału w projektach, które wymagają zdobycia dodatkowych umiejętności. Warto podkreślić tu również rozmowy z „kolegami po fachu” czy wszelakie spotkania i meet-upy, które organizowane są przez pasjonatów w każdym większym mieście.
2.Co robisz kiedy orientujesz się, że w kodzie jest bug?
Dobry programista nie tylko potrafi napisać szybko i trafnie kolejne linijki kodu, ale również do zweryfikować i sprawdzić. Jeśli coś nie działa, zamiast wprowadzania na ślepo zmian i poprawek, menedżer oczekuje przeprowadzenia szybkiej weryfikacji istniejącego kodu – zwłaszcza, jeśli programista nie jest jego twórcą. Przy okazji tego pytania często pojawia się zadanie praktyczne, związane ze naprawieniem buga w realnym fragmencie kodu.
3.Opisz swoje idealne stanowisko / środowisko pracy.
Niektórzy programiści świetnie czują się w grupie i nie przeszkadza im hałas open space. Inni wolą pracować w ciszy i spokoju,w wybranych przez siebie godzinach. Opis idealnego stanowiska pracy to próba sprawdzenia, czy to, co firma może zaoferować programiście pasuje do jego stylu pracy. Tu nie ma dobrej lub złej odpowiedzi – najwyżej nie trafisz w to, co firma może zaoferować. Jeśli jednak tak się stanie, to nie ma czego żałować – męczyłbyś się w tej pracy.
4. Załóżmy, że dostajesz zadanie by (i tu pojawia się niemalże niemożliwe do wykonania zadanie). Co robisz?
Nie chodzi tu o to, by programista odkrył Amerykę tworząc na poczekaniu rozwiązanie trudnego problemu, ale o to, by sprawdzić, czy jest to osoba, która będzie stawiać hipotezy i próbować zmierzyć się z zadaniem, czy częściej wybierze opcję „nie da się” -ulubione stwierdzenie części programistów.
5.Opisz co robi aplikacja, którą ostatnio pisałeś słowami, które zrozumie Pani Zosia z warzywniaka.
To zadanie ma pokazać, jakie kompetencje komunikacyjne ma programista oraz czy jest w stanie dogadać się z osobami spoza zespołu – np. z klientem zewnętrznym lub wewnętrznym. W pracy developera – zwłaszcza takiego, który musi zaprojektować pewne rozwiązania, niezwykle istotne jest to, by potrafił opowiedzieć prostymi słowami o założeniu projektu, a także dopytać o funkcjonalności, których zleceniodawca nie przewidział, bo po prostu się na tym nie zna i nie wie, że są potrzebne.
6.Jakie masz hobby?
Kodowanie i pisanie nowych aplikacji w ramach wolnego czasu nie jest konieczne, by dostać dobrą pracę, ale programista bez pasji nigdy nie będzie super dobry. Dlatego często pyta się o zainteresowania programisty właśnie po to, by sprawdzić, czy po pierwsze ma jakiekolwiek pasje, a po drugie, czy wśród nich jest zainteresowanie branżą w której pracuje.
7.Jaki proces w twojej ostatniej pracy,najchętniej byś zoptymalizował.
Dobry fachowiec IT musi być nieco leniwy. Oznacza to, że jeśli napotyka na sytuację, w której po raz trzeci czy czwarty musi zrobić coś podobnego, to szuka opcji na automatyzację tego procesu. Z perspektywy biznesowej, takie podejście, choć kosztuje czas, w efekcie go oszczędza. Lekko leniwy developer to plus (a administrator z leniem jest na wagę złota).
8.Dostajesz nowy projekt. Opisz etapy pracy.
Programista musi umieć zaplanować swoje działania. Pracując bez planu, kod będzie miał bugi, a do tego nie będzie skończony na czas. Dlatego sposób podejścia do projektu czy paradygmaty i metodologie w których programista ma doświadczenie, są dla pracodawcy takie ważne.
9.Czy zdarzyło ci się podać nowy pomysł, który mógłby pomóc biznesowo aplikacji, nad którą pracowałeś?
Część programistów, skupia się na fragmencie kodu, jaką ma do napisania i traci z oczu całość koncepcji. Tymczasem każdy program czy aplikacja nie powstają w próżni – mają na siebie w ten czy inny sposób zarabiać (np. poprzez wspieranie określonych procesów w firmie). Dlatego kierownikami zostają ci developerzy, którzy potrafią zobaczyć cały obrazek i wpaść na pomysł jak zmienić aplikację, by bardziej odpowiadała potrzebom biznesu, dla którego jest pisana.
10. Masz do napisania część aplikacji i termin, z którego nie jesteś się w stanie wywiązać. Co robisz?
To pytanie pokazuje nastawienie do terminów, znajomość realiów programowania oraz zdolność rozwiązywania problemów. Programista może rozłożyć ręce i powiedzieć „niedasię”, może zaprojektować jedynie rdzeń aplikacji, która dzięki temu – z błędami, ale będzie działać, może poprosić o pomoc kolegów itd. To pytanie pokazuje zatem, jak programista działa.
11. Czy zdarzyło ci się spędzić godziny na pracy nad projektem, który – jak się potem okazało – nie posiadał wszystkich wytycznych i pracę trzeba było planować od nowa? Co zrobiłeś?
Takie sytuacje są na porządku dziennym. Jeszcze częściej zdarza się, że praca to nieustanne poprawianie bugów i aktualizowanie aplikacji. W efekcie wielu programistów doświadcza frustracji związanej z tym, że nie udaje się im osiągnąć sukcesu w postaci zakończenia aplikacji. To jak sobie z tym radzą, może być kluczowe dla organizacji w kontekście rotacji personelu.
Dobry programista to nie tylko świetny koder – stąd na rozmowach rekrutacyjnych pytania, któe wychodzą poza schemat.