Korzystanie z pytań szablonowych w wywiadzie technicznym [zamknięte]

14

Niedawno sprzeczałem się z kolegą na pytania techniczne w wywiadach. Jako absolwent obchodziłem wiele firm i zauważyłem, że stosowały te same pytania. Przykładem jest „Czy możesz napisać funkcję, która określa, czy liczba jest liczbą pierwszą, czy nie?”. 4 lata później uważam, że to szczególne pytanie jest dość częste nawet dla młodszego programisty. Być może nie patrzę na to we właściwy sposób, ale czy domy oprogramowania nie powinny być wystarczająco inteligentne, aby wymyślić własne pytania do rozmowy kwalifikacyjnej? Byłem na około 16 wywiadach jako absolwent i te same pytania pojawiły się w około 75% z nich. To prowadzi mnie do przekonania, że ​​wiele firm jest leniwych i po prostu Google: „Szablonowe pytania do przeprowadzania wywiadów z programistami” i czuję, że podejmowanie takiego podejścia jest dla nich niekorzystne.

Pytanie: Czy lepiej jest użyć zestawu pytań z jakiegoś szablonu, czy też producenci oprogramowania powinni starać się być bardziej oryginalni i opracować własne materiały do ​​rozmowy?

Z mojego punktu widzenia, jeśli nie zdołam przeprowadzić wywiadu i odejdę i poszukałem dobrych odpowiedzi na pytania, które pomieszałem, mógłbym przejść do następnego wywiadu, jeśli pytania będą takie same.

Desolate Planet
źródło
1
Z ciekawości, skąd się wzięły pytania w stylu FizzBuzz?
Desolate Planet
1
Dom oprogramowania musi uważać, aby nie angażować się zbytnio w pytanie, że stają się osobami, które spędziły tysiące godzin na doskonaleniu rozwiązania, które większość ludzi zajęłoby kilka dni, chyba że byliby w firmie i nie widzieli pytania już.
JB King
2
Użyj szablonów pytań, jeśli nie masz nic przeciwko odpowiedziom na szablon.
back2dos

Odpowiedzi:

18

Wiele tego rodzaju pytań pozostaje w tyle właśnie dlatego, że trudno jest wymyślić jasne, wymagające jak najmniej wiedzy w dziedzinie, wymagające umiejętności wymyślenia algorytmu bez pytania, które ktoś „ dostać „lub” nie dostać ”i że ludzie mają historyczne tło odpowiedzi, z którymi można porównać kandydata. A najlepsze pytania mają wiele poziomów poprawnych odpowiedzi, które pozwalają ankieterowi ocenić umiejętności rozwiązywania problemów przez kandydata. Na przykład, jeśli ktoś zaproponuje trywialny algorytm znajdowania liczb pierwszych, możemy porozmawiać o tym, jak możesz zoptymalizować implementację lub przeprowadzić ankieter, aby poprowadzić kandydata do jednego z bardziej wyrafinowanych algorytmów.

Byłem w grupach, w których wielu różnych programistów oceniało, jak trudny byłby konkretny problem dla zestawu rozmówców, a szacunki były na całej mapie. Wiele osób początkowo patrzy na FizzBuzz i odrzuca go jako zdecydowanie zbyt łatwy. Jeśli przejdziesz do wywiadu, nie rozumiejąc, jak trudne są pytania, piąta osoba, z którą rozmawiasz, ma ogromną przewagę nad pierwszą osobą, ponieważ dowiedziałeś się, że ludzie walczą z FizzBuzz, podczas gdy robisz negatywne wrażenie na pierwszej osobie przeprowadziłeś wywiad, ponieważ mieli identyczne zmagania.

Jeśli programiści wpadają na nowe pytania, mają również wbudowaną niezamierzoną wiedzę kulturową lub domenową. Zadają na przykład pytania dotyczące sportu, który daje przewagę osobom znającym zasady tego sportu, które mogą albo szybko zauważyć dwuznaczność, albo przyjąć „oczywiste” założenie. Ktoś, kto jest całkowicie obeznany ze sportem, musi odgadnąć zasady gry w locie i jest bardziej prawdopodobne, że popełni błąd lub wymyśli mniej skomplikowaną odpowiedź. Albo zadadzą pytanie, które nieumyślnie zakłada, że ​​kandydaci znają / pamiętają jakąś stosunkowo niewielką smakołyk. Na przykład ktoś, kto pracuje nad systemami księgowymi od lat, może założyć, że każdy wie, czym jest system podwójnego zapisu lub że pytanie, które zakładało prostą definicję schematu systemu podwójnego zapisu, byłoby jasne dla kompetentnego dewelopera. Ale może z łatwością rzucić dobrego programistę, który musi zastanowić się nad debetem na gotówce zwiększającym saldo gotówki i kredyt zmniejszający saldo gotówki. Ktoś, kto wziął Księgowość 101, szybko by się jednak przyjął. Jeśli Twoim zamiarem było sprawdzenie znajomości przez kandydata rachunkowości, może to być całkowicie uzasadnione pytanie. Ale jeśli nie szukasz eksperta w danej dziedzinie, byłoby to problematyczne. Ale może z łatwością rzucić dobrego programistę, który musi zastanowić się nad debetem na gotówce zwiększającym saldo gotówki i kredyt zmniejszający saldo gotówki. Ktoś, kto wziął Księgowość 101, szybko by się jednak przyjął. Jeśli Twoim zamiarem było sprawdzenie znajomości przez kandydata rachunkowości, może to być całkowicie uzasadnione pytanie. Ale jeśli nie szukasz eksperta w danej dziedzinie, byłoby to problematyczne. Ale może z łatwością rzucić dobrego programistę, który musi zastanowić się nad debetem na gotówce zwiększającym saldo gotówki i kredyt zmniejszający saldo gotówki. Ktoś, kto wziął Księgowość 101, szybko by się jednak przyjął. Jeśli Twoim zamiarem było sprawdzenie znajomości przez kandydata rachunkowości, może to być całkowicie uzasadnione pytanie. Ale jeśli nie szukasz eksperta w danej dziedzinie, byłoby to problematyczne.

Chociaż przypuszczam, że możliwe jest, że ktoś zapamiętałby odpowiedzi na kilkaset „typowych” pytań, z których korzystają ludzie, ale nie przeszkadza mi to jako ankietera. Po pierwsze, byłoby to imponujące, gdyby to zrobili i odzwierciedlałoby sporo pracowitości i rozwiązywania problemów. Po drugie, ogólnie byłby to całkiem niezły trening - jeśli programista wie, jak odwrócić ciąg, zna pewne algorytmy wyszukiwania liczb pierwszych, wie, jak pisać pętle i implementować konstrukcje sterujące dla FizzBuzz, zna różne algorytmy graficzne regularnie, itp. - prawdopodobnie są to bardzo dobrze rozwinięty programista. Gdyby deweloperowi udało się zapamiętać odpowiedzi bez uczenia się czegokolwiek, byliby przyłapani na tym, że osoba przeprowadzająca wywiad chciała trochę pogłębić lub „

Justin Cave
źródło
7

Myślę, że są te proste pytania: fizzbuzz, odwrócenie łańcucha itp., A potem są pewne pytania, a jeśli nie widziałeś ich wcześniej, trudno jest uzyskać optymalne rozwiązanie z dodatkową presją wywiadu i krótkim czasem ograniczenia. Najgorsze jest to, że czasami rekruterzy bez wiedzy technicznej zadają niektóre z tych pytań i szukają bardzo konkretnej odpowiedzi ... Jeśli nie udzielisz optymalnej odpowiedzi, uważają cię za absolutnego idiotę. Nawet jeśli twoja odpowiedź działa, rozwiązuje problem i chociaż może nie być optymalna, nie jest zbyt nieefektywna ...

Kilka przykładów:
jak potasowałbyś talię kart? Szukają metody Fishera-Yatesa http://en.wikipedia.org/wiki/Fisher%E2%80%93Yates_shuffleinne odpowiedzi są „błędne” ..... Nie jest to coś, co prawdopodobnie wiesz, chyba że wcześniej chciałeś przetasować karty i dokładnie to sprawdzić. Możesz natknąć się na to w trakcie udzielania odpowiedzi, ale z tego, co widziałem, spodziewają się, że poznasz to przeziębienie, więc wątpliwe jest, czy będzie dużo czasu na znalezienie rozwiązania. Innym mniej wydajnym (ale może bardziej oczywistym) sposobem jest utworzenie nowej tablicy ze wskaźnikiem do oryginalnej tablicy i liczby, która jest liczbą losową, a następnie posortowanie tablicy według liczby losowej. Następnie użyj posortowanej tablicy, aby skonstruować nową tablicę kart. W każdym razie mam 0 punktów za przedstawienie tego rekruterowi.

Innym przykładem jest pytanie, w jaki sposób wykryłbyś zduplikowany numer na liście n liczb od 1 do n-1. Oczywistą odpowiedzią (która jest względnie wydajna w perspektywie czasowej) jest użycie tabeli skrótów do wstawienia każdego elementu, a jeśli znajdziesz już wstawiony, to znajdziesz duplikat. Optymalną odpowiedzią jest to, że liczby są między 1 a n, jeśli nie ma duplikatów, można uzyskać oczekiwaną sumę jako n (n + 1) / n. Następnie, jeśli zsumujesz tablicę, otrzymasz rzeczywistą sumę, która jest mniejsza niż suma oczekiwana. Więc w zasadzie n - (Oczekiwana suma - Rzeczywista suma) = zduplikowana liczba ... To dość wyjątkowy przypadek ... Właściwie widziałem już coś w pewnym internetowym poście na temat problemów z wywiadem sprzed wieków na temat pokrewnego z tą samą sztuczką, więc Nic mi nie było ....

Kolejny, odwróć wszystkie słowa w ciągu bez użycia dodatkowej spacji. Musiałem o tym pomyśleć, a rekruter był bardzo niecierpliwy w ciągu 5 minut, o których myślałem (dzielenie i ponowne dołączanie łańcucha na odwrót lub przechodzenie słowo po słowie do nowej tablicy jest bardzo łatwe). Wymyśliłem znalezienie granicy ostatniego słowa, znalezienie końca pierwszego słowa i ciągłe przesuwanie całej listy o 1, a następnie wstawianie odpowiedniej litery. Następnie powtarzaj, aż dojdziesz do końca listy. Ta metoda działała i ankieter zgodził się (był trochę techniczny), ale jest dość nieefektywny. Kiedy wróciłem do domu, szukałem optymalnej odpowiedzi i wystarczy odwrócić listę, a następnie każde słowo. Niektórzy ludzie mogą to wymyślić,

Teraz to prawda, gdy zobaczysz niektóre z tych problemów, możesz je rozwiązać łatwiej. Ponieważ istnieją podobne pytania dotyczące tych samych sztuczek. Wiem zwłaszcza, że ​​formuła n (n-1) / 2 i lista liczb ma kilka odmian. Ale wciąż nie wiem, co testują te pytania. FizzBuzz to coś, co każdy powinien być w stanie zrobić (chociaż widziałem warianty, które nie są tak proste, w którym to przypadku zaczynam pytać, czy nawet to jest realistyczne w sytuacji wywiadu bez możliwości wpisania / debugowania kodu). Niektóre z tych pytań są oczywiste, gdy je zobaczysz, ale jeśli ich nie widziałeś, nie są oczywiste. Po tym, jak ktoś wspomniał, pojawienie się pierwszej poprawnej implementacji wyszukiwania binarnego zajęło lata… W tej chwili wyszukiwanie binarne jest tak oczywiste, ponieważ każdy może o tym przeczytać.

Niemniej jednak uważam, że najgorsze jest to, że ludzie nietechniczni zadają pytania, ponieważ nie mogą docenić twojego rozwiązania, które jest poprawne, choć nie optymalne. Wiedzą tylko, że twoje rozwiązanie nie jest tym, które zostało przedstawione, a zatem jest błędne, nie otrzymasz uznania za próbę. Nawet nieoptymalne rozwiązania często pokazują znajomość konstrukcji programistycznych. O ile nie programuję pokera, nie dbam o to, jak dobrze ktoś może przetasować talię kart. I nawet gdybym to zrobił, po pokazaniu im wydajnego algorytmu jestem pewien, że każdy w połowie przyzwoity mógłby go zastosować.

Wygląda na to, że pytania wzorcowe dają przewagę kandydatom, którzy przeprowadzają dłuższą rozmowę kwalifikacyjną, ponieważ częściej widzą więcej pytań wzorcowych. Nawet FizzBuzz, kiedy widzisz go po raz pierwszy, możesz wariować, ale kiedy go widzisz, stajesz się bardziej przyzwyczajony. Najlepszą rzeczą, jaką możesz zrobić, to wyzwanie kodowania wymagające niestandardowej logiki biznesowej. Np. Utwórz zestaw danych (tablicę obiektów / rekordów), a następnie utwórz reguły biznesowe, które zostaną zastosowane do każdego obiektu i zwróć odpowiedź .. np. Pewien rodzaj klasyfikacji itp., Ale bardzo niestandardowe reguły). Chociaż prawdopodobnie widzieli pętlę rekordów i stosują logikę zillion razy, twoje reguły będą unikalne, więc przynajmniej będą musieli zrozumieć i skutecznie wdrożyć utworzone reguły.

Powiedzmy, że przewidywane wynagrodzenie i lista kandydatów oraz ich 3 najpopularniejsze gry wideo, a być może wynagrodzenie początkowe. Kandydaci, którzy lubią Zeldę, otrzymują karę 300, kandydaci, którzy lubią małą syrenę, otrzymują bonus 200. Kandydaci, którzy lubią Donkey Konga i Super Mario Brothers, ale nie Dr. Mario, otrzymują 300 premii. Kandydaci, którzy lubią Metroid lub Kid Icarus, otrzymują premię 200 itd. Wydaje się to trochę szalone, ale pokazałoby to ich umiejętność przekładania reguł biznesowych na logiczne konstrukcje programów i testowania ich zrozumienia logiki boolowskiej. Ogólnie niewiele różni się od fizzbuzz, z wyjątkiem nieużywania modułu i pętli. Możesz oczywiście dać im listę, poprowadzić ją przez pętlę i wydrukować wyniki na ekranie, stosując również określone kryteria wyjściowe.

Cervo
źródło
4

Podczas mojej ostatniej pracy byłem w bardzo podobnej sytuacji. Myślę, że miałem to samo pytanie z listą powiązaną we wszystkich firmach oprócz jednego (tego, w którym obecnie jestem zatrudniony).

Zauważyłem tylko, że pytania te zostały zadane w pierwszym wywiadzie.

Z punktu widzenia ankieterów, jeśli ktoś nie potrafi poprawnie odpowiedzieć na te pytania, to nie przygotował się na rozmowę kwalifikacyjną, więc po co marnować z nimi więcej czasu? Nie sądzę jednak, żeby to był dobry pomysł. Firma dostanie całą grupę ludzi, którzy mogą recytować odpowiedzi od Google, przechodząc do następnej rundy, ale niekoniecznie grupę ludzi, którzy są kompetentnymi programistami.

Uważam, że pytania FizzBuzz na temat płyty głównej są denerwujące osobiście, ale ułatwiło to wywiad. Lubię trudny wywiad. Kiedy przeprowadzam wywiad z potencjalnymi pracownikami, lubię mieć pewność, że potrafią myśleć i rozwiązywać problemy. Oczekuję, że mogą korzystać z Google.

Czy firma powinna mieć szablon pytania? Tak. Pomaga ocenić kandydatów w pierwszych kilku rundach. Czy szablon powinien składać się z ogólnych problemów, które można łatwo znaleźć za pośrednictwem Google? Nie. To tylko krótkie zmiany, w które zaangażowani są wszyscy.

Tyanna
źródło
4

„Czy firmy programistyczne powinny starać się być bardziej oryginalne i opracowywać własne materiały wywiadów?”

Tak, powinni, ale praktycznie dzieje się tak, że przychodzisz do pracy i znajdujesz e-mail od HR, informujący, że jutro jesteś w pętli rozmów kwalifikacyjnych dla dwóch kandydatów. Jesteś już gotowa na aligatory, a twój menedżer nie podziękuje ci za poświęcenie pół dnia na wymyślenie nowych, dobrych pytań na rozmowę kwalifikacyjną. Naciskany na czas cofasz się do pytań już został poproszony, albo że można szybko znaleźć na google.

Charles E. Grant
źródło
2
tak, a potem jesteś naprawdę szczęśliwy, że masz dokument pełen dobrych pytań na rozmowę kwalifikacyjną, podczas gdy w przeciwnym razie możesz gapić się na faceta, który walczy o coś sensownego, aby zapytać
Doug T.
3

Pytania, o których wspominasz, są zwykle pytaniami fizycznymi i nie są używane do zatrudniania; są pytaniem przeczącym (tzn. prawidłowe odpowiedzi w żaden sposób nie przyniosą ci pracy, ale złe odpowiedzi spowodują, że wyrzucą cię do kosza). Nie są więc bardzo cenne.

To pytania, które przyjdą później, wymagają przemyślenia i najczęściej będą miały silny związek z rodzajem pracy wykonywanej przez firmę oraz z tym, jak dynamika zespołu jest.

Odpowiedź brzmi: obie.

Steven Evers
źródło
4
Zgadzam się, że pytanie w stylu fizzbuzz zaprzecza pytaniom ... ale nie pukaj, utrzymując niewłaściwych ludzi poza autobusem!
Peter K.
2

Jeśli większość lub wszystkie ich pytania są takie same, jest to rzeczywiście zła rzecz (dla nich to znaczy). To prawdopodobnie pokazuje, że ankieter nie jest dobrze przygotowany do zadania.

Należy pamiętać, że użycie pytań podstawowych na poziomie „szablonu”, takich jak test FizzBuzz, może być szybko wyeliminowane całkowicie nieudolne, bez inwestowania zbyt wiele czasu i wysiłku. Chociaż nawet wtedy odmiany motywu są przydatne, aby uniknąć odpowiedzi bezpośrednio od Google. Z drugiej strony łatwo jest zapytać kandydata, co właściwie napisał kod i dlaczego działa (lub nie działa). Uważam, że biegły technicznie ankieter może szybko wykryć, czy ktoś udaje, że zna odpowiedź.

A co ważniejsze, jeśli ktoś przejdzie test poziomu podstawowego, powinny pojawić się trudniejsze pytania, w których nie wystarczy już recytować odpowiedzi w puszce. Osobiście bardziej interesują mnie procesy myślowe i umiejętności rozwiązywania problemów w ogóle niż konkretne rozwiązanie zagadki. Innym ważnym tematem byłyby procesy i podejścia programistyczne - inicjuję otwartą dyskusję, a nie konkretne pytania na te tematy. Nie ma dobrych lub złych odpowiedzi na te tematy, więc nie ma możliwości wcześniejszego przygotowania. Ale z dyskusji wiele się dowiaduję, czy ja i zespół moglibyśmy swobodnie pracować z tym kandydatem.

Tak więc niektóre ograniczone pytania „szablonowe” są w porządku, ale dobry wywiad to proces płynny, w którym osoba przeprowadzająca wywiad powinna dostosować się do sytuacji, w tym poziomu umiejętności kandydata (reklamowanego i rzeczywistego), stanu psychicznego (nerwowość / zmęczenie) itp.

Péter Török
źródło
Tak, ale powiedz, że poddajesz się testowi FizzBuzz, więc ktoś, kto nie jest odpowiedni i nie zda egzaminu. Mogliby poszukać dobrych odpowiedzi i przekazać to pytanie w innej firmie, to mnie trochę niepokoi i myślę, że firmy powinny mieć obowiązek nieużywania pytań wzorcowych. Każdy dobry starszy programista powinien umieć wymyślać dobre pytania, od łatwych do trudnych.
Desolate Planet
2
@Desolate Planet: Rzecz jest jednak, podejrzewam, że ludzie, którym nie udaje się fizzbuzz, nie są typami, którzy szukają odpowiedzi ... mają tylko nadzieję, że nie dostaną pytania w następnym wywiadzie.
Steven Evers
Hmm .. ale nawet po tym, jak zepsują 3 - 4 wywiady, będą wystarczająco inteligentni, aby wykrywać wzorce w zadawanych im pytaniach. Znowu to tylko myśl, którą miałem na temat wywiadów technicznych i wydaje mi się, że to kiepska droga.
Desolate Planet
1
@ Desolate, może uda im się znaleźć pracę w firmie, która najwyraźniej nawet nie chce dobrze filtrować kandydatów do pracy ... więc oboje dostają to, na co zasługują.
Péter Török
@Peter, zgadzam się z tym, co mówisz, ale jest to niesprawiedliwe w stosunku do innych kandydatów, którzy mogą być odpowiedni do pracy i mieć coś, co mogą wnieść do firmy. Mogą nie mieć szansy, ponieważ ktoś sprawdził wspaniałe odpowiedzi i przeszedł przez proces. Nie twierdzę, że wszystkie firmy są takie, ale zwykle, kiedy dołączam do firmy, mają na dysku sieciowym dokument słowny z listą pytań do rozmowy kwalifikacyjnej i wyglądają prawie tak samo. To po prostu wydaje mi się bardzo leniwe.
Desolate Planet
2

Mój szablon wywiadu w pseudokodzie:

jeśli pytanie (FizzBuzz_type_question) == poprawne, to

dla każdego (pytania q w tablicy_w_więcej_interesujących_pytań) pytania (q) innego

koniec wywiadu.

Jim In Texas
źródło
1

Myślę, że wywiad powinien być podzielony na:

  • Aspekt społeczny (oprócz HR) - Czy ta osoba dobrze pasuje do naszej organizacji? Czy ma właściwe podejście - czy jest skłonny przestrzegać naszego stylu zarządzania? To musi być oryginalne, ponieważ firmy i zespoły są różne.

  • Ogólna przydatność do roli - Znowu powinno to różnić się w zależności od miejsca

  • Podstawa: pytania przedmiotowe, które koncentrują się na głównym obszarze pracy - ma charakter naukowy i nie musi być oryginalny, ponieważ jest naukowy.

  • Przydatność do codziennej pracy: są to pytania dotyczące tematów, które kandydat powinien robić codziennie. To może być naukowe, ale lepiej, aby pochodziło z prawdziwej pracy, którą powinien wykonywać. Ta część różni się w zależności od miejsca.

Bez szans
źródło