Shalom
2014-10-30 10:43

Miałem wczoraj rozmowę (telefonicznie) rekrutacyjną w jakiejś randomowej firmie (akurat jakaś headhunterka mnie spamowała na linkedin czy bym nie chciał się tam rekrutować to jej odpisałem, że czemu by nie). Rozmowę miałem z koderem i koderką z tej firmy.

WTF 1 - Oboje mają mniej doświadczenia ode mnie, zarówno w programowaniu jako takim jak i w samej Javie (rekrutacja dotyczyła pozycji developera javy)
WTF 2 - Ta laska ma raptem pół roku doświadczenia :D
WTF 3 - Zadają pytania na poziomie: czym się rózni arraylist od linkedlist (w sumie nie dziwota, przypuszczam że na trudniejsze pytania po prostu sami nie znaliby odpowiedzi :D)
WTF 4 - Jak w końcu przeszli na sensowniejszy temat - współbieżność - i się pytali jak walczyć z race conditions, deadlockami etc to im opowiadam o statelessness, immutability, barierach, latchach, reentrant lockach i innych cudach o których można poczytac w Java Concurrency in Practice, a oni niezadowoleni. Okazuje się że oni by chcieli posłuchać o algorytmie bankiera i o tych innych zabawnych teoretycznych rozważaniach, które w prawdziwym życiu nie mają prawa zadziałać... Znów nie ma się co dziwić - pewnie jedyne problemy ze współbieznością jakie widzieli w życiu to właśnie na uczelni :D

Jednocześnie obawiałem się, że mogłem tej rozmowy nie przejść, bo miałem wrażenie że trochę przesadziłem z poziomem odpowiedzi. No ale jak ktoś mi zadaje pytanie "czym się różni overloading od overriddingu metod" to aż wstyd było nie powiedzieć o tym czym są typy kowariantne i kontrawariantne i dlaczego, wbrew obiegowej opinii, da się zmieniać typ parametrów metod (a w niektórych językach nawet i typ zwracanej wartości) w podklasach i nadal będzie to override a nie overload. Albo jak ktoś wyskakuje z pytaniem "jak działa hashmap" to aż sie prosi żeby opowiedzieć o różnych sposobach implementacji, różnych metodach rozwiązywania konfliktów i różnych sposobach na zapewnienie współbieznego dostępu.

Miałem dziwne wrażenie że "tracę rozmówców" jak zaczynam wchodzić w jakieś ciekawsze szczegóły. Co to za pomysł żeby kogoś na poziomie regular/senior rekrutowali ludzie na poziomie stażysta/junior? o_O

#interview #wtf #humor #praca

Azarien

"aż się prosi żeby opowiedzieć" — a może jednak bardziej się prosi odpowiedzieć konkretnie na pytanie, a nie robić wykładu na wszelkie poboczne tematy? ;-)

Koziołek

@Azarien: odpowiedź konkretna brzmi "to zależy", bo są różne implementacje i jak masz biblioteki dodatkowe to można naprawde cuda na kiju robić.

Shalom

@Azarien: Ale to nie są poboczne tematy! W tym właśnie rzecz! To że "rekruter" nie zdawał sobie z tego sprawy to jest już jego problem ;) Odpowiedziałem konkretnie na pytanie, tylko że ten przykładowy sposób działania hashmapy zależy od jej implementacji a tych jest kilka i każda działa trochę inaczej. To tak jak pytanie "jak działa GC w javie" podczas gdy masz dostępnych kilka różnych GC, o czym znów wielu ludzi nie ma pojęcia.

alagner

@Shalom: bo firma stoi na studentach i innych nie zatrudnia? W ostatniej robocie najstarszy stażem kolega w dziale był na ostatnim roku, miał dwa lata doświadczenia w pracy w ogóle (i w tej firmie zarazem). I jakkolwiek nie twierdzę, że swoje robił źle, tak nie widzę go na rozmowie kwalifikacyjnej z facetem o wiele bardziej oblatanym. Gorzej, że firma nikogo innego nie miała i jakby się zwolnił to by chyba dział się zawalił :P

Varran

@Shalom: @alagner o pierwszej firmie w której pracowałem krążą teraz żarty, że właśnie zatrudniają tylko studentów (mało płacą) a to dlatego że kierownictwo jest święcie przekonane, że każdego fachowca można zastąpić skończoną liczbą studentów ;)

Koziołek

@Varran: i liczba ta zazwyczaj wynosi 1. Dlatego też Comarch takie gówno produkuje.

alagner

@Koziołek: U mnie akurat chodziło o inną firmę. Ale zasada podobna. [;

furious programming

@Shalom: Straszny z Ciebie gaduła musi być, ale następnym razem nie bądź buła i nagraj taką rozmowę - z chęcią bym posłuchał :D

Bumcykowy

@Shalom: Czy pisząc o latch miałeś na myśli klasę CountDownLatch? Nie mogę się doszukać żadnej fajnej definicji latch :/

Shalom

@Bumcykowy: więc Java Concurrency in Practice w dłoń i do czytania! ;)

wiciu

@Shalom: Odnośnie punktu nr 1: Nie widzę w tym nic złego. A-Playerzy chcą przecież zatrudniać lepszych od siebie. Firma, w której szef jest najgłupszy, to dobra firma. ;-)

Shalom

@wiciu: Logika dobra, ale zauważ że C-player nijak nie jest w stanie stwierdzić czy ktoś jest A-playerem czy C-playerem, tylko trochę lepszym ;)

azalut

@wiciu @Shalom seliga musi czuc sie zaszczycony ze wszyscy tak wspominaja jego slowa :D

Bartosz Wójcik

@Shalom: po prostu było im głupio i się bali, że jak Cię zatrudnią, to nadejdzie taki dzień, w którym ty zostaniesz ich szefem i wywalisz ich na zbity pysk :)

somekind

@wiciu: Tylko A-playerzy chcą zatrudniać lepszych (ale ich nie ma). B-playerzy, C-playerzy i Z-playerzy wolą gorszych od siebie.

WhiteLightning

@Shalom: ad WTF 1 - moze w firmie brakuje bardziej doswiadczonych ludzi i wystawili kogo mieli najlepszego?
ad WTF2 - moze sie uczyla jak wyglada rekrutacja w praktyce?
ad WTF3 - jesli nie miales okazji tego samemu robic pogadaj z ludzmi ktorzy prowadza rekrutacje, zwlaszcza w firmach ktore ni emaja topowej marki, produktu etc. i zapytaj ile osob wie jakim poleceniem

WhiteLightning

sprawdzic aktualny katalog na Linuxie. Na rozmowie nei chcodzi o to by kogos zagiac, ale sprawdzic co faktycznie wie, poza tym takie pytanie mozna potraktowac jaki dobry 'opener'. A po tym jak ktos odpowiada widzisz czy rozumie temat czy nie. Do tego patrzy sie tez na cechy osobowe, jesli widac ze ktos ma podejscie 'God Mode On' - jest spora szansa ze bedzie z nim ciezko pracowac zespolowo, a w wielu projektach to sie liczy najbardziej.