Отобрать из сотен заурядных специалистов одного талантливого, опытного и подходящего по всем параметрам профессионала бывает непросто. Особенно если размер заработной платы должен вписываться в определенные рамки бюджета.
Не владея терминологией и не обладая углубленными знаниями в области программирования, руководитель может просто не знать, как нанять программиста, который является мастером своего дела. Сначала он блестяще презентует себя во время собеседования, но в конечном счете оказывается некомпетентным во множестве вопросов. Итак, как правильно оценивать программиста при приеме на работу?
Создание call-центра и организация его работы
Обратитесь за помощью
Любой сколько-нибудь опытный программист с первой фразы понимает, что имеет дело или с коллегой по профессии, или с профаном в данной сфере. Потому к беседе с будущим сотрудником следует тщательно подготовиться. Обратитесь к друзьям и знакомым, которые причастны к этой специальности. Или найдите подходящего рекрутера для консультации с ним. Он должен объяснить весь процесс найма и круг служебных обязанностей будущего сотрудника. Причем должностные инструкции будут различаться для программистов разных областей.
Так, к программистам относятся системные администраторы, прикладные и веб-программисты. И у них разная специализация.
Первые умеют создавать драйверы, писать целые операционные системы и сложные программы (с легкостью создадут, к примеру, драйверы для PCI платы под Windows или программу для микроконтроллера в связке с USB).
Вторые осуществляют разработку, диагностику и отладку программ, нужных для решения конкретных задач. Иногда они пишут и компьютерные игры. Им знакомы понятия «язык программирования», «прикладные решения для 1С», «среда разработки» и пр.
Веб-программисты — специфические специалисты, занимающиеся разработкой сайтов и онлайн-приложений. Они умеют писать дорвеи и дейтинги на PHP, ориентируются в JavaScript, HTML, CSS и др.
Поэтому важно понимать, для выполнения каких задач нанимается человек.
Задавайте правильные вопросы
Дипломы известных вузов с углубленными программами, как МГУ, МГТУ, МФТИ, МИФИ, СПбГУ, говорят о хорошей подготовке кандидата. Портфолио, включающее список крупных компаний, как Microsoft, Mail, Yandex, тоже может произвести впечатление. Однако записи в резюме могут оказаться не более чем неделями стажировки или попытками трудоустроиться, а из парадного списка трудно понять, каков был вклад кандидата в эту компанию. Поэтому стоит придавать большее значение его поведению и ответам на собеседовании и сделать правильные выводы по результатам интервью.
Следует задавать как простые вопросы, раскрывающие навыки кандидата в программировании, так и сложные — про внутреннее устройство системы, с которой сотруднику придется работать. К примеру, спросите его: «Что происходит в браузере в ту секунду, когда кто-то решил посетить наш сайт?». Поскольку вы заранее подготовились, вы будете знать, что программист должен рассказывать о: TCP, DNS, процессе кэширования, серверах приложений, роутинге запросов, фреймворках, подгрузках страниц, баз данных и пр. Усложните ему задачу: «А теперь не один, а сразу тысяча пользователей перешла из письма рассылки на сайт, сервер не справляется» и т. д. Пусть покажет свои знания.
Если кандидат понятно отвечает на поставленные вопросы, соответствуя вашим ожиданиям, поставьте задачу посложнее. К примеру: «Как бы вы справились с такой-то проблемой?». Можно даже привести реальные ситуации, с которыми столкнулась ваша компания в прошлом, чтобы узнать, как он исправит ошибки. Ответ элементарно должен быть похож на решения, которые вы использовали. А может, он предложит нечто лучшее. Вам дали емкий и краткий верный ответ — это еще один хороший показатель.
Дополнительные вопросы для собеседования: «Какой круг обязанностей вы бы хотели? Что вы сделаете в первые две недели после трудоустройства?». Возможно, в ответ прозвучат пожелания о доукомплектовании рабочего места, закупке новейшего программного обеспечения, прохождении дополнительного обучения. Может быть, программист сначала захочет изучить рабочее пространство изнутри, понять принципы и функционал. Оценивайте ответы на предмет того, насколько амбициозен и целеустремлен ваш кандидат. Безынициативные в штате точно не нужны.
«Если вам поручат выполнить задание, которое вы никогда не делали раньше, как вы это реализуете?» — задайте этот вопрос, чтобы увидеть, насколько кандидат ответственен и исполнителен. Наблюдайте, как он будет искать выход из незнакомой ситуации, какие решения озвучит, готов ли он к сложным вызовам.
Зарплатные рейтинги специалистов IT-направлений в России (Санкт-Петербург, Москва и регионы), август 2015 г. Источник: Pcnews.ru.
Нематериальная мотивация сотрудников
Портфолио и образование программиста
Если перед вами не новичок, изучите выполненные проекты и предыдущие места работы кандидата. Часто в резюме программиста можно увидеть огромный список языков, платформ и технических навыков, но количество реально выполненных проектов можно посчитать по пальцам.
В веб- или IT-бизнесе (а особенно, в работе над стартапом) к первостепенным задачам программиста относятся — понимание целей разработчика. И этой должности достойны те люди, которые всегда доводят дело до конца, сдают качественные законченные проекты, ориентируются на бизнес-показатели и добиваются образцовых результатов.
К сожалению, на сегодня чаще можно встретить разработчиков, которые придают значение лишь своим навыкам владения языками программирования и инструментами, а не результативности собственной работы. Последние регулярно меняют работу (каждые 3-6 месяцев), хватаются за любой проект. И самое главное — именно у обладателей внушительного в техническом плане портфолио на деле выявляются поверхностные знания и полная безынициативность.
Наличие образования может играть не менее важную роль. К примеру, в создании 3D-графики для видеоигр невозможно обойтись без математики и геометрии университетского уровня. В случае рядовых разработчиков, занимающихся веб-программированием или относящихся к программистам в 1С, а также прикладной разработкой для стартапов и прочим, образование второстепенно. Кандидат может быть школьным учителем истории, но, пройдя 3-4 курса повышения квалификации по программированию, виртуозно овладеть нужными вам навыками и набраться опыта. Примечательно, но большинство известных во всем мире программистов и создателей самых используемых языков программирования вовсе не имеют профильного образования.
Известный «недоучка» Дэвид Карп даже не имеет школьного диплома — он оставил образовательное учреждение в 15 лет, чтобы изобрести свой Tumblr и заключить контракт с Yahoo на $1 млрд. Университет в Гарварде потерял гениального Марка Цукерберга, который решил на втором курсе посвятить себя собственному стартапу — Facebook. Впрочем, до него так же поступил знаменитый Билл Гейтс. А Питер Тиль, один из создателей PayPal, обещает заплатить $100 000 тому гению, который выберет вместо просиживания штанов за партой колледжа развитие собственной идеи и реализует свои амбиции.
Как бы то ни было, миллиардеры-программисты являются не более чем исключением из правил. Возможно, ваш кандидат и может оказаться таким, но следует оценивать картину в общем. Нередко опыт и недюжинные усилия, а также ряд удачно реализованных проектов дают больше, чем бумага с печатью об окончании «вышки».
Адаптация новых сотрудников: полезные и вредные советы
Признаки хорошего программиста
Как найти хорошего программиста для создания сайта? Или для работы с 1С? И даже если вы просто ищете системного администратора для обслуживания серверов компании, воспользуйтесь универсальной подборкой признаков, которые характеризуют соискателя как подходящего кандидата на должность.
Хорошие технические навыки. Знание нескольких языков программирования, а также владение смежными областями выделяет опытного работника из числа других кандидатов.
Готовность учиться. Технологии не стоят на месте, и умения, которыми программист обладает сегодня, уже через 2-3 года безнадежно устареют. Важно выбрать специалиста, интересующегося последними тенденциями, готового учиться и повышать свою квалификацию.
Навыки устранения ошибок. Хороший программист всегда читает сообщения об ошибках. Ведь это первый и единственный сигнал о возникшей проблеме. Они докапываются до сути неполадки. И это не только их должностные обязанности, а естественная потребность решить загадку и узнать, что пошло не так. Хорошие программисты несут ответственность за все, что относится к сфере их компетенции.
Лень. Ларри Уолл, известный американский программист (кстати, лингвист по образованию), создатель популярного языка Perl, считает лень, нетерпеливость и высокомерие лучшими качествами хорошего программиста.
Может, ленивый сотрудник в любой другой области недолго продержится на своем рабочем месте, но в IT стремление облегчить себе жизнь становится хорошим стимулом для поиска универсальных технологических инструментов. Только ленивый человек сможет найти самый быстрый и эффективный способ решить поставленную задачу, автоматизировав процессы и сэкономив время и деньги.
Трудоголизм. Пожалуй, страсть к работе является наиболее важным признаком хорошего программиста. Если специалист любит свое дело, оно является одновременно работой, хобби и даже его любовью — он тот, кто вам нужен. Великие программисты жить не могут без кодинга.
Если другие сотрудники предпочитают не перерабатывать положенных 8 часов в день, то настоящий программист в принципе не расстается с ноутбуком. Ему интересен любой код, любой скипт, любая утилита — в этом он черпает свое вдохновение. Ведь он относится к своей профессии не только как к способу заработка, но и как к процессу улучшить жизнь в принципе.
Рейтинг профессиональных навыков программистов и уровень зарплат, январь 2015 г. Источник: Habrahabr.ru
Психология в подборе персонала: кому и как ее использовать?
Подводя черту
Как найти хорошего программиста? Смотреть, спрашивать, слушать, наблюдать, записывать и делать выводы. Ответы на вопросы во время собеседования, подробное анкетирование, решение тестовых заданий, адекватность поведения и качественное портфолио — все это позволит отделить зерна от плевел, или выбрать из сотни посредственностей (и шарлатанов) настоящего гения программирования.