Обложка статьи «Иголка в стоге сена: как найти своего идеального программиста»

Иголка в стоге сена: как найти своего идеального программиста

Компания может дорого заплатить за ошибку своего программиста. Один промах — и нарушаться многие бизнес-процессы, начиная с базы данных и заканчивая системой оплаты. О том, как обезопасить себя от возможных проблем и нанять действительно хорошего специалиста, рассказал основатель сервиса 1Blocker Салават Ханов. Его опыт пригодится не только владельцам бизнеса и эйчарам — программистам тоже может быть полезно узнать, где и что стоит усилить, чтобы повысить свою привлекательность на рынке труда.

Салават Ханов

Салават Ханов, основатель сервиса 1Blocker

Резюме: читайте между строк

Если программист пишет о проекте, в котором принимал участие — обязательно спросите, какое количество человек работало над ним, и какие задачи были у конкретно вашего кандидата. Мы не знаем, какой вклад в проект внес программист: весомый или не очень. Вполне возможно, что фичи, за которые вы его берете, реализовал другой программист. Проверить не преувеличивает ли кандидат свой вклад можно при помощи технических вопросов, или дополнительного задания.

Обратите внимание на заинтересованность программиста в различных конференциях, open source проектах. Если об этом он не написал в резюме, спросите лично. Наличие такого опыта — показатель, что кандидат активно развивается в своей профессии.

Хорошее резюме – не более одной страницы. В нем должны быть основные проекты, фичи, которые программист внедрял, и немного информации о себе. Если программист написал о многом и ни о чем, стоит задуматься — ведь нет необходимости «лить воду», когда у человека реально есть компетенции, которые не стыдно показать будущему работодателю.

На собеседовании, помимо технических вопросов, не забудьте задать и общие. Например, кем видит себя кандидат через 3-5 лет.  Таким образом вы сможете понять, пересекаются ли ваши цели с желаниями программиста. Даже если не пересекаются, возможно, вы сможете использовать его желания во благо проекта. Однажды мы искали специалиста на уровне senior developer, который через несколько лет хотел бы руководить 1-2 разработчиками. А именно: делать код ревью, обучать, направлять по коду и архитектуре проекта. Так как мы работаем с iOS, нам нужен был человек, который хотел бы и работать с iOS, и развиваться вместе с нами. Не будь одного элемента – мы бы быстро разошлись.

Также обратите внимание на причину ухода самого программиста с предыдущей работы. Если вы получаете ответ, в котором кандидат винит предыдущего руководителя, дайте ему тестовое с подвохом, подстраивая критическую ситуацию. Посмотрите, как именно программист себя поведет — скандальный разработчик вам вряд ли нужен, правда?

Образование или курсы: важно ли это?

Корочка от университета — это не то, чем должен гордиться хороший программист. Самое главное — опыт. Если к вам приходит специалист и говорит о своей дипломной работе вместо реализованных проектов, скорее всего, ему еще нужно набраться опыта. Такого человека имеет смысл брать только на джуниорскую позицию — да и то после того, как вы разберетесь в его умениях получше. Понять, что из себя представляет программист у которого мало коммерческого опыта, можно благодаря простому сайту или приложению, код которого обычно выкладывают на Github. Запросите у кандидата доступ к коду, чтобы посмотреть стиль, дизайн и подачу. Если речь идет о мобильном приложении, то желательно его выложить в App Store. Так можно понять, что разработчик уже прошел ревью Apple и понимает как работать в App Store. В качестве дипломной работы не всегда выступают сайты или приложения. Чаще речь идет об алгоритмах или оптимизации каких-то процессов. Это тоже неплохо, однако не совсем то, что нужно работодателю. Запросите у кандидата доступ к коду, чтобы посмотреть стиль, дизайн и подачу.

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

Что касается курсов, то, однозначно, повышать свои навыки необходимо всегда. Но хороший программист делает это не из-за необходимости, а из интереса. Если у человека в резюме указаны курсы, спросите — «зачем вы их посещали?» Можете узнать много интересного о мотивации кандидата!

Уровень заработной платы в любом случае зависит от навыков, которые есть у человека, а не от уровня образования и «крутости» диплома. Также значение имеет формат, в котором будет работать ваш специалист — офис это или удаленка. Есть огромное количество сильных специалистов, которые живут в маленьких городах и хотят работать удаленно. Как бы несправедливо это ни звучало, такие специалисты «стоят» дешевле столичных офисных работников — поэтому стоит напрячься, если человек просит слишком много или слишком мало по меркам других удаленщиков.

Проактивность и soft skills

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

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

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

Подводные камни: на что обратить особое внимание

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

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

А если у программиста заниженная самооценка? Это может грозить тем, что ту работу, которую можно делать две недели, кандидат выполнит за неделю — но будет молчать из стеснения и «синдрома самозванца». В таком случае ваши ресурсы будут распределяться неэффективно — хороший специалист будет недозагружен и показывать меньшую продуктивность, чем мог бы, из-за собственных комплексов.

И, наверно, главное: у программиста всегда должен быть интерес к проекту. Его можно подстегивать при помощи различных конференций, оплаты курсов, спортзала или новой техники — но если изначала «блеска в глазах» не было, то он вряд ли и появится, даже с помощью всяческих плюшек.  Но не стоит забывать про самого эффективного мотиватора – результат. Когда программист видит результат своей работы, над который он так упорно и долго трудился, он готов работать с новой порцией энтузиазма.

Хинт для программистов: если зарегистрируетесь на соревнования Huawei Honor Cup, бесплатно получите доступ к онлайн-школе для участников. Можно прокачаться по разным навыкам и выиграть призы в самом соревновании.

Перейти к регистрации