Мне нужен способ отфильтровать резюме людей, которые просто копируют и вставляют код, надеются, что он работает, и проверяют его, если он работает. Все это происходит без понимания (или заботы), чтобы понять остальную часть кода в системе.
Конечно, я знаю, что копирование и вставка кода - это часть изучения нового объекта, управления и т. Д. ... но как понять, что это составляет 70% (или более) их карьеры разработчика?
Я встречал некоторых высокопоставленных ребят, возможно, чьи навыки настолько устарели или не имеют отношения к проекту, что все, что они делают, это Google, скопируйте, а затем вставьте некоторый код, не думая о решении в целом. В результате мы получаем неверное сочетание JSON, AJAX, обратных вызовов, ASMX, WCF и обратных передач в одном проекте. Ясно, что нет никакой последовательности или логики, где каждая технология используется.
В худшем случае разработчик этого типа создает проблемы безопасности и векторы для атаки.
Вопрос
Как бы вы посоветовали мне отфильтровывать людей с плохим опытом программирования? Могу ли я сделать это на уровне резюме? Если нет, то как мне это сделать во время собеседования.
источник
Ответы:
Я не думаю, что навыки ваших разработчиков являются проблемой. Ваша проблема лежит в другом месте, возможно, у руководителя или архитектора, у которого нет уверенности в себе, чтобы «поощрять» лучшие дисциплины кодирования, или у управленческой команды, которая не понимает важности управления техническим долгом и не дает им разработчики время и ресурсы для этого. Есть ли у вашей компании обзоры кодов?
Лидерство может быть проблемой, а не копировать-вставить разработчиков.
источник
Leadership may be the problem, not copy-paste developers.
Это была именно моя интерпретация.Способ отсеять программистов, которые не могут программировать, состоит в том, чтобы назначить им практическое упражнение по программированию как часть фазы отбора или фазы интервью. (Последнее, вероятно, лучше, потому что вы можете контролировать окружающую среду, чтобы предотвратить мошенничество.)
Но я не думаю, что это действительно решит вашу проблему.
ИМО, настоящая проблема здесь в том, что ваша команда недостаточно занимается внутренним пересмотром кода и не разрабатывает «игровую книгу» предпочтительных решений известных проблем. Отчасти это проблема культуры, отчасти проблема коммуникации и (возможно) отчасти проблема сроков выполнения проекта.
Другая проблема заключается в том, что проект обычно имеет длительный срок службы, и в течение этого срока будут появляться новые технологии / методы, и старые, вероятно, потеряют свою популярность. Если вы хотите избежать использования технологий / методов "завтрака для собак", вам необходимо:
источник
Нанимать людей на 3 месяца условно. Уволить их, если они сосут.
Если вы не ПРОВЕРЬТЕ, вы не можете ОЖИДАТЬ. Обзоры кода, инструменты аудита. Сервер CI может запускать их автоматически.
Задавайте реальные вопросы в своих интервью, как в вопросах из реального кода.
Получите их, чтобы написать код на доске.
Если вы не технический менеджер, вы не можете судить об этом.
Если вы не квалифицированы, найдите авторитетного старшего профессионального консультанта для проведения тестирования. Спросите своих существующих людей и деловых конкурентов, знают ли они 100-кратного продуктивного человека. Заплатите им, чтобы сделать интервью.
Если вы хотите управлять больницей без хирургического вмешательства, идите прямо вперед.
источник
Последние несколько лет я проводил интервью с людьми и обнаружил, что 90% кандидатов просто не могут программировать. Моя методика интервью для определения программирования - дать кандидату слишком простое задание и позволить кандидату решить его, используя маркер и доску.
Режимы отказов включают в себя:
придумать дизайн, а затем реализовать что-то другое. Эти кандидаты отклонены, потому что они опасны в команде. не следовать спецификациям, писать ошибки и т.д ...
Не в состоянии изобрести дизайн. Удивительному количеству «опытных» кандидатов нужна спецификация для включения дизайна реализации.
не зная языка программирования, несмотря на опыт работы с резюме.
Не задавая дополнительных вопросов, чтобы извлечь более полные спецификации.
Не в состоянии объяснить проектные решения. Это главный. Если кто-то не может объяснить, почему, то каждый раз он будет делать это по-другому, и последовательность теряется.
Конечным результатом было то, что я потратил много времени на собеседования, а не на набор персонала очень часто. Тем не менее, команда разработчиков была очень хороша, и имела полное уважение всей компании, и это доставило!
источник
Я хотел бы предложить FizzBuzz, который Джефф Этвуд упоминает в посте на http://www.codinghorror.com/blog/2007/02/why-cant-programmers-program.html .
источник
Я задаю три вопроса об интервью
Я видел, как люди завершили это за 5 минут, и видел, как люди боролись за 30 минут, прежде чем сдаться.
источник
java.util.LinkedList l = new java.util.LinkedList()
ничего не импортирует, но, безусловно, использует встроенные коллекции.Вы не можете сделать это на уровне резюме, поскольку у них, по сути, есть бесконечное время, чтобы записать это, но вы можете сделать это на телефонном собеседовании, если вы зададите несколько вопросов, которые требуют технического понимания того, что они делают. Это дает вам и ответ (хороший или плохой) и сколько времени им потребовалось, чтобы добраться туда.
Когда на собеседовании, заставьте их написать код. Это единственный способ узнать, могут ли они программировать по-настоящему. Сделайте задачу проще, дайте им компьютер с подключением к Интернету и установленную вами IDE, позвольте им задать любой вопрос (кроме gimme-hte-codez) и посмотрите, как они работают.
РЕДАКТИРОВАТЬ: Для посмертного анализа кажется, что PMD имеет детектор копирования / вставки, чтобы найти его: http://pmd.sourceforge.net/cpd.html
источник
просто
Редактировать:
Как указывалось выше 7, на практике можно сделать видеозахват (захват экрана).
источник
Если вы хотите «отсеять» плохих кодеров, вы можете попробовать, например, Matrix Competency Matrix (полезно, но, скорее, это не относится ко всем возможным областям - конечно, вы можете сделать самостоятельно) или codility.com (задачи очень хорошие и это экономит много времени).
Как правило, найм хороших кодеров труден и часто требует многих лет практики. Вы можете начать свою собственную базу данных вопросов интервью, не только спрашивая о программировании, но и с математикой, логикой, не говоря уже о вопросах мотивации.
источник
Я бы сказал, что проблема с вашими кандидатами не в том, что они вообще не умеют программировать, а в том, что у них нет чувства, как правильно использовать инструмент для работы. Мое предложение - вопрос эссе, в котором им будут даны требования высокого уровня для новой системы и предложено предоставить архитектуру и обосновать выбор компонентов. Но сохраните FizzBuzz для кандидатов, которые вообще не могут писать без браузера.
источник