Наем младшего разработчика, что я должен спросить? [закрыто]

56

В настоящее время мы нанимаем младшего разработчика, чтобы помочь мне, так как у меня больше проектов, чем я могу в настоящее время управлять. Я никогда не нанимал никого, кто не был бы другом или хотя бы знакомым. У меня есть телефонное интервью с единственным заявителем, который на самом деле выделялся мне (на бумаге), но я никогда не делал этого раньше.

Наши проекты - это веб-приложения с высокой масштабируемостью и интенсивной обработкой данных, которые обрабатывают миллионы транзакций в час на нескольких серверах и клиентах. Чтобы быть специфичными для языка / стека, мы используем ASP.Net MVC2, WebForms и C # 4, MSSQL 2008 R2, все они работают на Windows Server 2008 R2

Что я должен спросить его? Как мне структурировать телефонный звонок?

Джереми Бойд
источник
5
Почему младший разработчик, а не старший?
Работа
10
Стоимость; компания только что стала прибыльной в этом квартале ... и мое эго хрупко;)
Джереми Бойд
48
Во многих отношениях «недорогой» разработчик может быть более дорогостоящим, чем опытный / дорогой разработчик. Хрупкий комментарий эго совершенно страшен. Если вы никогда не нанимаете людей, которые умнее вас, то вы всегда учитель, а не ученик. Вы останетесь в пыли таким образом.
JohnFx
6
Там есть несколько фальшивых юниоров (<3 года опыта, но много навыков). Важен ли возраст?
Джеймс П.
2
Если вы нанимаете младших разработчиков, это означает, что вы не можете оценить их опыт. Потому что у них мало опыта в короткой карьере. С другой стороны, вы можете оценить их навыки программирования, а также посмотреть, как они пишут код. Таким образом, первым шагом может быть проверка некоторых навыков, например http://tests4geeks.com. На втором этапе вы можете попросить их написать простые программы дома. В вашем случае это может быть приложение MVC, которое показывает список некоторых данных с использованием JSON и AJAX. В списке обновляется автоматически по таймеру так , публикуемый пункт можно увидеть без referesh ..
суровая

Ответы:

49

Спросите о том, какие технические блоги они читают, спросите, что заявитель находит интересным в текущей технологии и почему.

По сути, для телефонного собеседования вы хотите выяснить, является ли это тот, кто увлечен технологиями и программированием и заинтересован в обучении и получении дополнительных знаний.

Так как это младший, вы не можете ожидать, что они знают много продвинутых тем, но вы хотите быть уверены, что они могут думать как программист - дайте им простую задачу и попросите их рассказать, как они ее решат. Это даст вам понимание того, как они думают и решают проблемы.

Одед
источник
Хотел бы я выбрать два ответа, потому что и ваш, и Питер К. - отличная комбинация.
Джереми Бойд
5
Этот ответ ограничен, и это повредит людям, которые следуют только этому совету. На экране телефона следуйте советам Стива Йегге . Для личного, Имейте проблемы кодирования, и следуйте Руководству партизана Джоэла по Интервью . У вас есть вопрос о дизайне: «Каковы все шаги, необходимые для того, чтобы <вставить общий, нетривиальный фрагмент программного обеспечения>?» Вы обнаружите, что независимо от опыта, все хорошие сотрудники имеют хорошие, быстрые ответы на эти проблемы.
Роберт П
Жаль, что я не мог бы +3 @RobertP блоги от людей из отрасли, таких как Yegge, Джоэл и Этвуд, являются сокровищницами для любого интервьюирования или на любой руководящей должности вообще. или кто-то в отрасли действительно, но особенно если вы можете дать руководство или оценить других инженеров.
Джимми Хоффа
26

Я использую открытый подход к собеседованиям по телефону, но, чтобы придать ему определенную структуру, я обычно прошу человека обсудить резюме, которое они представили. Часто способ, которым они просматривают свое резюме, вызывает другие вопросы, и вы получите лучшее понимание того, на что они похожи.

Еще одна вещь, о которой стоит подумать во время телефонного интервью, это спросить: могу ли я работать с этим человеком? Они энергичны? Раздражает? Точная?

Питер К.
источник
20

Код с ними.

Вы должны определенно делать обычные интервью. Но я не нанимаю никого, не проводя с ними парного программирования.

Мой подход: я возьму 2-3 часа и игрушечную проблему (например, «Давайте создадим Twitter v 0.1» для разработчика с полным стеком или «Давайте реализуем Список из примитивов» для внутреннего пользователя). Мы сядем за один компьютер и обсудим, как с ним бороться. Я напишу первый модульный тест и скажу: «Сделай так». Может быть, я напишу следующую пару тестов, чтобы помочь им начать. А потом я обычно позволяю им бежать, прыгая только изредка. Когда у нас будет мало времени, я остановлю их и спрошу, где они возьмут его дальше, и что они хотели бы сделать, прежде чем запустить его вживую.

Вещи, которые я ищу:

  • Могут ли они хорошо сотрудничать?
  • Они понимают основы?
  • Могут ли они разбить проблему на части?
  • Они ценят чистый код?
  • Они ловят своих собственных ошибок?
  • Пытаются ли они ерундой, когда не знают что-то?
  • Они любят кодировать?
Уильям Пьетри
источник
17
Я серьезно сомневаюсь, что Junior преуспеет в сеансе парного программирования в стиле TDD или даже в модульных тестах в целом.
Мартин Блур
3
Зависит от фона младшего программиста. Я только что нанял одного на прошлой неделе, который был хорош в этом. В более широком смысле, это часть того, что я пытаюсь выяснить во время интервью. Если они плохо разбираются в тестировании, я просто сам напишу тесты или оставлю их на зарядку без тестов. В любом случае, я могу увидеть их сильные и слабые стороны.
Уильям Пьетри
2
Я не хотел бы делать это сейчас, после 10 лет опыта, не говоря уже о том, когда я был младшим. Ужасная мысль!
AnthonyBlake
3
Я бы считал себя младшим программистом и приветствовал бы этот подход, чтобы показать, как и что я могу сделать. Слишком часто я сталкиваюсь с вопросами, требующими идеальных определений в словаре, с небольшим учетом их использования и общей реализации. Вы бы предпочли, чтобы я процитировал запомненный список использования staticключевого слова из Википедии или показал, как я могу использовать его в жизнеспособном и применимом контексте?
amcc
7

What's your Stack Overflow account name?

Один из лучших способов узнать, как будет выглядеть чей-то код, - увидеть его из первых рук. Один из лучших способов сделать это - через SO.

В противном случае применяются стандартные вопросы. Спросите о сложных ситуациях и о том, как они их преодолели. Спросите о том, какие новые языки они изучают или думают об изучении, и почему. Спросите их, какую IDE они используют, и почему они выбрали ее? Какой источник контроля?

Вы можете многому научиться, задавая открытые вопросы, которые могут не относиться к конкретному проекту, но вместо этого позволят им проработать вместе с вами свой мыслительный процесс.

EricBoersma
источник
Лучше попросить их аккаунт на github, хотя они, вероятно, поделились бы этой информацией, если бы у них был аккаунт.
Работа
7
В этот раз я вошел в SO и понял, что 90% людей там заботятся только о веб-разработке ... потом я ушел ... так много для моего представителя.
Pemdas
3
Хотя это может сработать, это не обязательно точно. В их оплачиваемую работу можно приложить больше усилий, чем в случайном совете.
NoChance
5
Что бы это ни стоило, некоторые из лучших разработчиков в моей компании либо не имеют учетной записи SO, либо имеют репутацию <100. Конечно, это здорово, если у них есть учетная запись с высокой репутацией, но вы не можете много читать в у них нет высокого.
Джереми Уиггинс
На самом деле, если кандидат несколько активен в SO (или если они были активны иногда в прошлом), вы, вероятно, найдете ссылку на него в своем резюме. С другой стороны, интервьюеры редко имеют время для просмотра чего-то подобного. Что в некоторых случаях может быть полезно для вас, потому что я, например, не горжусь каждым вопросом / ответом, который я разместил на SO.
Раду Мурзеа
6

Одна вещь, которую я не увидел здесь в своем кратком чтении, это необходимость спросить их о:

1 - Готовность учиться

2 - Способность к самообучению против формального обучения

3 - Пример того, чему они научились в прошлом

4 - пример областей, с которыми им не комфортно

5 - Общий вопрос высокого уровня, такой как «если вам поручено создавать веб-приложение о ... какие задачи должны выполняться и кто должен их выполнять» - это должно дать вам представление об их текущих знаниях о процессе разработки. не должен быть точным, но по крайней мере вы узнаете их мнение, как сегодня.

Без шансов
источник
4

Расскажите мне о проекте, над которым вы работали в прошлом

  • Опишите общую архитектуру проекта. Высокий уровень в порядке.
  • Что вам понравилось в этом проекте?
  • Что вам не понравилось в проекте?
  • Что-то, что, оглядываясь назад, вы бы сделали по-другому?

Это отличный вопрос для интервью на мой взгляд, по телефону или иным образом. Если они умно расскажут о проекте, над которым они работали, скорее всего, они «поймут». Вы нанимаете разработчика младшего уровня, поэтому не важно, чтобы они еще были экспертом, но они должны, по крайней мере, достаточно хорошо понять сферу своей деятельности, чтобы говорить об этом. Обычно люди, которых вы хотите нанять, не будут иметь проблем с этим, в то время как люди, от которых вы, возможно, захотите держаться подальше, ответят парой предложений или меньше.

Что вы делаете, чтобы оставаться в курсе?

  • Какие блоги ты читаешь?
  • Какие книги ты прочитал / читаешь?
  • Что-нибудь еще?

В отрасли, которая постоянно меняется, я думаю, им важно быть в курсе событий. Это не самый важный вопрос, который я задаю в интервью, но если они не могут придумать, что сказать, это не очень хороший знак.

Скажите, как бы вы написали велосипедный класс

Возможно, это лучший вопрос для личного интервью, чтобы они могли написать псевдокод, но я думаю, что это может сработать и для телефонного интервью ... Опишите велосипед (у него есть ручки, колеса и т. Д. Кто-то ездит на нем. ) и попросите их описать, как они будут моделировать класс (ы). Здесь нет ничего новаторского, но если они будут бороться с этим вопросом, они, вероятно, все еще СЛИШКОМ младше, чтобы быть активом.

Джереми Уиггинс
источник
2

Уже написано много хороших советов по собеседованию, но я не думаю, что вы сможете занять эту должность, пока не будете точно знать, что они собираются делать изо дня в день. Если ваша первая мысль была: «Все, что мне нужно, чтобы они делали». просто перестань. Найдите конкретный кусок кода для их просмотра. Выберите лучший и худший код для них, чтобы посмотреть, знают ли они разницу. Дайте им области для работы над первым быстрым проектом, которым можно было пренебречь.

Надеюсь, вы наняли лучшего программиста, но у каждого есть области, в которых они лучше / опытнее других. Воспользуйтесь этим и определите их роль соответственно.

О, и наймите кого-нибудь с историей того, как это сделать.

JeffO
источник
0

Когда вы ведете личный разговор с разработчиком, вы можете узнать его, а затем проверить, честны ли они с вами.

Чтобы сделать это, вы можете задать ему следующий вопрос, чтобы узнать, насколько он честен на самом деле

  1. Если они выполнили какие-либо сертификаты, например, проведите с ними сертификацию Microsoft, чтобы узнать, действительно ли они ее изучили, и очистить ее.

  2. Некоторые младшие разработчики, которые выполнили свои проекты за последний год, не сделали бы проект самостоятельно, т.е. их друзья должны были сделать это для них и т. Д.

Честность играет очень важную роль, когда младшему разработчику доверяют конфиденциальные проекты.

Если вы чувствуете, что можете доверять им, тогда вы можете дать вопросник, по каким технологиям они набираются, за которым следует практический текст с некоторым конкретным сценарием, чтобы проверить, обладают ли они логической способностью, то есть проверить, имеют ли они постоянную связь в программировании.

Картик Сринивасан
источник
1
предполагая худшее из людей?
tp1
+1 для предположения. @ tp1 Сохраняя все опции открытыми. : D
Картик Сринивасан
0

Генеральный директор Sandglaz Нада Алдалех недавно написала об этом в блоге, основываясь на собственном опыте найма разработчиков для своего стартапа. Вот некоторые из вещей, которые она ищет:

  • решение проблем мышления
  • сильные коммуникативные навыки
  • задавать вопросы архитектуры и алгоритма; младший разработчик должен уметь разрабатывать новые небольшие функции, а вопросы об алгоритме могут рассказать об образе мышления для решения проблем и о том, какую основу они имеют
  • головоломки, чтобы выделить аналитические навыки

И, конечно же, программный тест, который не должен состоять из вопроса Fizz Buzz. Реальное задание, которое может быть выполнено в течение нескольких часов в вашем офисе, было бы лучшим видом теста.

Вы можете прочитать больше ее советов здесь: http://blog.sandglaz.com/how-to-interview-and-hire-junior-developers/

user104460
источник