Innego dostarczyły odpowiedzi, które mam upvoted jako przedmiot moszczu . Powodem, dla którego piszę inną odpowiedź, jest to, że to, co chcę powiedzieć, prawdopodobnie nie zmieści się w komentarzu, a także dlatego, że trzeba coś powiedzieć o tym, jak może wyglądać dobra rozmowa programistyczna.
W pierwszym dobrym wywiadzie, który pamiętam, dużo rozmawialiśmy bez pośpiechu. Najpierw przez godzinę, przez telefon, na temat projektowania obiektowego oraz zalet i wad wdrażania go w C ++. Następnie na miejscu rozmawiałem z kilkoma osobami o ich praktykach tworzenia oprogramowania, integracji, testowaniu, kontroli wersji i zarządzaniu konfiguracją, o zespołach i obowiązkach, o technologii i projektowaniu. To był całodniowy wywiad obejmujący lunch z ludźmi, którzy przeprowadzili ze mną wywiad. Z perspektywy czasu chodziło o to, czy produktywnie pasowałbym do tego, co już robili.
Od tego czasu wszystkie dobre rozmowy były długie, trwające od jednej do dwóch godzin na temat tworzenia oprogramowania. Nie było pytań dotyczących rozwiązywania problemów, łamigłówek i problemów z kodowaniem.
Gdybym miał dzisiaj przesłuchać kogoś w sprawie pracy programistycznej, postąpiłbym podobnie. Poprosiłbym o opinie na temat szerokiego zakresu tematów i odłożyłem na bok głębokość:
- Jakie są twoje preferencje języka programowania? Dlaczego?
- Jak podejść do obsługi wyjątków?
- Czy korzyści płynące z projektowania warstwowego nie są mitem?
- Czy ciągła integracja nie jest obciążeniem dla wydajności?
- Ktokolwiek napisał fragment kodu, powinien go posiadać, prawda?
- Co robisz, aby dostać się do „przepływu”.
- Jak zgłaszane usterki należy uwzględnić w planie projektu?
- ...
Są to pytania z więcej niż jedną odpowiedzią, a wszystkie dotyczą tematów, na które twórca oprogramowania powinien mieć świadomą opinię. Z całego serca zgadzam się z odpowiedziami, które wspominają poprzednie prawdziwe problemy występujące jako temat rozmowy (nie jako pytania).
Bardziej naukowe badania na temat skutecznego tworzenia oprogramowania od czasu Peopleware mówią, że najlepszymi programistami są ci, którzy rozumieją dynamikę rozwoju oprogramowania, nawet jeśli nie mają najwyższych IQ. Wolę wziąć nowicjusza, który chętnie się uczy, niż kogoś z n
wieloletnim doświadczeniem, który sprowadza się do 1
powtarzanego roku doświadczenia n
. Moje osobiste nastawienie dotyczy kandydatów, którzy mają tendencję do myślenia nieszablonowego, a jednocześnie wiedzą, jak dopasować się do obecnego (mojego) pudełka.