Наша компания ищет новых программистов. И тут возникает проблема - есть много разработчиков, которые отлично смотрятся на собеседовании, кажется, знают технологию, которая вам нужна, и имеют хороший опыт работы, но после двух месяцев работы вы обнаружите, что они не могут работать в команда, пишущая какой-то код, отнимает у них очень много времени, и, кроме того, результат не так хорош, как должен быть.
Итак, вы используете какие-либо формализованные тесты (есть ли?)? Как вы узнаете хорошего программиста и хорошего человека? Есть ли простые «хорошие» вопросы, которые могут выявить будущие проблемы? ... или это просто ваше "чувство" по отношению к человеку (то есть, в основном, ваш опыт), и испытываете его / ее?
Изменить: Согласно ответу Маноджа, вот вопрос, связанный с задачей кодирования на собеседовании.
источник
Ответы:
Пусть они расскажут о том, что им интересно. Мне еще предстоит встретиться с разработчиком, который действительно увлечен разговорами о программировании, но не может на самом деле писать код. Конечно, они вполне могут существовать - и ваше собеседование также должно проверять компетентность - но страсть - хороший показатель в моем опыте. (Обратите внимание, что это не то же самое, что умение «говорить и говорить» в терминах модных слов.)
Спросите их, что им не нравится в их любимом языке или платформе. Как бы они исправить вещи? Что бы они хотели увидеть в следующей версии? У них есть хобби проекты? Если у них есть блог, прочитайте его. Проверьте их общее присутствие в Интернете.
источник
Нанимать хороших людей сложно .
Мне понадобилось несколько реальных ошибок, чтобы стать лучше. Вы начинаете доверять своему кишечному тракту намного больше после того, как первые пару раз вы не доверяете этому и сожалеете об этом.
Я с большим уважением отношусь к вопросам экрана телефона Стива Йегге и использовал это как основу для интервьюирования людей с некоторым успехом.
Я также думаю, что стал лучше проводить собеседования с людьми после прочтения руководства Джоэла по проведению собеседований с партизанами (сейчас в версии 3.0 это опережает версию для Интернета и всего остального, это просто должно быть хорошо).
Есть также 57 других вопросов (по состоянию на 20/11/2008) о разработке программного обеспечения Stackexchange, отмеченных интервью, и некоторые из них выглядят очень актуальными, так что проверьте их.
источник
2^16
наизусть. А ускоренная версия внизу - просто плохая пародия.Некоторые идеи:
Задайте несколько открытых вопросов с нескольких разных точек зрения:
Выберите что-нибудь - что угодно - кандидат утверждает, что знает хорошо. Задайте простой вопрос, а затем, основываясь на ответе, задайте другой, чуть более подробный, и продолжайте «копать», пока не достигнете предела знаний кандидата. Это дает вам представление о:
Спросите, как кандидат справлялся с различными ситуациями на предыдущих работах: командная работа, просроченные проекты, отладка и т . Д. Ответы положительные или отрицательные? Страстный? Умный? Высокомерный?
Я нахожу лучших кандидатов восторженными, опытными, уверенными, но вежливыми и, самое главное, настоящим . Вам нужно знать, что внутри кто-то есть. :-)
источник
Чтобы признать хорошего программиста, вы должны быть хорошим программистом. Это означает, что вы должны очень хорошо разбираться в программировании, чтобы понять, что сказано и сделано в интервью, и вы должны знать, какие вопросы задавать.
Я видел кандидатов, давших неправильный ответ на собеседовании, но их объяснения показали, что они знали предмет (и, следовательно, могли легко получить правильный ответ, просматривая сеть). Чтобы увидеть это, вы должны очень хорошо знать тему, о которой задаете вопрос.
Другое дело, чтобы избежать вопросов о деталях, которые можно легко найти. Этот вопрос только показывает, насколько хорошо кандидат помнит вещи, но не имеет ли он или она действительно знания и понимание, которые вы ищете.
Я рекомендую обратиться за помощью к тому, кто хорошо знает программирование и имеет хорошие навыки общения с людьми, чтобы помочь с интервью.
Редактировать: я также написал комментарий об интервью здесь .
источник
Помните, что программирование не все. У вас мог бы быть лучший программист в мире, работающий на вас, но если они ненавидят работать с другими людьми, вы не найдете их очень полезными.
Личность программиста должна быть выше в списке, чем большинство работодателей, кажется, оценивают это. На моем нынешнем рабочем месте они очень осторожны при найме правильного человека.
Люди обычно могут учиться быть лучшими программистами, люди не могут вообще учиться быть лучшими людьми.
источник
Сделай им код. Дайте проблему, которую можно решить, скажем, через 4 или 5 часов, и проверьте код на предмет документации, стиля кодирования, того, как он планировал решение, прежде чем приступить к кодированию и т. Д. Ему не нужно фактически решать проблему. И, как упоминал Джон Скит, заставьте их говорить о программировании, о своем языке выбора и тому подобных вещах. Вы можете распознать страсть у хорошего программиста. Спросите, сколько сайтов, связанных с программированием, они используют, как stackoverflow. Блоги, за которыми они следят, могут быть хорошим индикатором.
источник
Мне нравится страстный ответ. Я считаю, что вы должны быть увлечены тем, с чем работаете, чтобы на самом деле быть очень хорошими в этом.
Хороший программист на стороне программы помимо работы (время от времени, по крайней мере). Он / она любит решать проблемы программирования. И когда он / она не может найти программу, которая решает конкретную проблему дома, он обычно пытается решить ее сам.
Но есть несколько типов программистов.
Если вы сможете найти «хакера», который также отлично документирует и обладает превосходными коммуникативными навыками, я думаю, вы выиграли джекпот.
Ох, и последнее. Вы, вероятно, не хотите, чтобы у программиста были амбиции лидера, поскольку он будет использовать только программирование для запуска. Это означает, что вы потеряете этот ресурс рано или поздно.
Вопрос, который я хотел бы задать при приеме на работу программиста: «Почему вы воспитали себя программистом?». Это было бы мертвой раздачей, если они колеблются там.
Это мое мнение.
источник
Мой друг работает в компании, где у него есть дополнительный этап в процессе найма: после первоначального отбора и собеседования заявитель должен «проверить работу» в течение нескольких дней. Он сказал мне , что даже если один кандидат имел каждый навык и талант нужен, они не нанимал его , потому что он был
такое ане хороший человек , чтобы работать.источник
Очень сложно узнать программиста, основываясь только на собеседовании.
Некоторые вещи, которые решают, что кто-то является хорошим программистом:
Итак, у вас есть несколько небольших советов, о которых вы можете узнать в интервью:
источник
Вы могли бы провести тест на собеседовании.
Но часто возникает проблема с самой рабочей средой. Конечно, это может быть не так в вашей организации, но в области программного обеспечения довольно распространено, что технологическая задолженность становится слишком большой. Тогда, когда вы нанимаете новых людей, это не очень помогает, если они хороши или нет, из-за долга. Максимальное удобочитаемость и понятность кода вашей программы помогает новичкам приступить к работе.
Также многие люди таковы, что они могут сотрудничать, но иногда нет возможности сотрудничать. Например, если все люди разработчики, они должны выполнять свою работу. Ну, они делают. Но есть ли у вас архитектор, который руководит проектом развития и проводит встречи и тому подобное? Обычные разработчики могут чувствовать, что у них нет необходимого мандата для начала встреч, и они могут подумать, что мешать другим время от времени - это не тот путь.
Общение друг с другом не должно быть конечной целью. Чем меньше нужно общения, тем лучше, но только если меньше возможно. Меньше становится возможным, если у вас есть архитектор. Общий объем общения может оставаться на хорошем уровне, но вы получите больше результатов за тот же объем общения.
источник
Сначала я начинаю с обычного материала для собеседования. Я считаю очень важным выяснить, стоит ли человеку передо мной чего-то и определить его / ее навыки и знания.
После этого я использую несколько технических приемов в области Java, таких как обсуждение некоторых принципов, в основном взятых из Effective Java.
На этом этапе, когда я думаю, что передо мной может быть хороший программист, я даю ему кусок кода для проверки кода. Что я хочу видеть, так это то, что он может точно определить опасные части кода, дать некоторые подсказки по улучшениям, найти недостатки в производительности многопоточности и то, что он может отличить важные замечания от «вкусовых замечаний». Все это помогает мне найти более опытного сотрудника.
но, в конце концов, я всегда помню, что найм - это разновидность азартных игр ... очень очень трудно предвидеть ...
источник
Я знаю, что это не отвечает на ваши вопросы, но я рекомендую, если позволяют законы, сначала всегда нанимать на временной основе (две недели или месяц, в зависимости от работы). Если человек стоит своей соли, он не будет возражать, кроме того, это гарантия для вас обоих (вы можете отпустить его, и он может в конечном итоге не полюбить работу и уйти).
источник