Тестовое задание и вопросы на собеседовании для программиста

На DOU недавно разразились циклом статей про рекрутёрство. Это для нашего айти является огромной чёрной дырой. Начиная с профильного образования, которое практически нельзя получить ни в одном ВУЗе страны, где учат чему угодно, только не тому, что реально пригодится в работе. Следующим идут айчары (hr), которые тоже в лучшем случае с образованием психолога, но ни где не изучают остальные секреты профессии. И у нас происходит ситауция, когда один непрофессионал, приходит к другому не профессионалу. Подтвердить свои знания корочкой и зачастую даже сертификатами мы не можем и начинается собеседование. Аэчаров оббижать не буду, затронем техническое. Как правило это вопросы и тестовое задание. Но мы помним, что нас опрашивает такой же технический специалист без навыков рекрутёра и психолога, который не умеет задавать вопросы и зачастую пытается по петушиться и показать насколько он умный.

Не очень то хочется писать своё ИМХО и получать ярлык «недооценённого гения», но вот приведу очень хороший комментарий, с который совпадает с моими наблюдениями. Читайте под катом.

Александр Еременко

Менеджер проектов в УНИС

Что касается тестового задания. Частенько они с большой стоимостью имплементации:
— Первый случай: на вход даются два многоугольника в файлах, нужно написать алгоритм их сложения, пересечения и XOR — выходные координаты тоже в файл. Сторонние библиотеки (даже системные, которые умеют это делать) использовать нельзя. Расчет на 4-8 часов (С#). Учтем, что код на проверку надо писать красиво, очень архитектурно, с обработкой эксепшенов, с ремарками, в стилях и хорошенько оттестированным (а может быть даже с юнит тестами). Так вот у меня несколько ремарок по этому поводу. Как по мне очень нескромно отнимать у соискателя 8 часов — он на них еще не работает! Второе: я бы очень хотел иметь в своей команде человека, способного даже не создать свой, а найти и заимплементить готовый алгоритм за 8 часов (с учетом вышеперечисленных требований). И последняя: если они ТАК оценивают задачи, то КАК мне там будет работаться?!. Долго смеялся когда HR на мое возмущение ответила, что у них был мальчик, который за выходные сделал, но его не взяли — код неструктурированный был.
— Второй случай: двузвенка с тремя сущностями, CRUD и спецлогика, 4 часа (C#, VS2010). Тут еще с горем пополам можно было вписаться (опять же учитывая всю красоту), но лично я нарвался на тонну проблем в VS2010 со связыванием и намного превысил это время. Когда от проверяющего я услышал возмущение почему нет MVC, сортировки и фильтрации, которых не требовали по описанию, но я видите ли должен был догадаться, что так будет неудобно, меня просто порвало.

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

Что касается устного собеседования:
— Я называю это «шпильками». Собеседователь знает несколько сложных неочевидных вещей и начинает ими «понтоваться» перед соискателем. Из разряда задач i++ + i++ и т.п. В этом случае предлагаю в ответ загнать пару шпилек от себя, чтоб неповадно было. На самом деле эта ерунда в работе в 99% случаев не нужна.
— Прогонка по теории. Если институт был давно и за плечами много лет суровой практики вы уже навряд ли вспомните, что такое сложность алгоритма и какие есть методы сортировки. Да что там, что такое полиморфизм? -вот вопрос века! Все понимают, а объяснить толково могут немногие. В общем перед собеседованием нужно прошвырнуться по структурам данных, ООП, алгоритмам, паттернам и пр. Опять же, правильные ответы не гарантируют, что вы хороший программист, но они их любят, поэтому учите. Я вспомнил случай, когда нанимали на работу девелопера — выбрали одного, который единственно ответил на все теоритические вопросы, т.к. был дважды сертифицирован мелкомягкими и видимо поднатаскался в ихних тестах, но на практике оказался вообще никакой — переломал всю систему, еле избавились…
— А поговорить?. На одном 2-х часовом собеседовании я говорил наверное процентов 30, остальное время собеседователь рассказывал свой опыт, удивлялся моим решениям, предлагал свои, спорил. Это был кошмар — и остановить как-то неудобно и свое время зря тратишь.

— Многие работодатели даже не подозревают наверное, что не только соискатель у них, но и они у него на собеседовании. Бывают так увлекаются, что забывают рассказать о себе, предложить задать вопросы и т.д. Друзья, не стесняйтесь задавать самые коварные вопросы, в том числе и финансовые, расспросить об условиях труда и отдыха, попросить показать рабочие места и т.д. Если придете к ним на работу уже будет поздно. Ну и естественно навести все справки, которые только можно по этой конторе.

 

Тестовое задание и вопросы на собеседовании для программиста: 7 комментариев

  1. Стас

    Ага, недавно прохол собеседование с утра, а я обычно ложусь только часа 4, голова вообще не варила, да и тупо не хотелось решать эту логическую задачу, которая никаким образом не отображает мои навыки в программировании.
    А по MySQL был такой вопрос: в таблице есть записи (3, 6, 8, 9, 11) нужно вывести 3 наименьших отсутствующих числа. Нужно составить SQL запрос который бы вывел числа 4,5,7

  2. Omm

    Очень давно определился, что тестовые задания — полнейший бред. Если давать задание на дом, то невозможно контролировать ход его выполнения. Человеку могли помочь теми или иными способами. Следовательно, объективность такого теста сводится к нулю. Давать тестовое задание в офисе — еще больший бред. Соискатель заведомо находится в стрессовой ситуации, когда его КПД стремится к нулю. Некоторые вообще могут впасть в ступор. Плюс, решение или не решение конкретного задания очень слабо отражает общий объем знаний.

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

    В любом случае, нормальные выводы можно будет сделать только по факту месяца работы сотрудника.

    1. AmdY Автор записи

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

  3. Gemorroj

    Поддержу мнение)
    Постоянно недопонимание с HR по этому поводу.
    Код на гитхабе или другом хранилище скажет очень многое о соискателе как программисте и не потребует дополнительных телодвижений не со стороны соискателя, ни со стороны работодателя.
    Если по коду видно что человек может подойти, то тогда уже можно приглашать на собеседование и просто понять сработаетесь ли вы в команде.

  4. Гость

    Автор абсолютно прав, поддерживаю. Я PHP-програмист. Мне когда-то дали огромное задание, но мною было выполнено в срок. Потом позвонили, похвалили, а на работу в итоге не взяли, потому что не готовы были платить названную мной зп. Так зачем врать в тексте вакансии об её уровне и тратить наше время?!

  5. Хтось

    А меня как собеседующего возмущает, что человек, который ищет работу, не соизволяет потратить хоть немного своих усилий, чтобы доказать работодателю свою квалификацию. Даешь ему тестовое задание и слышишь в ответ: а, это мне еще извилины напрягать надо, задаром не буду, не хочу и т.д. Поймите, брать кота в мешке работодателю совсем нет никакого интереса. Больше всего возмущает позиция автора сего опуса: задавание встречного вопроса собеседующему. Как вы отреагируете, когда вы нанимаете на работу дворника, а он вам в ответ на просьбу показать свою квалификацию тоже сунет метлу в руки — покажи как ты сам мести умеешь. Это идиотизм, извините, что называю вещи своими именами.

    1. AmdY Автор записи

      Последний раз когда я сменил статус в моём круге за день пришло около 30-ти предложений о работе, какое здесь может быть тестовое задание, разве что для джуниоров.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *