Каков наилучший способ оценить новых программистов? [закрыто]


52

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

Больше вещей, которые я должен отметить:

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

  • Степень университет / выпускник / аспирант не обязательно означает, что вы точно знаете, как это делать.

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

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

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

Я надеюсь, что я не говорю слишком агрессивно в своем вопросе; и кстати я сам программист

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


Я бы оценил креативность, как вы говорите, в отношении кодирования. Мне не нравится подход грубой силы, если поколения прошлых программистов использовали данный подход, это может означать, что он великолепен, или просто что он был сохранен в течение длительного времени. Кроме того, образование не должно фокусироваться на торговых навыках, и я бы сказал, что это очень важно, но ставить фактические оценки, полученные за базовый компетентный уровень, не так важно. Я хотел бы увидеть больше системы стиля Khan Academy, состоящей из множества небольших модулей pass / fail с другими зависимостями прохода модуля и периодом охлаждения до того, как мне будет разрешено повторно принять модуль.
alan2 здесь

Ответы:


52

Что касается отбора кандидатов, я обычно использую план из трех забастовок:

  • Регулярное тестирование с FizzBuzz-подобными вопросами кодирования и многими вопросами знаний, где они должны давать кодированные примеры. В зависимости от позиции это могут быть принципы ОО, принципы разработки SQL и т. Д. Я увеличиваю сложность вопросов по всему тесту, чтобы понять, насколько далеко они могут зайти. Идея состоит не в том, чтобы получить ответы на все вопросы (если они это сделают, тем лучше), а в том, чтобы узнать, могут ли они признать, когда они чего-то не знают. Доверие важно, и я не хочу, чтобы кто-то лгал мне в моей команде.

  • Вернитесь на тест с кандидатом и обсудите ответы. Возможно расширение вопросов до предела кандидата. Это может быть обширным, и чем оно обширнее, тем лучше.

  • Последняя часть, но не в последнюю очередь, The Code Review . Я прошу кандидата принести кусок кода (я обычно делю несколько предыдущих тестов / обсуждений и этот обзор на несколько дней, чтобы они могли написать и отполировать один фрагмент кода). Затем мы регулярно проводим анализ кода с двумя людьми: одним человеком, который будет непосредственно работать с кандидатом, и человеком, который ранее проверял тест с кандидатом. Относительно обзора кода вы можете прочитать эту статью от JohnFX .

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


4
Я согласен на вопросы кодирования и вопросы знаний, я никогда не соглашался просить кандидатов принести кусок кода. По моему мнению, нелегко найти существенный кусок кода, который: показывает что-то нетривиальное, не требует слишком больших знаний о более крупной системе и которую вы можете показывать другим.
Андреа Зилио

Я бы сказал, обзор кода. FizzBuzz так перегружен. И вы можете отпугнуть людей. Я был программистом в сфере здравоохранения и финансовых услуг, и такие вещи, как fizzbuzz, бесполезны. Вы должны быть в состоянии понять гораздо более сложное взаимодействие. Спросите у них примеры кода, даже если это FPS в Pygame. Если у них нет примеров кода, они не кодеры.
Кристофер Махан

1
@ChristopherMahan Значение FizzBuzz (и даже тривиальное кодирование) - простой привратник. Если они не могут реализовать FizzBuzz на своем языке, могут ли они написать ЛЮБОЙ код?
Vatine

@Vatine FizzBuzz проверяет логические способности, а не навыки программирования. Конечно, надо уметь это делать. Простой вопрос программирования: отобразить на экране список элементов, отсортированных интересным способом. Им придется кодировать, но они смогут опираться на опыт, чтобы придумать что-то, что можно написать, и не должны будут также пытаться понять, что такое дразнить мозг. Однажды я провалил собеседование, потому что они хотели, чтобы я использовал регулярные выражения, и я ответил, что для этой проблемы регулярное выражение - это избыточное убийство, и у python есть встроенные возможности для этого. Я не хотел работать там, я думаю.
Кристофер Махан

Code Review - ужасная идея, и опровержения JohnFX недостаточно. Я знаю множество разработчиков, которые великолепны, но не работают ни на чем, кроме основанных на собственном коде баз своего работодателя. Это люди с семьями и делами вне работы. Однако когда они работают, они очень продуктивны.
MrFox

20

Начните с предоставления им FizzBuzz для решения. Это должно отсеять худшее из них.

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

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


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

3
Я не согласен с говорящей частью. Вы часто разговариваете с собой или другими людьми, решая проблемы? Как насчет того, чтобы дать человеку немного места и дать ему немного подумать? Так что, если это не совсем тривиально, я думаю, что это не очень хорошая практика.
Андрей Рубштейн

1
@ Андрей - Говорящая часть заключается в том, чтобы понять их мыслительный процесс. Вы хотите увидеть, как они думают о проблеме и подходят к ее решению. У вас есть лучший вариант?
Одед

5
@ Да, на самом деле я так и делаю. Дайте им подумать некоторое время, в одиночку , как они это делают в реальной жизни, особенно если это сложная проблема, а затем спросите их столько, сколько захотите. Как и в любом устном экзамене.
Андрей Рубштейн

4
Даже будучи учеником в школе, в которой работают несколько недавно признанных профессионалов в области CS, я считаю, что тривиальный fizzbuzz - это прекрасный фильтр. Большинство людей, с которыми я получил высшее образование, вероятно, не могли решить это за разумное количество времени. Эти люди изо всех сил пытались найти работу или нет. Я думаю, что следующий joelonsoftware.com/articles/GuerrillaInterviewing3.html - это хорошо.
Рог

14

Просто ищите страсть к работе.

Чтобы процитировать Джоэла, ищите людей, которые « умны, и добиваются цели ».

Остальное не имеет значения


7
Проблема в том, что вы не можете сказать , умны ли они.

4
@Chad: страсть к обучению не "делает вещи". Чтобы узнать, может ли кто-то добиться чего-то, вы должны попросить его сделать что-то.
Кевин Клайн

2
@ Кевин Клин, подправил мой пост. Им нужно иметь страсть к работе, обычно это проявляется в желании учиться. Да, это требует некоторых вопросов, разговор должен проходить, это не должен быть просто ряд вопросов. Но чтобы узнать, добились ли они чего-то, спросите примеры, где у них было препятствие и как они преодолели это. Каждый сталкивается с препятствиями в своей работе, будь то технологии, люди, процессы, но умный человек, который добивается цели, найдет способ преодолеть это и сможет объяснить это подробно, достаточно, чтобы продать вас на их способность.
CaffGeek

3
@ Mouviciel не в моем опыте. Некоторые из самых умных программистов, которых я знаю, очень экстраверты.

4
Если вы не можете сидеть в комнате с кандидатом в разработчики и выяснить, умны они или нет, найдите кого-нибудь, кто сможет.
JeffO

13

Основываясь на моих 25-летнем программировании (которое, по общему признанию, включает только 5 или 6 случаев найма других программистов):

Положительные показатели:

  • Страстный о технологии

  • Программы как хобби

  • Буду отговаривать вас на техническую тему

  • Значительные (и часто многочисленные) личные сайд-проекты на протяжении многих лет

  • Изучает новые технологии самостоятельно

  • Мнение о том, какие технологии лучше для различного использования

  • Очень неудобно из-за идеи работать с технологией, которую он не считает «правильной»

  • Очевидно умный, может иметь отличные разговоры на различные темы

  • Начал программировать задолго до университета / работы

  • Имеет несколько скрытых «айсбергов», большие личные проекты под радаром CV

  • Знание большого разнообразия несвязанных технологий (не может быть в резюме)

Отрицательные показатели:

  • Программирование - это работа дня

  • На самом деле не хочу разговаривать по магазинам, даже когда

  • Изучает новые технологии на курсах, спонсируемых компанией

  • Рад работать с любой выбранной вами технологией, «все технологии хороши»

  • Не кажется слишком умным

  • Начал программировать в университете

  • Весь опыт программирования есть в резюме

  • Ориентирован в основном на один или два технологических стека (например, все, что связано с разработкой Java-приложения), без опыта работы за его пределами

Кроме того, я бы предложил:

  • Тест FizzBuzz (или что-то подобное, чтобы проверить базовую способность написать алгоритм.
  • Более сложная версия теста FizzBuzz (чтобы привести их к точке сбоя или почти сбоя).
  • Обсудите их код и посмотрите, не хотят ли они быть самокритичными и искать улучшения (которые они, вероятно, не успели сделать в краткой версии на месте), такие как:
    • хорошие имена переменных (у меня были очень опытные опытные программисты, использующие переменные в производстве, такие как "flag" (WTF ??)
    • модульность.
    • Предвидеть проблемы и делать «защитное кодирование»
  • Готовность видеть «недостатки» как возможности для улучшения. Я думаю, что лучшие программисты всегда смотрят на недостатки в своем предыдущем коде. Они не настолько эгоцентричны, чтобы думать, что обнаружение недостатка - это личное оскорбление. Они видят в этом возможность добиться большего. (Те, кто не может смотреть на недостатки непоколебимо, либо ошеломлены, увидев недостаток (и становятся неуверенными в себе или, чтобы избежать этого, они игнорируют недостатки).
  • Могут ли они отладить?
  • Могут ли они юнит-тест? (Я говорил со слишком многими программистами, которые говорят: «QC делает это». Я не говорю о тестировании, я говорю о тестировании: вы пишете функцию, она работает? Прилагает ли она разумные усилия, чтобы справиться с вероятные проблемы (нулевой ввод и т. д.)? Если вы не можете этого сделать, как вы узнаете, когда закончите?
  • Есть ли у них хорошие навыки общения? (как минимум: хорошее понимание и самопознание того, когда они понимают и не понимают, и готовность сказать: «Я не понимаю, пожалуйста, объясните это снова».

Большая часть приведенного выше резюме взято из статьи « Как найти хорошего программиста» , которая является отличной статьей, немного сфокусированной на индикаторах более дальнего действия. Это определенно подтверждает мою интуицию и опыт. Это также много вещей (например, «страсть»), которые обычно не упоминаются в контрольном списке «что такое хороший программист».


10

Оценка интеллекта программирования является формой теста Тьюринга. Таким образом, (в настоящее время) не существует процедур оценки закрытых форм, которые гарантированно работают. Умным программистам требуется распознавать других умных программистов, но только с некоторой разумной вероятностью.

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

(Одна из возможных методологий, которая может помочь оценить качество стекового потока как побочный эффект, - это выкопать старые вопросы о стековом потоке, которые каким-то образом связаны с вашими требованиями к работе, но, по вашему мнению, имеют неполноценные ответы; спросите собеседника, как они ответят, и пусть они опубликуют его, если это хороший ответ. Похоже на резюме для краудсорсинга OCR.)


7

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

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

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


Я согласен с вами по поводу недостатков теста пустяков / мозга для отбора кандидатов. проблема в том, что рассмотрение / обсуждение кода с каждым кандидатом будет слишком трудоемким. И, возможно, результат будет более субъективным. не совсем то, что я ищу, я бы предпочел что-то, что требует меньшего личного контроля. и позже, когда у меня появятся более подходящие кандидаты, тогда поговорите / обсудите / опросите их
Рафаэль

3
Слишком много времени? Кто-то собирается поговорить с кандидатами. Никакой письменный тест не сработает. Содержание теста быстро станет общеизвестным, и кандидаты прибудут с заученными ответами.
Кевин Клайн

10
@kevincline: Точно, вы должны поговорить с ними. Я брал интервью у Xerox (еще в 70-х годах), и меня спросили, как я буду обрабатывать коллизии в алгоритме хеширования. У меня не было много формального обучения программированию, но я занимался этим около 5 лет, поэтому я сказал, что не знаю, что такое хэш. Мой интервьюер объяснил мне это, затем снова задал вопрос. Мы продолжали больше часа, когда я обнаружил и решил несколько типов проблем столкновения. Он сказал мне, что если я смогу сделать это через час, я справлюсь со всем, что они мне бросят. Я получил работу. Потому что он говорил со мной.
Питер Роуэлл

@PeterRowell Вот как все должно быть. +1
Хирон

3

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

Нечетные практики найма при найме разработчиков программного обеспечения

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

Когда вы в конечном итоге найдете 1 или 2 кандидата, которые, по вашему мнению, действительно стоят вашего времени, не просто задавайте несколько глупых вопросов тестеру, а вместо этого потратьте время на знакомство с этими людьми и участие в открытых дискуссиях о программном обеспечении. инженерия в целом. При случайном подходе к кандидату вы узнаете больше, чем когда-либо в традиционной (и несколько враждебной) ситуации с интервью. Кроме того, не просто соглашайтесь на одно собеседование, а вместо этого проводите своих ключевых кандидатов на нескольких встречах, где используется открытое обсуждение и где кандидат может встретиться со своими потенциальными коллегами. Время не теряется впустую, так как неадекватные кандидаты не будут очень хорошо развиваться в высокотехнологичной дискуссии и очень быстро покажут свои недостатки, когда уйдут с охраны.


Хорошие моменты. Тем не менее, я был бы осторожен с большим количеством интервью. Как кандидат, так и ваше время ценно (особенно если кандидат в настоящее время работает в другом месте). По моему опыту, все больше и больше интервью имеют убывающую отдачу, поэтому я бы ограничился одним или двумя интервью. (Дополнительное) телефонное интервью также может быть компромиссом.
слеске

1
@sleske, я согласен в принципе, особенно если одни и те же люди посещают все интервью. Поэтому лучше разделить бремя, чтобы найти наиболее подходящее для компании и команды, и дает вам возможность учиться на наблюдениях других. Плохие интервью не пойдут дальше, но чем больше заинтересованных сторон проявляет интерес к кандидату, тем больше интервью вам может понадобиться, поэтому нередко бывает 3 или даже 4 интервью в очень широких группах. Слишком много, тем не менее, произвело бы впечатление ужасно дезорганизованного. Также стоит рассказать кандидату о количестве предварительных собеседований.
С.Робинс

@ S-Робинс интересные мнения, только хочу высказать некоторые аспекты моего вопроса. По независящей от нас причине мы не можем выбирать кандидатов на основе обычного процесса набора, вместо этого только кандидаты приходят, и нам нужно сказать, обладает ли он / она правильными навыками / знаниями для выполнения работы. Возможно, в обычном процессе рекрутинга такие вещи случаются не слишком часто. но в нашей позиции нам нужно разобраться с этой ситуацией.
Рафаэль

@Rafael, если я правильно понимаю ваши комментарии, вы говорите, что вас кормят кандидатами из «другого места» для оценки и что ваша трудность заключается в проведении объективной оценки кандидата без предварительного знания об этом кандидате. Это больше похоже на системную проблему в организации, где вы работаете. Я бы посоветовал встретиться с людьми, которые отправляют кандидатов на ваш путь, и поработать с ними, чтобы разработать систему фильтрации явно неуместных кандидатов перед тем, как вы будете брать у них интервью. Возможно, даже попросить внедрить более формальный процесс подачи заявки.
С.Робинс

@ С-Робинс, ты хорошо понял ...
Рафаэль

1

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

Тем не менее, вы решаете провести собеседование, не задавайте вопросы об этой «загадочной мысли» .


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

2
@Rafael norvig.com/21-days.html . Как я уже сказал, это зависит от того, ищете ли вы младшего программиста или старшего.
BЈовић

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

@Rafael В этом случае вы ожидаете слишком многого от младшего. Прочитайте статью, которую я разместил в комментарии выше, где рассказывается, сколько времени занимает овладение языком программирования.
BЈовић

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

1

Я предлагаю вам ответить на вопрос FizzBuzz и нанять первого, который пройдет. Дальнейшие тесты, как правило, ошибочны, так как не каждый хороший программист подойдет к такой проблеме, как вы, или проведет собеседование без заикания, или знает языки, которые вам нужны или интересуются, или глупость, как обмен целыми числами без третьей переменной (кому это все равно нужно? значит, объем ОЗУ превысил 128 байт?).

Думаю об этом. Если вопрос FizzBuzz исключает 199 из 200, то он просто исключает сотни интервью. Вы действительно собирались взять интервью у сотен потенциальных?

Просто кажется, что убывающая отдача после FizzBuzz. Это предполагает, что 199/200 даже близко. И я полагаю, ВАШЕ время тоже ценно ...


2
Страшно, как FizzBuzz является стандартным тестом для оценки компетенции программиста. Тем не менее, это проверенный и проверенный тест - я не могу сказать вам, сколько программистов со степенями CS не могут это сделать (на их «языке выбора»)
Nodey The Node Guy

0

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

Такие примеры глупого простого вопроса - это вопрос о рекурсии, такой как у вас есть список, и вы должны напечатать его в обратном порядке без использования цикла. Простой вопрос регулярных выражений, если регулярное выражение обычно делается в вашей разработке. Вопрос о битах и ​​байтах при использовании C ++ (напишите шаблон, который принимает char в long и распечатывает двоичное представление. Специализация не требуется, просто используйте sizeof () для определения длины в битах)

Это займет у вас <= 3 минуты на вопрос


0

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

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


0
  1. Могут ли они защитить то, что утверждают, что знают? Они помещают это в резюме / CV как навык или что-то, что они сделали в другом проекте. Посмотрите, как глубоко они могут пойти по этому вопросу.
  2. Могут ли они узнать что-то новое? Поговорите о высокоуровневом аспекте технологии, которую вы используете, или о чем-то особенном для бизнес-домиана, в котором вы работаете, и посмотрите, смогут ли они понять предмет. Они задают разумные вопросы? Могут ли они придумать аналогию? Это похоже на то, что они сделали в другой отрасли или технологии?

  3. Они скорее будут программировать? Это не должно быть номером один в их списке, но они должны показать предпочтение написанию кода. И я имею в виду на самом деле писать код и делать что-то, а не сидеть и говорить об этом или рисовать на доске весь день. Не для того, чтобы свести к минимуму планирование или продвигать ковбойское кодирование, но в конечном итоге у вас должен быть код. Избегайте тех, кто избегает клавиатуры. Это не позиция управления.

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


0

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

Первая прополка - это резюме. Одна вещь, которую я ищу, это много заявленного языкового опыта и ничего, чтобы описать то, что они делали на этом языке. Я видел резюме, которые в значительной степени утверждают, что они знают каждый когда-либо придуманный язык, и все же их опыт показывает, что они фактически работали только с Access и Visual Basic. Те идут прямо в мусор. Резюме на 10 страниц попадает прямо в корзину (особенно резюме на 10 страниц от людей с опытом работы менее 2 лет, которые я получил). Из недавних выпускников колледжа с небольшим опытом, вы должны быть очень разборчивы в том, как они себя представляют. Лучшие кандидаты осторожны со своими резюме, они не имеют ошибок. Вы действительно ищете кого-то, кто так мало заботится, что он не потрудился вычитать свое резюме?

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

Ищите вещи, которые выделяют человека из тех, которые вы выбираете. Конечно, с теми, кто только что окончил школу, это сложнее, но нужно искать достижения, вклад в открытый код и т. Д.

Следующее исключение - телефонное интервью. Спросите об основных понятиях, которые имеют отношение к вашей реальной работе. Если у людей нет базовых знаний о концепциях, которые вам нужны, их не стоит беспокоить, чтобы привлечь к личному собеседованию. Молодые люди часто думают, что это несправедливо, потому что они могут искать все в Интернете, но правда в том, что я никогда не встречал хорошего программиста, который должен был искать все в Интернете. Вы должны иметь некоторые знания о своей профессии, которые вам не нужно искать каждый раз.

После телефонного интервью вы должны выбрать лучших 4-5 кандидатов и пройти собеседование. Конечно, если у вас есть только 1-2 хороших кандидата, не беспокойтесь об интервью с людьми, которых вы уже исключили. Теперь вы будете задавать сложные вопросы и понимать, как они подходят к проблемам. Я бы никогда не использовал тест fizzbuzz, потому что он слишком хорошо известен, поэтому ответы ничего не говорят. Вместо этого создайте некоторые проблемы из своей собственной базы кода. Я мог бы дать им требование и кусок кода и спросить их, соответствует ли код требованию, а если нет, то почему, и что они могут сделать, чтобы он соответствовал требованию. Я бы попросил их описать самую сложную проблему программирования, которую им пришлось решить, и какие шаги они предприняли, чтобы найти ответ. Я хотел бы задать несколько более глубоких технических вопросов. Помните, что вы пытаетесь понять их техническую компетентность, способность решать проблемы и устранять неполадки, а также их способность соответствовать существующей команде. Я также задаю вопросы, на которые они, вероятно, не знают ответа, чтобы судить, насколько хорошо они справляются со стрессом, это стрессовая работа, я не хочу, чтобы кто-то сбрасывал на интервью, потому что стресс работы больше, чем стресс интервью , Я ищу сильные стороны в тех областях, в которых мы в настоящее время слабы, и способность работать в команде и представлять себя клиентам (наши разработчики активно работают с пользователями), ваш список может отличаться. Я хочу, чтобы кто-то скинулся на собеседовании, потому что стресс на работе больше, чем стресс на собеседовании. Я ищу сильные стороны в тех областях, в которых мы в настоящее время слабы, и способность работать в команде и представлять себя клиентам (наши разработчики активно работают с пользователями), ваш список может отличаться. Я хочу, чтобы кто-то скинулся на собеседовании, потому что стресс на работе больше, чем стресс на собеседовании. Я ищу сильные стороны в тех областях, в которых мы в настоящее время слабы, и способность работать в команде и представлять себя клиентам (наши разработчики активно работают с пользователями), ваш список может отличаться.


-1

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

Если она выйдет в ярких цветах, она в игре!

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.