[Перевод] Пять признаков того, что вы должны сейчас же нанять этого программиста
Когда вы приглашаете программиста для собеседования и выполнения тестового задания, это может оказаться интересным опытом и для вас, и для него. Большинство собеседований заканчивается тем, что менеджер по подбору персонала обещает «оставаться на связи», но иногда соискатель просто попадает в точку. В такие моменты вы обдумываете, не нанять ли его еще до того, как он успеет покинуть здание. Мы в Alconost Translations перевели для вас статью шароварщика Брайана Келли именно о таких удачных случаях.
В TimeTrade мы даем программистам тестовое задание, с которым большинство из них должно справиться за 2 часа. Все задание состоит из последовательности небольших задач, каждая сложнее предыдущей. Это позволяет нам оценить производительность программиста, основываясь исключительно на времени выполнения задания: если все решено меньше, чем за час, мы будем довольны. Но если прошло два часа, а первая задача все еще не решена, скорее всего, мы укажем кандидату на дверь.
Но, помимо одного лишь быстрого решения задач, есть еще несколько признаков того, что перед вами действительно потрясающий программист, которому надо немедленно предложить работу прежде, чем он успеет уйти.
1. Он предлагает несколько решений
Недавно я собеседовал программиста, который решил весь набор задач дважды: один раз итеративным способом, второй — рекурсивным. Я сразу же предложил ему работу. Умение находить несколько решений проблемы — навык, который инженерам приходится применять каждый день.
2. Он пишет полную документацию
В прошлом году я собеседовал настолько старательного, усердного и профессионального в своей работе программиста, что он создал полный Javadoc с комментариями к своему коду прежде, чем счел задачу выполненной. Он даже написал полностью автоматизированные unit-тесты и проверил процент покрытия ими кода. Когда я вернулся в комнату по истечении 2 часов, он неистово стучал по клавиатуре, и я было решил, что у него проблемы с выполнением задания, но на самом деле он как раз добавлял HTML-форматирование в свой Javadoc. Именно таких инженеров, которые делают это интуитивно, вы и хотите видеть в своей команде.
3. Он совершенствует задание
Мы специально создаем задания с запрятанными в них мелкими изъянами, исключительно чтобы посмотреть: а) заметит ли их соискатель и б) возьмется ли их исправлять. Это могут быть некорректно использованные кавычки в строках, неправильные имена переменных или что-то в этом же духе. Соискатели, которые рассматривают в рамках задачи весь предоставленный код, —, а не только тот, который мы попросили их написать, — будут действовать так же и в работе с реальным продуктом, когда присоединятся к нашей команде.
Готовность инженера указать потенциальному работодателю на проблемы в предоставленном задании показывает, что они считают качество своей работы более важным, чем простое соглашательство с тем, что им говорят. Наймите их — и они, вероятно, будут творить чудеса с вашим продуктом, делая гораздо больше поставленной задачи и внося улучшения туда, где они нужны.
4. Он рефакторит с умом
Большинство соискателей любят добиваться того, чтобы решение заработало, после чего расслабляются и вздыхают с облегчением, удачно все завершив. Это хорошо, но редко этого достаточно, чтобы немедленно получить предложение о найме. Соискатели, которые решают проблему, а затем без передышки берутся рефакторить код, — специалисты совсем другой категории. Если им кажется, что они выбрали не тот алгоритм, они не могут игнорировать мысль, что все могло бы быть гораздо эффективнее. Если в их коде есть небольшой повтор, это сжигает их изнутри. Это соискатели, которые рефакторят, переписывают и улучшают свои решения до тех пор, пока они не станут произведениями искусства.
Впрочем, это палка о двух концах. Если соискатель просто продолжает переписывать, потому что ничто не приносит ему удовлетворения, кроме достижения мифического «совершенства», есть шанс, что это один из тех программистов, которые просто не знают, когда остановиться (как и сдать готовую задачу). Хотя, если они способны тщательно следить за временем, чтобы и решить задачу, и отрефакторить свое решение в срок, — это по-настоящему хороший признак: можно подумать о найме.
5. Все остальные признаки — в его пользу
Бывает, что нужного соискателя выдает множество нетехнических признаков. Другие члены вашей команды отводят вас в сторону со словами «Мы должны нанять эту девушку». Личность соискателя выглядит исключительно подходящей для команды. У него релевантный и свежий опыт в том, чем ему придется заниматься. Вы знаете нескольких людей, которые работали с ним и считают, что он — чудесное дополнение к команде (и сами наняли бы его снова без колебаний). Соискатель в восторге от компании и возможностей, и ему не терпится начать работу.
Если соискатель признан технически годным и все остальные признаки — в его пользу, зачем ждать? Затягивая с решением, вы можете упустить соискателя, которого подберет другой работодатель, умеющий распознавать все те же признаки быстрее, чем вы. Лучше будьте решительней и вручайте джоб оффер быстро, таким образом давая соискателю понять, как сильно компания хочет его заполучить. Это поможет начать отношения с ним с правильной для обеих сторон отправной точки.
Так что в следующий раз, когда в ваше здание войдет потрясающий соискатель, не ждите, что к вам со дня на день наведается кто-то еще получше. Вручите соискателю предложение о найме и приступайте к работе.
С уважением к программистам,
всегда ваши
Alconost Translations