Программирование арендного теста - Тест знание разработчиков в C# / [закрытый] ASP.NET

Можно найти это на Википедия , но выражения оценены к некоторому значению, в то время как операторы не имеют никакого оцененного значения.

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

Примечание, что некоторые языки (такие как Lisp, и я верю Ruby и многим другим) не дифференцируют оператор по сравнению с выражением... на таких языках, все - выражение и может быть объединено в цепочку с другими выражениями.

9
задан colithium 9 July 2009 в 08:51
поделиться

7 ответов

Раньше мы использовали проблемы из Google code jam . задачи в первых раундах легче и постепенно усложняются. Они своего рода алгоритмические по своей природе, вы можете решать их на любом языке, который вам нравится. По мере того, как они усложняются, часто появляется очевидный ответ «грубой силы», который не работает из-за размера данных. Поэтому вам нужно придумать что-нибудь более оптимальное.

1
ответ дан 4 December 2019 в 06:35
поделиться

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

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

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

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

В рамках части собеседования, посвященной решению проблем, вы должны искать:

  • Правильный дизайн структуры данных
  • Внедрение передовых методов объектно-ориентированного проектирования
  • Правильное решение (могут ли они эффективно отлаживать проблемы ... один отличный способ убедиться в этом - не разрешать им использовать компьютер, заставить их кодировать на доске и отлаживать в их головах)
  • Правильная проверка решения (придумывают ли они тестовые примеры)
2
ответ дан 4 December 2019 в 06:35
поделиться

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

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

  • Часть 1 : Реализовать x легкую сложность особенности.
  • Часть 2 : Реализовать x средней сложности особенности.
  • Часть 3 : Реализовать x сложно features.
  • Часть 4 : Реализуйте x очень сложных функций.

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

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

Подумайте, как устроены экзамены? Мы все можем получить 100% правильных вопросов на любом экзамене, если бы у нас было бесконечное количество времени, но за 1 час?

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

Однако я бы также посмотрел на общую полировку, которую разработчик дал коду. Если они реализовали все функции до раздела 4, но плохо, то они также не будут тем, кого вы хотите. ЕСЛИ разработчик сделал только до раздела 3, но реализовал все очень элегантно, тогда я бы хотел его нанять.

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

3
ответ дан 4 December 2019 в 06:35
поделиться

Вы должны проверить GeekInterview - хороший источник вопросов для интервью Есть сотни вопросов.

2
ответ дан 4 December 2019 в 06:35
поделиться

Первый предложенный вами тест должен занять от 10 до 40 минут для базового разработчика - я бы использовал имеющийся в моей библиотеке веб-сканер, который конвертирует HTML в XML, а затем легко использует Linq в XML.

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

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

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

0
ответ дан 4 December 2019 в 06:35
поделиться

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

Прежде чем задавать вопрос кандидатам, сначала убедитесь, что ваши коллеги / программисты могут это сделать. И что вы можете закодировать его менее чем за 60 минут так, чтобы вас удовлетворили.

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

Я полностью с ними согласен. Проведя самостоятельно около тысячи собеседований, я обнаружил, что задавать базовые вопросы, связанные с технологиями, не так хорошо, как просить реализовать небольшую рекурсию или указатели (если кто-то утверждает, что знает C / C ++).

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

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

22
ответ дан 4 December 2019 в 06:35
поделиться

Мой 2 цента:

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

У разработчика есть 48 часов на выполнение этого теста. Мы просим проверять качество продукции.Мы хотим протестировать следующие элементы:

  • Достаточно ли умен разработчик, чтобы скрыть крайние случаи?
  • Удовлетворительна ли реализация многопоточности разработчиком?
  • Достаточно ли хороши модульные тесты? Достаточно ли они охватывают случаи?
  • Хорошо ли написан и задокументирован код? Сможет ли кто-нибудь поддерживать этот код в будущем?
  • Заботится ли он о своем коде? Объяснил ли он, почему он сделал «А», а не «Б»?

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

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

2
ответ дан 4 December 2019 в 06:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: