Полина Кабирова, коммерческий автор и переводчик, адаптировала для Нетологии статью команды блога Codementor о том, что важно спросить у веб-разработчика перед тем, как его нанять.
Наём новых сотрудников может оказаться настоящим кошмаром. Иногда, чтобы найти подходящего кандидата, приходится пройти долгий и трудный путь. Если вы ищете веб-разработчика, техническая сторона этой профессии значительно усложняет процесс поиска.
Программа обучения: «Профессия веб-разработчик»
Подготовьтесь заранее
Есть такая поговорка: кто не планирует свою победу, тот планирует чужую. И она будет к месту, если вы ищете разработчика, особенно на удалёнку.
Вот главные советы.
Определите требования
Опытные веб-разработчики всегда очень заняты. Нужно определиться с вашими ожиданиями и объёмом работы кандидата. Чётко сформулируйте должностную инструкцию и особенности работы в компании. Соискатель должен ясно понимать рабочие обязанности и предлагаемые условия труда.
Выделите оптимальный бюджет
Помните, вы получите ровно столько, сколько заплатили.
Обязанности и уровень самоотдачи разработчика зависят от зарплаты, которую вы предлагаете. По статистике, ведущий разработчик в США в среднем получает 85 000 $ в год. Для удалённых сотрудников зарплаты разнятся от 60 $ до 120 $ в час и выше.
Сумма зависит от местоположения и требований к специалисту. Проанализируйте зарплаты перед тем, как определить окончательную цифру.
В России на первое полугодие 2018 года средняя зарплата ИТ-специалистов составляет около 100 тыс. руб. в месяц. При этом диапазон зарплат достаточно большой — от 14 до 350 тыс. рублей.
В целом зарплата по миру в сфере разработки может достигать 89 000 $ в год.
Читать ещё: «Где лучше всего жить и работать разработчику»
Установите реалистичные дедлайны
Разработчику может потребоваться время, прежде чем приступить к работе в вашей компании. Учитывайте это при отборе кандидатов, тем более вам тоже нужно время для поиска подходящего человека.
На срочный проект можно рассмотреть фрилансера. Он начнёт работу, а у вас появится время для поиска кандидата в штат. Убедитесь, что у выбранного фрилансера или подрядчика достаточно времени на ваш проект.
Подготовьтесь к собеседованию
У хорошего разработчика во время и после собеседования появятся вопросы. Будьте готовы объяснять, что именно вы ищете в кандидате и какую работу ему предлагаете.
Вопросы для собеседования с разработчиком
Процесс поиска разработчика зависит от его роли в команде и особенностей компании в целом. Вот несколько вещей, на которые стоит обратить внимание при поиске.
Первое собеседование — по телефону или видеозвонку.
Оценка компетентности специалиста или тестирование на профпригодность, если это одобряется культурой вашей компании.
Тестовое задание. Практические вопросы и задачи, связанные с разработкой, которые помогут определить технические знания кандидата.
Итоговое собеседование. Очное интервью. Если личное присутствие на собеседовании невозможно, проведите видеозвонок.
Основные вопросы для собеседования с разработчиком и ответы, которые следует от него ждать. Не забывайте делать заметки во время собеседования — это поможет точнее оценить кандидатов.
Вопросы об опыте
1. Расскажите о проекте, которым по-настоящему гордитесь. Что вы сделали для его успешной реализации?
Начните собеседование аккуратно, чтобы уменьшить волнение кандидата. Ответ на этот вопрос даст представление об амбициях специалиста, покажет его взгляд на успех и рабочий процесс. Обратите внимание, упомянул ли разработчик других членов команды или сосредоточился на своих стараниях.
2. Расскажите о проекте, который вас разочаровал. Что бы вы сейчас изменили при работе над ним?
Разработчик должен постоянно анализировать свою работу. Вы не захотите нанимать человека, который всё время повторяет ошибки.
3. Что в программировании для вас самое сложное?
Другими словами, какие слабые стороны видит разработчик в своих технических навыках.
4. Как проводите тестирование? И что вообще о нем думаете?
Хороший код — это минимум багов в работе приложения и мало ошибок в коде. Хороший разработчик уделяет много внимания тестированию качества. Так можно сократить количество бессонных ночей в поисках ошибок на ранних этапах работы.
5. Как следите за последними тенденциями в веб-разработке?
Другими словами, прикладывает ли кандидат усилия, чтобы оставаться востребованным специалистом. Например, спросите, какие технические издания он читает, какими авторами и личностями ИТ-сообщества восхищается и почему.
Сфера веб-разработки постоянно меняется, поэтому для специалиста важно интересоваться последними тенденциями и формировать своё мнение о них.
6. Какую среду разработки предпочитаете?
Не важно, где работает кандидат — вам необходимо найти человека, который может адаптироваться под разные технологии и делиться своим мнением. Ответ на вопрос также покажет его опыт работы с разными фреймворками, системами контроля версий, юнит-тестированием и так далее.
Вопросы о коммуникативных и управленческих навыках
7. Расскажите, какие качества помогают вам в работе.
Возможно, вы ищете человека, который быстро решает проблемы, отлично ведёт переговоры или любит учиться. Попросите кандидата привести примеры, как он применяет эти навыки.
В зависимости от вакансии, одни навыки будут приоритетнее других. Например, тайм-менеджмент и коммуникативные навыки будут более важны для удалённого сотрудника, чем для штатного разработчика.
8. Расскажите о проблеме, которую вы решили вне программирования.
Проблема может быть какой угодно. Например, кандидат починил кофемашину или помог коллеге отремонтировать велосипед. Неважно, что именно он сделал. Главное — вы увидите его способность решать проблемы и взаимодействовать с людьми.
9. Как бы описали вас другие разработчики / менеджеры проектов, с которыми вы работали?
Это отличный способ понять, как кандидат оценивает себя и свои навыки, какую роль играет в команде и как проявлял себя на прошлых должностях.
10. Представьте, что не можете решить проблему, связанную с программированием. Что сделаете, чтобы найти решение?
Спросит ли он коллег, зайдёт на StackOverflow или другие ресурсы? Здесь нет правильных и неправильных ответов. Важно понять, как кандидат преодолевает рабочие трудности.
11. Что вы думаете о парном программировании? Был ли у вас такой опыт?
Такой метод программирования не всегда подходит для повседневной разработки, но будет интересно узнать, готов ли кандидат сесть рядом с коллегой и разбираться в его коде.
12. Работали ли вы когда-нибудь напрямую с заказчиком или как-то взаимодействовали с ним? Если нет, хотели бы попробовать?
Ответ на этот вопрос даст представление, как кандидат реагирует на мнения других людей о его работе. Если вы ищете человека для разработки приложения или способного в будущем расти внутри компании, он неизбежно будет сталкиваться с критикой пользователей и коллег.
Вопросы для проверки технических навыков разработчика
13. Опишите, пожалуйста, процесс создания веб-страницы или приложения.
Это отличный способ оценить, как кандидат справляется с базовыми задачами. Он используют фрагменты кода для быстрого создания базовой HTML-страницы, добавляет jQuery и начинает программировать или использует вспомогательные инструменты для разработки, типа Bower или Yeoman?
14. Какие инструменты используете для поиска багов?
Ответ на этот вопрос будет зависеть от среды разработки, которую использует кандидат. Разные языки программирования используют разные профилировщики, а некоторые фреймворки имеют встроенные инструменты для устранения багов. Важно узнать не инструмент, а подход к решению проблемы.
15. Что знаете о CORS?
CORS (Cross-Origin Resource Sharing, с англ. — «совместное использование ресурсов между разными источниками») является основным элементом HTML5, который должен быть знаком большинству фронтенд-разработчиков. Технология позволяет запрашивать доступ к различным ресурсам другого домена (jQuery, библиотекам шрифтов).
16. Вы можете объяснить назначение каждого типа HTTP-запроса при соблюдении требований RESTful?
Знает ли ваш кандидат разницу между запросом GET и POST? Не забыл ли он упомянуть запросы PATCH и CONNECT? Это серьёзный вопрос для оценки базового понимания HTML.
17. У вас есть пять разных таблиц стилей, как лучше всего интегрировать их в сайт?
Этот вопрос проверяет понимание CSS. Объединит ли кандидат стили в один CSS-файл или объединит только стили для конкретного приложения? И как он использует библиотеки стилей, например, Bootstrap?
18. Как вы организуете JavaScript-код?
Ответ на этот вопрос покажет, как кандидат систематизирует свой код. Он разделяет JavaScript и HTML? JS разбит на логические блоки и хранится в отдельных файлах? Он использует скрипт для объединения этих файлов в один пакет? А пространство имён в JavaScript, чтобы не захламлять глобальное пространство имён?
19. Как вы учитываете SEO, производительность, безопасность и UX при создании приложения?
Это очень важный вопрос. Способность понимать и сочетать эти факторы в работе является ключевым навыком для любого веб-разработчика. Из ответа также будет понятно, чему кандидат отдаёт приоритет при программировании. Например, если вы — крупная финансовая компания, безопасность для вас будет важнее SEO. Если вы — интернет-издание, на первом месте производительность сайта и SEO.
Ваше собеседование не ограничивается перечисленными вопросами.
Узнавайте больше о техническом опыте кандидата, стеке технологий, который встретится ему на новой работе. Если вы сами не разработчик, лучше попросить опытного специалиста провести техническую часть собеседования.
Примеры вопросов для технической части собеседования и ответы специалистов:
JavaScript, React.js, AngularJS;
Ruby on Rails, Python, PHP;
Java, Android, iOS.
После собеседования
Из-за нехватки специалистов веб-разработчики очень востребованы. Если вы ищите разработчика, действуйте быстро: оцените всех кандидатов и сразу же свяжитесь с теми, кто вам подходит. Хороший кандидат быстро найдёт работу.
Нет единой правильной схемы для поиска разработчика — важны детали. Чтобы найти идеальный вариант, ясно определите собственные ожидания и требования для разработчика. На Github есть целый список вопросов для интервью.