Через некоторое время мы снова нанимаем, и я проверяю тесты для программистов; некоторые из них немного устарели. Каковы некоторые из вопросов типа FizzBuzz для веб-разработчиков и SQL? То есть не слишком тривиально, но все же разрешимо за пять-десять минут с ручкой и бумагой и без Google?
Обычно я исключаю около двух третей или более кандидатов на основе резюме, а затем всех, кроме нескольких действительно хороших кандидатов, в одномчасовом собеседовании (которое может быть по телефону). В этот момент кандидат пишет тест на личность и имеет шанс написать немного кода, похожего на FizzBuzz. Итак, я не пытаюсь исключить группу кандидатов, но я пытаюсь подтвердить свою первоначальную оценку того, что кандидат может быть нанят и способен кодировать.
Ответы:
Я считаю FizzBuzz тестом, чтобы узнать, действительно ли люди знают то, что, по их утверждению, знают в своем резюме. Я не стал бы использовать это как что-то кроме вопроса, чтобы отсеять кандидатов, которые не знают, о чем они говорят.
Подходящей заменой SQL было бы просто попросить кандидата написать инструкцию SQL, например выбрать поля «Имя» в двух соединенных таблицах, которые начинаются с A. Это просто и демонстрирует, что кандидат на самом деле действительно знает SQL.
Для веб-разработчика я бы просто спросил их FizzBuzz. То, что вы программируете для Интернета, не означает, что вам не хватает умения выполнять базовую логику программирования.
Если вы ищете актуальные вопросы для интервью, есть много хороших онлайн, которые вы можете найти с помощью быстрого поиска. Я нашел больше, чем я хотел бы перечислить, потратив 10 секунд с Google.
источник
Вот ответ, который я дал на очень похожий (возможно, дублирующий) вопрос, который был закрыт на этом сайте.
Чрезвычайно простой уровень: заданная таблица сотрудников со столбцами EmpID, FirstName, Lastname, HireDate и TerminationDate: напишите запрос, чтобы вернуть всех сотрудников, все еще работающих в компании, с фамилиями, начинающимися с «Smith», отсортированного по фамилии и имени.
Простой уровень Учитывая приведенную выше таблицу Employee, а также новую таблицу «AnnualReviews» со столбцами EmpID и ReviewDate: напишите запрос, чтобы вернуть всех сотрудников, у которых никогда не было отзыва, отсортированного по HireDate.
Средний уровень
Учитывая приведенную выше таблицу сотрудников, напишите запрос, чтобы рассчитать разницу (в днях) между наиболее и менее штатным сотрудником, все еще работающим в компании?
Сложный уровень Учитывая приведенную выше таблицу сотрудников, напишите запрос, чтобы рассчитать самый длинный период (в днях), который компания прошла без найма или увольнения.
Уровень сложности
Снова, используя одни и те же таблицы, напишите запрос, который возвращает каждого сотрудника, и для каждой строки / сотрудника указывается наибольшее количество сотрудников, которые работали в компании в любое время в течение срока их службы, и первая дата, когда был достигнут максимальный уровень. Дополнительные баллы за неиспользование курсоров.
источник
Как насчет самого fizzbuzz? Вот версия Oracle:
источник
Я нахожу, что у людей, по какой-то причине, много проблем с работой по времени, так что это может быть хорошим местом для небольшого теста.
Что-то вроде этого:
Часть 1. Создайте функцию, которая будет вычислять N-й или последний день недели в данном месяце, т.е. первый, третий, последний вторник в следующем месяце.
Часть 2 (при желании): Разработайте таблицы для хранения временных выражений для повторяющихся расписаний. Расписание может быть любым из «N-го дня недели одного или нескольких месяцев» или «N-го дня одного или нескольких месяцев» или «каждые N дней от даты».
Например, 15 числа каждого месяца, последняя среда каждого марта, последний день каждого месяца, каждые 17 дней со 2 декабря 2008 года и т. Д.
источник