Влияние ReSharper на интервью по кодированию [закрыто]

18

Любой, кто использовал R # или CodeRush, знает, как быстро вы можете собрать простые конструкции (и сложные рефакторинги) с помощью простого сочетания клавиш. Однако вызывают ли эти плагины производительности ложную оценку способностей во время интервью?

Быть продуктивным автором кода (и произвести хорошее первое впечатление на собеседовании) - это быстро написать хороший код.

Если бы у меня было два кандидата:

  1. Не использует плагины. Она думает о проблеме, садится в стандартную среду IDE на ПК для интервью, который выглядит точно так же, как у нее, и печатает код через минуту или две, как обычно. Выполнено. Проходят.

  2. Использует плагины. Он думает о проблеме, садится в стандартную среду IDE на ПК для интервью и понимает, что «fe + tab» больше не пишет цикл foreach автоматически, и все ярлыки исчезли. Затем он спотыкается вокруг клавиатуры, ударяя по своим обычным горячим клавишам, выскакивая из странных окон и волнуясь. Ему требуется 3 минуты, чтобы написать то, что обычно занимает 30 секунд. Выполнено. Похоже, они время от времени не знали, как обходить IDE. Должен быть новичком в этой IDE и, следовательно, не имел большого опыта работы с ним или, возможно, с языком Проход, но знак «Мех» рядом с их именем.

По вашему опыту, как вы обращаетесь с плагинами во время интервью в качестве интервьюера или интервьюируемого? Каковы лучшие методы получения того, что действительно знает кандидат? Могут быть кандидаты, которые не понимают код и используют R # в качестве опоры. Могут также быть кандидаты, которые знают код внутри и снаружи и используют R #, потому что это просто быстрее, чем встроенные шаблоны VS или Eclipse. Лучше всего просто не использовать IDE вообще? Позвольте им принести свой собственный компьютер? Другие?

Райан Хейс
источник
4
Я голосую, чтобы закрыть этот вопрос как не по теме, потому что этот вопрос о том, как правильно проводить собеседование , что не по теме для справочного центра . Тем не менее, этот вопрос имеет компонент по теме, то есть « как инструменты, такие как ReSharper, влияют на его способность кодировать без такого инструмента »), но редактирование так, чтобы этот вопрос был слишком агрессивным по отношению к редактированию, сделало бы недействительными существующие ответы.
durron597
Если бы мне пришлось писать демонстрационный код в стандартной IDE, он был бы :wвезде заполнен случайными метками.
ЛиндаЖинн

Ответы:

31

Я был кандидатом 2 на собеседовании совсем недавно . Мне дали ванильную установку IDE на ПК с нестандартной клавиатурой и незнакомой средой тестирования, и меня попросили написать простое приложение Fizz-Buzz с юнит-тестами. Я взбил это. Должно быть, я выглядел как полный нуб, спотыкаясь в темноте, пытаясь взломать код. Излишне говорить, что мне не предложили должность.

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

Делает ли это меня менее способным кандидатом? В некотором смысле, я думаю, что это так . Тот, кто может писать код в Блокноте и правильно его компилировать и запускать, имеет определенные преимущества перед кем-то вроде меня, которому нужны все качества IDE, которые он может получить. С этой точки зрения я прекрасно понимаю, почему любая компания предпочла бы не нанимать такой инструмент, как я.

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

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

Итак, перефразируя Граучо, « я бы не стал присоединяться ни к одной компании, в которой был бы такой человек, как я ».

Во всяком случае, если они не позволят мне использовать ReSharper.

Kramii Восстановить Монику
источник
2
Когда я беру интервью у людей, я пишу код на листе бумаги. Он не должен быть красивым и не должен компилироваться, но он должен напоминать целевой язык. Я не ищу работающий продукт; я ищу образец мышления; может ли интервьюируемый думать о проблемах и решать их с помощью кода?
Роберт Харви
Кстати, должно быть приятно иметь возможность отклонять привлекательные предложения в нынешних экономических условиях.
Роберт Харви
12

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

ps В качестве примера, подумайте о Vim (или Emacs) - хотели бы вы использовать его без каких-либо пользовательских настроек, плагинов и т. д.?

ладья
источник
+1 Кроме того, если ваша задача по кодированию действительно проверяет только то, что они знают о foreach, я задаюсь вопросом, насколько она полезна на самом деле (даже что-то вроде FizzBuzz смотрит на нечто большее). Я беседовал с кем-то из сообщества Java, и он сказал, что вы можете сказать, кто такие хорошие .net-кодеры, когда они использовали Resharper. Не уверен, что это на 100% точно - но вы
поняли
1
Получение кандидата для написания кода на доске во время интервью ОЧЕНЬ показательно в их способности программировать. Как интервьюер, вы выносите суждение о том, сколько поддержки необходимо этому человеку для выполнения роли.
Майкл Шоу
8

Я бы сказал, что такие инструменты, как ReSharper, на самом деле делают вас лучшим кандидатом.

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

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

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

Уолт Стоунбернер
источник
1

Это одна из причин, по которой я прошу людей писать код на доске, а не в IDE. Выравнивает игровое поле. И люди говорят: «О, дорогой, я обычно справляюсь с этим». Черт возьми, встроенная ручка фрагментов для петель и тому подобного, которую доска не может вам дать. В таком случае, сказать что-то вроде «Я надеюсь, что пунктуация тут же; я парень R #» - это, вероятно, все, что вам нужно, чтобы я не допустил некоторых синтаксических проблем с вами.

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

Кейт Грегори
источник
Я полностью понимаю, почему вы хотите сделать всю работу с доской - я полагаю, что это отсеивает много плохих кандидатов - но это также отсеет и некоторых великих талантов. Конечно, это не должно быть проблемой, если у вас есть группа хороших досок.
Крами восстановит Монику
2
@Kramii: Вы знаете, «великий» талант должен уметь объяснять себя и свой код с помощью доски. Так что я не могу понять, почему это отсеет их.
Спойк
1

Отличный вопрос, кстати - я часто обдумывал это.

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

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

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

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

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

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

sheikhjabootie
источник
В интервью я очень ясно рассказываю об инструментах, с которыми привык работать, и о том, чего я ожидаю от компании. Поверите ли вы, что некоторые компании по-прежнему предоставляют только один монитор на разработчика? У меня нет проблем, когда я говорю интервьюеру: «Я бегу с половинной скоростью, потому что здесь нет инструментов, на которые я полагаюсь», особенно когда я использую комбинацию клавиш, и она не работает. Даже в номинально ванильной IDE я настраиваю вещи, потому что мои руки знают, где что находится, и я не могу быть обеспокоен переподготовкой. Для клавиатуры Дворака или написания комментариев на немецком языке, или любого другого препятствия, которое они хотят дать мне.
@moz - Полностью согласен, что вы должны сказать работодателю, что они не смогут получить от вас максимальную отдачу без инвестиций в инструменты. Я бы пошел еще дальше и заставил их взять на себя обязательство получить правильные инструменты. Наверное, работать с ними будет не очень весело, если они этого не сделают. Каждый раз, когда вы вручную что-то реорганизуете, вы будете ругать их за то, что вы не цените свое время. Работа где-то посредственно может повлиять и на вашу будущую способность зарабатывать. Это может стать интересным, если вы делаете какое-либо парное программирование, если два разработчика имеют разные конфигурации ярлыков. Я стараюсь максимально придерживаться стандартной конфигурации.
Шейхьябути