Старшие вопросы интервью с разработчиками SQL - слишком сложно?

Предупреждение, это длинный пост. TL/DR: Я слишком суров с моими собеседованием?

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

Фон

Мы - магазин бизнес-аналитики. Однако мы не ожидаем, что кандидаты получат знания BI. Если у вас есть твердый фон T-SQL, это все, что нам нужно. Мы проверим вас в отношении Analysis Services, Dimensional Modeling и т.д. Итак, все, что мы тестируем, - это навыки T-SQL. Все происходит в SSMS.

Если кандидаты проходят скрининг по телефону, мы приводим их для интервью по кодированию, где мы даем им 7 вопросов и щедрое 90 минут. Я присутствую во время кодирования, чтобы следить за различными вещами, например, как они перемещаются по инструментам, что они исследуют и т.д. Следует отметить, что мы четко указываем, что им доступны любые ресурсы, включая Интернет, BOL, и др.

Вопросы

Вот вопросы в сокращенной форме, чтобы не давать слишком много времени (так как они могут решить этот вопрос: P)

  • Fizzbuzz - я хочу посмотреть, как они генерируют свой набор строк. Если они используют переменные/циклы, я умираю внутри
  • Агрегация - вопрос в основном заставляет кандидатов использовать всю область действия оператора select (select, from, where, group by, having)
  • Как работают NULL - я задаю "сложный" вопрос, когда подзапрос IN ничего не возвращает из-за значения NULL в таблице подкатегории. Я прошу обходной путь, чтобы сделать запрос работы, а затем объяснение, почему это не было в первую очередь. Я хочу знать, что они понимают, что значение NULL/означает и как SQL оценивает их.
  • Индексирование. Простой запрос соединения 2 без индексов. Я прошу, чтобы кандидаты улучшили стоимость всего дерева запросов на 20%. Я быстро узнаю, индексировали ли они раньше или нет. Я делаю это для того, чтобы сообщить им: "ПРОЧИТАЙТЕ ВОПРОС. ДАЙ МНЕ, ЧТО Я СПРОСИТЬ". К сожалению, я не думаю, что ни один заявитель, как даже отметил начальную или конечную стоимость дна.
  • Завершенные итоги. Я даю таблицу с номерами PK/date/numeric и прошу их обновить другой столбец с общей суммой на ПК. Это непросто, и это странная задача. Меня не волнует, заканчиваются ли они вовремя, но я хочу увидеть исследование, если они этого не сделали, или приличную попытку (даже если это неэффективно, по крайней мере, начните писать некоторые коррелированные подзапросы).
  • XML - я прошу их извлечь значение из столбца, типизированного в XML. Я не ожидаю, что кандидаты узнают, как это сделать, и я говорю им это. Суть этого заключается в том, чтобы наблюдать за тем, как они проводят исследования и т.д., Как и в любое другое время, когда они сталкиваются с новой проблемой на работе и нуждаются в ее решении.
  • CTE - я просто прошу их написать CTE. Это. Бонус, если он делает что-то творческое/интересное.

И что это. Итак, мой вопрос: насколько справедливы эти вопросы? Мы ищем кого-то с реальным опытом. Для меня непостижимо, что кто-то с 10-летним опытом SQL не может даже получить 1 или 2 из этих вопросов. Я слишком суров? Должен ли я добавить/удалить материал из этого?

Ответы

Ответ 1

Вопросы

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

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