Zatrudnianie młodszego programisty, o co powinienem zapytać? [Zamknięte]

56

Obecnie zatrudniamy młodszego programistę, aby mi pomógł, ponieważ mam więcej projektów niż mogę obecnie zarządzać. Nigdy nie zatrudniłem nikogo, kto nie byłby przyjacielem ani przynajmniej znajomym. Mam rozmowę telefoniczną z jedynym wnioskodawcą, który naprawdę mnie wyróżniał (na papierze), ale nigdy wcześniej tego nie robiłem.

Nasze projekty to wysoce skalowalne, intensywnie przetwarzające aplikacje internetowe, które przetwarzają miliony transakcji na godzinę na wielu serwerach i klientach. Aby być specyficznym dla języka / stosu, używamy ASP.Net MVC2, WebForms i C # 4, MSSQL 2008 R2, wszystkie działające na Windows Server 2008 R2

O co mam go zapytać? Jak ustrukturyzować rozmowę telefoniczną?

Jeremy Boyd
źródło
5
Dlaczego młodszy programista, a nie starszy?
Job
10
Koszt; firma właśnie stała się opłacalna w tym kwartale ... a moje ego jest kruche;)
Jeremy Boyd
48
Pod wieloma względami „niedrogi” programista może być droższy niż doświadczony / drogi programista. Kruchy komentarz ego jest wręcz przerażający. Jeśli nigdy nie zatrudnisz ludzi mądrzejszych od ciebie, zawsze będziesz nauczycielem, a nigdy uczniem. W ten sposób pozostaniesz w pyle.
JohnFx
6
Istnieje kilka fałszywych juniorów (<3 lata doświadczenia, ale wiele umiejętności). Czy wiek jest ważny?
James P.
2
Jeśli zatrudniasz Junior Developers, oznacza to, że nie jesteś w stanie ocenić ich doświadczenia. Ponieważ nie mają dużego doświadczenia w swojej krótkiej karierze. Z drugiej strony możesz ocenić ich umiejętności programistyczne, a także zobaczyć, jak piszą kod. Tak więc pierwszym krokiem może być test umiejętności, na przykład http://tests4geeks.com. Na drugim etapie możesz poprosić ich o napisanie prostych programów w domu. W twoim przypadku może to być aplikacja MVC, która wyświetla listę niektórych danych przy użyciu JSON i AJAX. Lista odświeża się automatycznie według timera, więc opublikowany element można zobaczyć bez odświeżania ..
ostry

Odpowiedzi:

49

Zapytaj, jakie blogi technologiczne czytają, zapytaj, co wnioskodawca uważa za interesujące w obecnej technologii i dlaczego.

Zasadniczo na rozmowę telefoniczną chcesz dowiedzieć się, czy jest to ktoś, kto jest entuzjastą technologii i programowania oraz jest zainteresowany nauką i wiedzą więcej.

Ponieważ jest to junior, nie możesz oczekiwać, że znają wiele zaawansowanych tematów, ale chcesz mieć pewność, że mogą myśleć jak programista - daj im prosty problem i poproś, aby przeprowadzili cię przez proces jego rozwiązania. Daje ci wgląd w to, jak myślą i rozwiązują problemy.

Oded
źródło
Chciałbym móc wybrać dwie odpowiedzi, ponieważ zarówno twoja, jak i Peter K. są świetną kombinacją.
Jeremy Boyd
5
Ta odpowiedź jest ograniczona i zaszkodzi ludziom, którzy stosują się tylko do tych rad. Aby wyświetlić ekran telefonu, postępuj zgodnie ze wskazówkami Steve'a Yegge . Aby osobiście mieć wyzwania w kodowaniu i postępować zgodnie z Guerilla Guide to Interviews Joela . Masz pytanie projektowe - „jakie są wszystkie kroki potrzebne, aby <wstawić wspólne, nietrywialne oprogramowanie>?” Przekonasz się, że niezależnie od doświadczenia, wszyscy dobrzy pracownicy mają dobre, szybkie odpowiedzi na te problemy.
Robert P.
Żałuję, że nie mogę +3 blogów @RobertP od ludzi z branży, takich jak Yegge, Joel i Atwood, były skarbnicą dla każdego, kto przeprowadzałby wywiad lub zajmował jakiekolwiek stanowisko kierownicze. lub ktokolwiek w branży, ale szczególnie, jeśli jesteś w stanie udzielić wskazówek lub ocenić innych inżynierów.
Jimmy Hoffa
26

Stosuję otwarte podejście do wywiadów telefonicznych, ale aby nadać mu pewną strukturę, zwykle proszę osobę, aby omówiła przesłane przez siebie CV. Często sposób, w jaki przechodzą przez swoje CV, powoduje inne pytania i pozwala lepiej zrozumieć, jakie są.

Inną rzeczą, o której należy pomyśleć podczas rozmowy telefonicznej, jest pytanie: czy mogę pracować z tą osobą? Czy są energiczni? Denerwujący? Precyzyjny?

Peter K.
źródło
20

Koduj razem z nimi.

Zdecydowanie powinieneś zrobić zwykłe rozmowy kwalifikacyjne. Ale nie zatrudniam nikogo bez zrobienia z nim sesji programowania w parach.

Moje podejście: zajmę 2-3 godziny i problem z zabawkami (np. „Zbudujmy Twittera w wersji 0.1” dla dewelopera z pełnym stosem lub „Zróbmy listę z prymitywów” dla osoby z zaplecza). Usiądziemy przy tym samym komputerze i omówimy, jak sobie z tym poradzić. Napiszę pierwszy test jednostkowy i powiem „zdaj”. Może napiszę kilka następnych testów, aby pomóc im zacząć. A potem generalnie pozwalam im biegać, wskakując tylko okazjonalnie. Kiedy skończy nam się czas, zatrzymam ich i zapytam, gdzie zabiorą to dalej, i co chcieliby zrobić, zanim uruchomi to na żywo.

Czego szukam:

  • Czy potrafią dobrze współpracować?
  • Czy rozumieją podstawy?
  • Czy potrafią rozbić problem na części?
  • Czy cenią czysty kod?
  • Czy łapią własne błędy?
  • Czy próbują bzdur, kiedy czegoś nie wiedzą?
  • Czy lubią kodować?
William Pietri
źródło
17
Poważnie wątpię, czy Junior dobrze sobie poradzi na sesji programowania w parach z modą TDD, a nawet ogólnie w testach jednostkowych.
Martin Blore,
3
Zależy od doświadczenia młodszego programisty. Właśnie zatrudniłem ostatniego tygodnia, który był w tym świetny. Mówiąc bardziej ogólnie, jest to część tego, co próbuję dowiedzieć się podczas rozmowy kwalifikacyjnej. Jeśli nie są dobrzy w części testowej, to po prostu napiszę testy samodzielnie lub pozwolę im pobierać opłaty bez testów. Tak czy inaczej pozwala mi zobaczyć, jakie są ich mocne i słabe strony.
William Pietri
2
Nie chciałbym tego robić teraz, po 10 latach doświadczenia, nieważne, kiedy byłem młodszy. Okropna myśl!
AnthonyBlake
3
Uznałbym się za młodszego programistę iz zadowoleniem przyjmuję to podejście, aby pokazać, jak i co mogę zrobić. Zbyt często spotykam się z pytaniami, które wymagają idealnych definicji słownika, bez względu na ich użycie i ogólną implementację. Czy wolałbym zacytować zapamiętaną listę zastosowań tego staticsłowa kluczowego poza Wikipedią lub pokazać, jak mogę go używać w realnym i odpowiednim kontekście?
amcc
7

What's your Stack Overflow account name?

Jednym z najlepszych sposobów, aby dowiedzieć się, jak będzie wyglądać czyjś kod, jest sprawdzenie go z pierwszej ręki. Jednym z najlepszych sposobów na to jest SO.

W przeciwnym razie obowiązują standardowe pytania. Zapytaj o trudne sytuacje i sposób ich przezwyciężenia. Zapytaj o to, jakich nowych języków się uczą lub myślą o nauce i dlaczego. Zapytaj ich, jakiego używają IDE i dlaczego to wybrali? Jaka kontrola źródła?

Możesz się wiele nauczyć, zadając pytania otwarte, które mogą nie odnosić się do konkretnego projektu, ale zamiast tego pozwolą im przejść przez proces myślenia.

EricBoersma
źródło
Lepiej poproś o konto github, chociaż prawdopodobnie udostępniliby te informacje, gdyby mieli konto.
Job
7
Tym razem zalogowałem się w SO i zdałem sobie sprawę, że 90% tamtejszych osób dba tylko o tworzenie stron internetowych ... potem wyszedłem ... tak bardzo dla mojego przedstawiciela.
Pemdas
3
Chociaż może to działać, niekoniecznie jest dokładne. Można włożyć znaczny wysiłek w ich płatną pracę niż w udzielenie przypadkowej porady.
NoChance,
5
Z tego, co jest warte, niektórzy z najlepszych programistów w mojej firmie albo nie mają konta SO, albo mają reputację <100. Oczywiście to świetnie, jeśli mają konto z wysoką liczbą przedstawicieli, ale nie można wiele przeczytać oni nie mają wysokiego.
Jeremy Wiggins,
W rzeczywistości, jeśli kandydat jest nieco aktywny na SO (lub jeśli był aktywny czasami w przeszłości), prawdopodobnie znajdziesz link do niego w swoim CV. Z drugiej strony, ankieterzy rzadko mają czas, aby przyjrzeć się czegoś takiego. Co w niektórych przypadkach może być dla ciebie dobre, ponieważ na przykład nie jestem dumny z każdego pytania / odpowiedzi, które opublikowałem na SO.
Radu Murzea,
6

Jedną rzeczą, której nie widziałem w tym krótkim czytaniu, jest potrzeba zapytania o:

1 - Gotowość do nauki

2 - Zdolność do samodzielnego nauczania a trening formalny

3 - Przykład czegoś, czego nauczyli się w przeszłości

4 - Przykład obszarów, z którymi nie czują się komfortowo

5 - Ogólne pytanie wysokiego poziomu, takie jak „jeśli Twoim zadaniem jest zbudowanie aplikacji internetowej na temat ... jakie zadania należy wykonać i kto powinien je wykonać” - To powinno dać ci wyobrażenie o ich aktualnej wiedzy na temat procesu rozwoju - To nie musi być dokładne, ale przynajmniej poznasz ich pogląd, tak jak dziś.

Bez szans
źródło
4

Opowiedz mi o projekcie, nad którym pracowałeś w przeszłości

  • Opisz ogólną architekturę projektu. Wysoki poziom jest w porządku.
  • Co znajduje się jedna rzecz, którą lubił o projekcie.
  • Co ci się nie podobało w tym projekcie.
  • Co, z perspektywy czasu, zrobiłbyś inaczej?

To jest świetne pytanie do wywiadów, moim zdaniem, telefonicznie lub w inny sposób. Jeśli potrafią inteligentnie mówić o projekcie, nad którym pracowali, są szanse, że go „dostaną”. Zatrudniasz programistę na poziomie młodszym, więc nie jest ważne, aby byli jeszcze ekspertami, ale powinni przynajmniej zrozumieć swoją dziedzinę wystarczająco dobrze, aby o tym mówić. Zazwyczaj osoby, które chcesz zatrudnić, nie będą miały z tym problemu, a osoby, od których możesz chcieć trzymać się z daleka, odpowiedzą w ciągu kilku zdań lub krócej.

Co robisz, aby być na bieżąco?

  • Jakie blogi czytasz?
  • Jakie książki czytasz / czytasz?
  • Coś jeszcze?

W branży, która ciągle się zmienia, myślę, że ważne jest, aby pozostali na bieżąco. To nie jest najważniejsze pytanie, które zadaję w wywiadzie, ale jeśli nie mogą wymyślić nic do powiedzenia, nie jest to świetny znak.

Powiedz mi, jak napiszesz zajęcia z roweru

Może lepsze pytanie na rozmowę osobistą, aby mogli napisać pseudo kod, ale myślę, że może to również zadziałać na rozmowę telefoniczną ... Opisz rower (ma drążki, koła itp.) Ktoś jeździ. ) i poproś, aby opisali, w jaki sposób modelowaliby klasę (klasy). Nic tu nie jest przełomowe, ale jeśli zmagają się z tym pytaniem, prawdopodobnie nadal są zbyt małe, by być atutem.

Jeremy Wiggins
źródło
2

Jest już wiele dobrych porad na rozmowy kwalifikacyjne, ale nie sądzę, abyś mógł obsadzić to stanowisko, dopóki nie dowiesz się dokładnie, co będą robić na co dzień. Jeśli twoja pierwsza myśl brzmiała: „Cokolwiek potrzebuję”. przestań. Znajdź konkretny fragment kodu do przejrzenia. Wybierz najlepszy i najgorszy kod, aby zobaczyć, czy znają różnicę. Daj im obszary do pracy przy pierwszym szybkim projekcie, który mógł zostać zaniedbany.

Mamy nadzieję, że zatrudniłeś najlepszego programistę, ale każdy ma obszary, w których jest lepszy / bardziej doświadczony niż inni. Skorzystaj z niego i odpowiednio zdefiniuj ich rolę.

Aha, i zatrudnij kogoś z historią robienia rzeczy.

JeffO
źródło
0

Kiedy rozmawiasz z programistą w trybie jeden na jednego, możesz go poznać, a następnie sprawdzić, czy jest z tobą szczery.

Aby to zrobić, możesz zadać mu następujące pytanie, aby dowiedzieć się, jak naprawdę jest uczciwy

  1. Jeśli wykonali jakieś certyfikaty, na przykład skontaktuj się z Certyfikacją Microsoft, aby dowiedzieć się, czy naprawdę się na nie sprawdzili i czy to wyczyścić.

  2. Niektórzy młodsi programiści, którzy wykonali projekty z ostatniego roku, nie zrobiliby tego samodzielnie, tzn. Ich znajomi musieli to zrobić dla nich itp.

Uczciwość odgrywa bardzo ważną rolę, gdy młodemu deweloperowi powierza się poufne projekty.

Jeśli uważasz, że możesz im zaufać, możesz podać ankietę, w których technologiach są rekrutowani, a następnie praktyczny tekst z pewnym scenariuszem przypadku, aby sprawdzić, czy mają logiczną zdolność, tj. Sprawdzić, czy mają stały kontakt w programowaniu.

Karthik Sreenivasan
źródło
1
zakładając najgorsze z ludzi?
tp1,
+1 za założenie. @ tp1 Pozostawienie wszystkich opcji otwartych. : D
Karthik Sreenivasan
0

Nada Aldahleh, dyrektor generalny Sandglaz, napisała niedawno na ten temat post na blogu, bazując na własnym doświadczeniu w zatrudnianiu programistów na start. Oto niektóre z rzeczy, których szuka:

  • rozwiązywanie problemów w myśleniu
  • Wysokie umiejętności komunikacyjne
  • zadawać pytania dotyczące architektury i algorytmu; młodszy programista powinien być w stanie zaprojektować nowe małe funkcje, a pytania dotyczące algorytmów mogą opowiadać o sposobie rozwiązywania problemów i rodzaju fundamentów, które mają
  • łamigłówki do izolowania umiejętności analitycznych

I oczywiście test programistyczny, który nie powinien składać się z pytania Fizz Buzz. Prawdziwe zadanie, które można wykonać w ciągu kilku godzin w biurze, byłoby najlepszym rodzajem testu.

Możesz przeczytać więcej jej porad tutaj: http://blog.sandglaz.com/how-to-interview-and-hire-junior-developers/

użytkownik104460
źródło