Jakie jest twoje ulubione pytanie do rozmowy kwalifikacyjnej? [Zamknięte]

21

Jakie pytanie uważasz za szczególnie cenne podczas przeprowadzania wywiadów z twórcami oprogramowania? Co takiego jest w pytaniu, które uczyniło go szczególnie przydatnym?

Szukam konkretnego pytania, które chciałbyś zadać, a nie tylko takiego podejścia do rozmowy kwalifikacyjnej, jak „zmuś ich do pisania kodu”.

Tim Goodman
źródło
2
Pytanie - jak zostało sformułowane - nie jest konstruktywne, ale zawiera kilka dobrych odpowiedzi. Przeformułuj pytanie tak, aby pasowało do najlepszych odpowiedzi, a ja zalecę jego ponowne otwarcie.
ChrisF
@ChrisF: Przeformułowałem, aby spróbować uzyskać więcej informacji o „dzieleniu się doświadczeniami” i „pytaniu, dlaczego”, co powinno również trafić w więcej „zaproszeń na dłuższe odpowiedzi”. Daj mi znać, jeśli będzie wymagał dalszej zmiany.
Tim Goodman
tak lepiej!
ChrisF
Patrząc na pytanie i odpowiedzi, nadal wydaje się dość konstruktywne. Nie wygląda na to, aby którakolwiek z odpowiedzi zawierała „dlaczego” i po prostu wymieniała pytania.
Adam Lear

Odpowiedzi:

29

Spójrz na ten przykładowy kod i powiedz mi, jak go poprawić.

David Anderson
źródło
8
kaszel kaszel usunąć?
Craige
22

Jest to trochę specyficzne dla mojego scenariusza, ale myślę, że to było świetne pytanie:

Więc mówisz tutaj, że nigdy wcześniej nie dotykałeś C # lub .NET, prawda? Ok, więc oto stacja robocza. Dowiedz się, jak napisać program, który zapyta o tę bazę danych tutaj i wydrukuje listę klientów z ich zamówieniami, posortowanymi według nazwy klienta. Możesz użyć dowolnego źródła.

Jedyne pytanie, jakie kiedykolwiek miałem, faktycznie przetestowało moją zdolność uczenia się.

Fishtoaster
źródło
czy to było zanim istniał StackOverflow?
red.
1
Ee, czy to nie powinno być pytanie, które lubisz zadawać?
Paddyslacker
8
+1, to idealne pytanie, które należy zadać. Jeśli nie będą w stanie zrozumieć podstawowych konstrukcji języka w Google, nic ich nie uratuje.
Josh K
Podoba mi się to, pokazuje, jak dobrze potrafią wybrać język programowania, którego nigdy nie używali. Mógłbym to ukraść na pytania podczas wywiadu :)
Richard
1
Wydaje się bezcelowe, każdy może skopiować i wkleić kiepski kod .net prosto z msdn.
dotjoe
15

To nie jest pytanie kodujące, ale behawioralne:

Opowiedz mi o czasach, w których nie udało Ci się ukończyć wszystkich prac na czas, aby dotrzymać terminu. Co zrobiłeś? Jaki był rezultat?

Paddyslacker
źródło
3
Dlaczego to dobre pytanie? Wydaje mi się bezcelowe
Joe Phillips
9
Chodzi o to, że od odpowiedzi deweloperów otrzymuję wiele informacji. Po pierwsze, jeśli nie przyznają się do takiej sytuacji, która im się przydarzyła, to albo oszukują samych siebie, albo nie mają doświadczenia w prawdziwych projektach. Po drugie, jeśli nie rozmawiają o tym, w jaki sposób przekażą ten problem zespołowi, ale po prostu mówią o tym, jak ciężko pracują, aby go naprawić, nie chcę ich zatrudniać. Słaba komunikacja jest odpowiedzialna za większość problemów, które widzę w projektach. Chcę zatrudnić proaktywnych komunikatorów.
Paddyslacker,
3
Zadaję podobne, bardziej ogólne pytanie („powiedz mi o czasie, gdy coś poszło nie tak, i co zrobiłeś w odpowiedzi ...”) Bardzo otwarty, a jednak miałem jednego rozmówcę przysięgającego w górę i w dół, że nic nigdy nie było poszło źle dla niego. Nie trzeba dodawać, że nie poleciłem go do wynajęcia.
Alex Feinman,
13

Jak dostałeś się do programowania?

Miły sposób, aby sprawdzić, czy osoba ma pasję do programowania i przełamać lody.

Gordon
źródło
11

Podczas rozmowy z kogoś, kto twierdzi, że ma nietrywialne ilość doświadczenia Java, pytam ich o hashcode()i equals()i relacji między nimi. Naprawdę nie jest możliwe zdobycie znaczącego doświadczenia w Javie bez uświadomienia sobie potencjalnych pułapek, a każdy, kto nie zna problemu, będzie dodawał trudne do znalezienia błędy do mojego projektu.

Ja też zapytać ArrayListi LinkedListi względnych zalet i wad. Miejmy nadzieję, że powinno to udowodnić, że są oni przynajmniej świadomi implikacji kodu, który piszą, i zastanawiają się nad tym.

Chciałbym też zachęcić ich do wyrażenia opinii na temat niektórych zagadnień technicznych (przydatność lub brak Mavena, zaznaczone kontra niesprawdzone wyjątki itp.), A następnie zagrać adwokata diabła, aby zobaczyć, jak dobrze mogą argumentować.

Dan Dyer
źródło
+1 Lubię ArrayList i LinkedList. Widziałem wiele komentarzy na temat SO, które mówią, że ArrayLists powinny zostać zniesione, ale mogę myśleć o wielu zastosowaniach, w których są one lepsze niż LinkedLists
Evan Plaice,
LOL! Kiedyś dwóch ankieterów zapytało mnie o różnicę między listą a mapą. Posłałem im takie zdumiewające spojrzenie, że faktycznie przeprosili (a potem odpowiedziałem na ich pytanie i oczywiście kontynuowaliśmy wywiad).
Hila
6

„Jaka była ostatnia (najlepsza) książka techniczna, którą przeczytałeś?”

lub bardziej ogólnie:

„W jaki sposób aktualizujesz swoją wiedzę?”

To niesamowite, ile osób nigdy nie przeczytało książki technicznej, odkąd skończyły szkołę. A jeśli nigdy nie czytałeś książki, odkąd skończyłeś szkołę i dziesięć lat temu, prawdopodobnie nigdy nie słyszałeś o takich rzeczach, jak testy jednostkowe, wzorce projektowe, zasady SOLID ...

Odpowiedź na komentarz :

Jeśli chcesz, możesz głosować za mną, ale to jedno z moich ulubionych pytań do wywiadu. Blogi, wikipedia, SO są świetnymi źródłami najnowszych wiadomości na temat zaawansowanych technologii. Ale nie sądzę, że możesz nauczyć się naprawdę złożonych przedmiotów (takich jak te, które znajdziesz w książkach Knutha) w pełni, czytając blogi.

Jeśli będę musiał wybierać między dwoma programistami, z których jeden pokazuje chęć uczenia się nowych skomplikowanych przedmiotów, a drugi nie, zatrudnię pierwszego. Nawet jeśli on lub ona chce więcej pieniędzy. Opłaci się na dłuższą metę.

nikie
źródło
-1. Rzadko otwieram książki techniczne, ale wiem, czym jest TTD i znam niektóre wzorce projektowe. Nauczyłem się znacznie więcej od SO (na przykład, co jest wzorem fabrycznym) oraz z blogów Jona Skeeta i innych specjalistów, niż nauczyłbym się z przeciętnej książki. Żadna z książek, które widziałem, nie wyjaśniała na przykład, dlaczego kontrole FxCop i StyleCop są tak ważne, aby napisać kod źródłowy, którego można użyć ponownie (nawet nie wspominając o tych narzędziach).
Arseni Mourzenko
3
+1 Możesz wiele się nauczyć dzięki artykułom i blogom internetowym, ale nawet nie czytanie książek technicznych oznacza brak inicjatywy i mierność.
Dunk
5

Odwróć tę połączoną listę. Teraz zrób to w czasie liniowym. Teraz zrób to w liniowym czasie i stałej przestrzeni.

Fishtoaster
źródło
23
MyList.reverse ()
Joe Phillips
5

Czy uważasz się za szczęściarza?

Przeczytałem to w wywiadzie dla jednego z członków założycieli Bruel & Kjaer i uderzyło to we mnie. Ludzie odnoszący sukcesy prawdopodobnie uważają się za szczęściarzy. Widzą niepowodzenia jako możliwości wprowadzania ulepszeń i dzielą się swoimi sukcesami (szczęściem) z ludźmi wokół nich - Szczęściarze przynoszą więcej szczęścia. *

Ludzie, którzy uważają się za nieszczęśliwych, częściej są złym jabłkiem w twoim zespole.

* W tym kontekście Szczęście należy rozumieć jako okazję na spotkanie przygotowawcze , a nie czterolistną koniczynę.

oosterwal
źródło
1
+1 Chciałbym jeszcze kilka razy głosować za tym.
ocodo
Napoleon powiedział kiedyś: „Dajcie generałom, którzy mają szczęście!”
Zachary K,
4

Ten, który zawsze dla mnie pracował ...

„Opowiedz mi o swoich poprzednich projektach” .

A następnie wykorzystaj ich odpowiedzi jako punkt przeskoku w pytaniu o ich rolę w projektach i dlaczego podjęli określone decyzje. Zamiast przeprowadzać wywiad z SAT, po prostu rozmawiam z nimi. To zawsze było więcej niż wystarczające, aby ocenić, czy deweloper był odpowiedni na stanowisko.

Tylko raz zostałem zatrudniony do pracy, w której znałem już używany język, więc pytania specyficzne dla języka nie mają dla mnie dużej wartości. Ja też osobiście nie dbam o składniowe ciekawostki ( jak zrobiłbyś rodzaj waty cukrowej, będąc uwięzionym w zagrodzie pełnej głodnych Zebr? ) I mam pytania, więc nigdy nie zadaję tego rodzaju pytań.

Grandmaster B.
źródło
+1. Też o to proszę. Ale czasami trudno jest dowiedzieć się, jaka była funkcja kandydata w projekcie (kierownik projektu? Główny programista? Programista konserwacji? Operator ekspresu do kawy?), Zwłaszcza gdy pracowali nad dużym projektem z wieloma osobami.
nikie
2
Gdybyś mógł mieć jakąkolwiek pracę na świecie, co by to było?

Naprawdę szukam tylko jednej rzeczy: poważnej próby odpowiedzi. Jedyną złą odpowiedzią jest śmiech i powiedz ankieterowi, że jest to najbardziej stereotypowe pytanie na świecie. (Nie głosowałem za wynajęciem).

To jest naprawdę zestaw dla mojego ulubionego pytania:

Jeśli chcesz zostać [gwiazdą rocka], dlaczego starasz się o stanowisko [Inżyniera Rozwoju Internetu III] tutaj w [HugeCorp]?

Działa najlepiej, jeśli faktycznie dają odważną odpowiedź. Rzadko widzą, że to nadchodzi, i jest to naprawdę okazja, by ktoś zabłysnął, mówiąc coś w stylu „godziny tutaj są lepsze” lub „moja kariera tutaj potrwa dłużej niż typowa gwiazda rocka”.

Kłamałem także, że nie ma złej odpowiedzi na pierwsze pytanie. Chyba że rozmawiasz o jakiejś niesamowitej wymarzonej pracy, to praca, z którą rozmawiają, jest złą odpowiedzią. A jeśli rozmawiasz o wymarzonej pracy i jeszcze jej nie masz, powinieneś zadać sobie pytanie, dlaczego się o nią nie ubiegasz.

shemnon
źródło
„A jeśli rozmawiasz o wymarzonej pracy i jeszcze jej nie masz, powinieneś zadać sobie pytanie, dlaczego się o nią nie ubiegasz”. - Brzmi jak pytanie „przeklęty, jeśli tak, przeklęty, jeśli nie” - szczególnie jeśli traktujesz odpowiedź tak, jak to opisujesz. Jeśli ktoś ma na myśli wymarzoną pracę, być może nie czuje się, jakby był jeszcze gotów podjąć ją i potrzebuje więcej doświadczenia z tym, czego może się nauczyć w Twojej firmie. Po co im to robić?
Mark Freedman
4
-1 Odrzuciłem oferty pracy z firm, w których ludzie zadawali głupie, zupełnie nieistotne pytania, takie jak te. # 1 Nie ma to nic wspólnego z pracą ani tym, jak byś się zachowywał # 2 Zamiast przeprowadzania wywiadu z osobą, z którą ankieter naprawdę próbuje pokazać, jak są mądrzejsi od rozmówcy, oszukując ich i wierz mi, że ich arogancja jest dość silna # 3 Nie sądzę, że chciałbym pracować z pr @ # k $, które zadają tego rodzaju pytania podczas rozmowy kwalifikacyjnej, jeśli tak nie lubię ich w trakcie rozmowy kwalifikacyjnej. Zadanie pytania przy piwie to inna historia.
Dunk
@Dunk: Masz rację, podstępne pytania mówią więcej o ankiecie niż o ankiecie. Ale pytanie o cele i życzenia danej osoby ma sens. Chcesz, aby Twoi pracownicy byli zadowoleni ze swojej pracy (nieszczęśliwi ludzie nie są produktywni), więc chcesz wiedzieć, czy masz dla nich odpowiednią pracę.
nikie
@Dunk, ponieważ klienci, z którymi codziennie mam do czynienia, zadają stereotypowe pytania i często powtarzają te same głupie błędy, takie pytanie stereotypowe pomaga również w wyborze rodzaju ludzi, którzy nie mogą poradzić sobie z klientami w mojej pracy. Plusem jest to, że praca opłaca się zrekompensować konieczność tolerowania takiego zachowania. W tym sensie tak naprawdę jest to pytanie prefektów.
shemnon
@Mark Freedman - Nie mam wobec nich za złe. Daje im to szansę na uczciwość i bezpośrednią ścieżkę kariery. Jeśli rozmówca uważa, że ​​jest „przeklęty, jeśli to zrobi, i przeklęty, jeśli nie zrobi tego”, to praca nie jest dla nich. Jeśli nie chcesz wystawiać szyi z uczciwą odpowiedzią, to już jeden znak przeciwko.
shemnon
2

Podczas wywiadów c # uwielbiam pytać: „Jak radzisz sobie z błędami w metodzie”? Jeśli otrzymam przyzwoitą odpowiedź na to pytanie, pytam „Jak skonfigurować / obsługiwać konfigurację obsługi błędów w aplikacji internetowej?”

Zawsze jestem zdumiony, ilu programistów nie ma problemu z pierwszym pytaniem i nie ma pojęcia o drugim. Przeprowadziłem nawet wywiad z wieloma, którzy nie potrafili opisać, w jaki sposób błędy były obsługiwane w ich obecnym projekcie.

Jeff Siver
źródło
2

Coś takiego:

pomnożyć wartość o 7 bez korzystania *, /oraz +operacje. :)

dmitko
źródło
4
Czy twoja baza kodowa wymaga wiedzy na temat kręcenia bitów, czy tylko po to, aby zmierzyć zainteresowanie drobiazgowymi szczegółami?
Peter Taylor,
2
Zauważ, że nie powiedział „lub”
Ben L
1
@Ben, myślę, że właśnie rzuciłeś bombę logiczną w zapadnię -: /
ocodo
2
Czy to nie wystarczy (x << 3) - x?
user13278
1
Lub jeszcze prościej:x -(-x) - (-x) -(-x) - (-x) -(-x) - (-x)
Nikie
1

Podobne do Davida, ale nieco inne:

Spójrz na niechlujny rzeczywisty kod produkcyjny z wcześniejszej wersji, którą później naprawiliśmy i ulepszyliśmy. Powiedz mi co robi. Powiedz mi, gdzie są problemy (poprawność i styl). Powiedz mi, jak to naprawisz i ulepszysz.

Pomaga to odróżnić osoby, które potrafią pisać nowy kod, oraz osoby, które potrafią poradzić sobie z rzeczywistością baz kodowych.

Uri
źródło
0

wiele lat temu zapytano mnie o różnicę między wyrażeniami regularnymi / a * / i / a *? /

Osobiście zadaję kilka pytań na temat rekurencji.

Zachary K.
źródło
1
Czy ?oznaczają chciwy albo zero lub jeden ? Widziałem obie składnie.
Paul Nathan
1
Który dialekt ?.
To było perl5, było to również około 11 lat temu. Więc tak, to było chciwe vs nie chciwe.
Zachary K,
0

Jestem zaskoczony liczbą nieudanych odpowiedzi na to pytanie:

Jak szukać elementu na nieposortowanej liście?

oosterwal
źródło
To dość głębokie pytanie: jak definiuje się dopasowanie? czy masz wiedzę na temat częściowego zamawiania na liście? Jaka to lista? Czy przedmioty można sortować? Jak duża jest lista? Jaki jest względny koszt obliczeniowy porównania i sprawdzenia dopasowania? Różne odpowiedzi na te pytania mogą zmienić optymalne podejście .....
mikera
Jak często to wyszukiwanie będzie się odbywać? Czy może to stanowić przeszkodę dla wydajności?
Justsalt
WTF, chłopaki. Zacznij od pierwszego lub ostatniego elementu, porównaj, jeśli nie pasuje, przejdź do następnego elementu. Pytanie tylko: czy zależy nam na wielu dopasowaniach, czy przerywamy wyszukiwanie przy pierwszym dopasowaniu? Jeśli chcesz dać trochę wglądu, możesz dodać: W przypadku list połączonych nie ma to znaczenia, ale w przypadku list indeksowanych, jeśli chcę również wyodrębnić dopasowania, przejrzałbym listę w odwrotnej kolejności, więc nie muszę aktualizować indeks poza warunkiem pętli.
NotGaeL,
0

Moje ulubione pytanie to:

(Prawdopodobnie w połączeniu Java / C # i pseudokodu)

Korzystając z nieegzotycznych kontenerów, zaprojektuj klasę, która zachowa się jak słownik, który jest tak wydajny, jak to możliwe, co pozwala również na wyliczanie kluczy nie w kolejności „losowej”, ale w kolejności, w jakiej klucze te zostały dodane do słownika, ponieważ został stworzony po raz pierwszy.

Job
źródło
To prowadzi do zbyt wielu pytań wyjaśniających. Czy sprawiedliwe jest używanie tylko dwóch tablic mieszających lub tabeli mieszającej i listy tablic: takiej, która przechowuje porządkowanie, a drugiej do porządkowania? Czy musi być możliwe usunięcie rzeczy? (To sprawia, że ​​jest to nieco bardziej skomplikowane.) Jeśli wartość jest aktualizowana, czy liczy się to jako ponowne jej dodanie?
dsimcha
@dsimcha, dobry punkt. Mam 20-30 minut na rozmowę i zaczynam od: Prosimy o kontakt w dowolnym momencie. Jeśli czujesz, że utknąłeś, chętnie udzielę podpowiedzi lub poprowadzę cię we właściwym kierunku. Jeśli osoba nadal kręci kołami, powiedziałbym, że nie rozumie struktur danych. Jeśli chodzi o wyjaśnienie, czego chcę - wolałbym pozostawić to otwarte i obrać je w różnych kierunkach.
Job