Я ищу несколько небольших программных проектов, которые я могу дать потенциальным сотрудникам, чтобы оценить их способности к программированию. Это будут программисты прямо из колледжа. Я ищу проекты, которые могут занять у кого-то пару часов, и они отправят свои ответы по электронной почте после интервью.
Один из примеров - взять этот абзац текста и вернуть список алфавитных уникальных слов. После каждого слова скажите мне, сколько раз слово появилось и в каком (-их) посылке (-ях) слово появилось.
У кого-нибудь есть хорошие предложения?
Ответы:
Я давно пришел к выводу, что ничто не может сделать за короткое время, может сказать мне что-нибудь полезное об этом человеке. Но у каждого хорошего кандидата уже есть личные проекты, которые могут многое вам рассказать. Поэтому я заменил конкретные задачи на «дайте мне кусок кода, которым вы гордитесь и с удовольствием ставите свое имя».
Их выбор проекта говорит вам больше, чем любое часовое задание. И тогда вы можете потратить час на обсуждение, чтобы узнать еще больше.
источник
Я так устал от этой глупой игры. Я был в местах, где меня просили образцы кода, разорвал их на части, а затем попросил объяснить пример кода из их систем, который выглядел так, как будто он был написан взломанными 2-летними детьми. Меня попросили реализовать малопонятные алгоритмы сортировки, сетевые сервисы, графические интерфейсы, структуры данных (всегда либо дерево, либо связанный список). Каждый вопрос о раздражающем раздражающем вопросе о том, что интервьюер считает наиболее важной частью программирования.
В конце концов это все в значительной степени бесполезно. Лучший способ оценить работника - нанять его на 30 дней и посмотреть, насколько хорошо он выполняет свою работу. Тратьте все время на разработку тестов, и это не скажет вам ничего о том, как кто-то работает в повседневной жизни.
источник
Разрешение кому-либо заниматься практическим проектом в свое время не обязательно означает, что это он делает.
Каждый приходит на собеседование рано (по крайней мере, должен). У нас есть лист «пока вы ждете», чтобы они могли работать, пока мы не готовы их увидеть. В нем содержится восемь (8) вопросов, которые проверяют знания кандидатов на языке, который мы в основном используем.
Мы не ищем ответы на все вопросы правильно, так как каждый может получить их правильно с помощью компьютера перед ними. Мы ищем процесс, они даже пытаются ответить на вопрос, как они приходят к своим ответам.
Когда мы приходим на собеседование, мы проходим его вместе с ними и отвечаем на любые вопросы, которые могут у них возникнуть, что также может привести к получению правильного ответа. Это также позволяет нам спрашивать, как они получили ответы, которые они придумали.
Мы считаем, что это в сочетании с предыдущей работой - лучшие способы отфильтровать кандидатов.
ОБНОВЛЕНИЕ 2016/06/15
Мы значительно изменили наш процесс в том, как мы нанимаем разработчиков.
Этап 1: 15-минутное телефонное интервью, на котором мы задаем 7 вопросов. Первые 2: «Что самое веселое, над чем ты работал?» (не обязательно должен быть связан с программированием) и «Что вы пишете для развлечения в свободное время?».
Этап 2: мини-проект, который они выполняют в свое время. Затем мы делимся с ними экранами, и они показывают нам, что они создали. Во время совместного использования экрана мы также заставляем их внести два изменения в свой проект, а затем посмотреть, как они работают над ним и заставить его работать.
Этап 3: личное интервью.
Этот процесс позволяет нам сразу определить культуру (фаза 1). Могут ли они выполнять работу и действительно разговаривать (фаза 2). Наконец, убедитесь, что их значения соответствуют тому, что мы ищем (фаза 3).
источник
Возможно, вы захотите проверить фантастическое кибер-додзё Джона Джаггера .
Это интегрированная веб-среда, предназначенная для целенаправленной практики разработки через тестирование и изучения динамики команды. Он имеет множество небольших задач программирования (ката) и поддерживает широкий спектр языков, от Python и Ruby до Java и C ++.
В отличие от IDE, разработанных для повышения производительности, здесь нет дополнения кода, подсветки синтаксиса или автоматического рефакторинга, поэтому вы можете увидеть, что ваш собеседник может сделать без них.
Лучше всего, после выполнения ката вы можете вернуться и посмотреть на красно-зеленую прогрессию (или, может быть, нет, если они не выполняют TDD * 8 ') каждого из ката. Каждая компиляция / тест фиксирует изменения в git-репозитории вместе с результатами теста.
Я думаю, что использование этого для тестов кодирования интервью может многое рассказать вам не только о способности кандидатов решить проблему, но также и об их подходе к решению проблемы и о процессе, который они используют, когда он не ограничен внешними факторами, просто выберите ката, соответствующую время, которое вы хотите, чтобы кандидат потратил на это.
Если вам нужен собственный сервер CyberDojo, весь проект можно найти на github, и оттуда даже связана виртуальная машина устройства под ключ Linux, что означает, что при условии, что у вас уже установлен проигрыватель VMware или VirtualBox , вы можете запустить и запустить в несколько минут загрузки устройства!
источник
Я только взял интервью с одной компанией, которая сделала это. Они дали вопросный лист из 6 или 7 задач. Инструкции должны были сделать метод для решения каждой проблемы.
Одной из задач было понять, что вы можете повторно использовать код. Проблемы могут использовать код из других решений. Это не было последовательным. Например, вопрос 3 может быть написан с использованием метода, используемого для вопроса 5.
Я бы предложил попробовать что-то подобное.
Что касается вопросов? Некоторые из начальных вопросов на сайте Project Euler хороши.
Вы также можете попробовать простую игру, если хотите посмотреть, как они могут собрать проект.
Или, если вы не хотите что-то придумывать, попросите их прислать вам код из окончательного проекта.
источник
Чтобы попросить людей завершить проект, у вас должен быть определенный набор навыков, которые вы хотите оценить, и разработайте проект для проверки этих навыков.
Что вы ищете с этим вопросом? Сколько существует способов ее решить, и что каждый подход говорит вам о человеке, который написал ответ? Являются ли навыки, продемонстрированные эффективным ответом на этот вопрос, теми же навыками, которые наиболее важны для вашего бизнеса?
Я не хочу ответов на эти вопросы; Я просто хочу, чтобы вы подумали об ответах, прежде чем подвергнуть группу кандидатов вашему процессу. Если вы знаете, какие навыки вы ищете, создать вопрос для поиска этих навыков не сложно. Если вы используете чей-то вопрос без глубокого понимания того, для чего он предназначен (если вообще что-то), вы просто дурачите себя и тратите время каждого.
источник
На каком языке они написали бы это? Если они выходят из школы, в которой основное внимание уделяется C, то писать ее будет не так быстро, как учить Python / Perl / Ruby и т. Д. ... Или даже Java или C #. Тем не менее, это хороший маленький тест.
Во время интервью я предлагаю несколько более простых. Никаких хитрых вопросов. Я с TMN на этом. Дайте им пару функций, которые выполняют основные задачи и спросите, что они делают (читая чужой код). Затем дайте им пару основных заданий (<20 строк), чтобы написать на языке по своему выбору. Этого должно быть достаточно, чтобы начальный уровень знал, могут ли они кодировать или нет (в позиции начального уровня). Это вместе с собеседованием и GPA должно дать вам хорошее представление о том, что вам нужно знать.
источник
Попросите их реализовать «Игру жизни» Конвея для любого языка, на который вы смотрите, используя парадигмы дизайна этого языка.
Игра Жизни на Java или C # Conway должна быть объектно-ориентированной, LISP или F # - функциональной и т. Д.
источник