При работе над новым проектом бизнесмены часто сталкиваются со сложностями при поиске специалистов. Как определить, что человек окажется действительно ответственным и знающим разработчиком, особенно, если вы сами – не программист?
Бизнесмен Джон Рамптон, запускавший новый проект в Кремниевой долине, в течение нескольких месяцев набирал персонал. Рамптону было достаточно тяжело убедить востребованных специалистов перейти в его команду из крупных компаний, где им платили достойную зарплату. Еще сложнее было выбрать из числа соискателей тех, кто действительно станет ценным сотрудником. В результате он выделил для себя 15 качеств хорошего программиста, которыми позже поделился в своих публикациях. Возможно, вам также помогут советы по выбору программистов от Джона Рамптона.
А если вы сами – программист, попробуйте оценить себя: насколько вы соответствуете перечисленным качествам? Ведь советами Рамптона уже сейчас на Западе пользуется много HR-специалистов и бизнесменов.
1. Технические навыки
Многие работодатели составляют список требований и ориентируются в первую очередь на него. Они обращают внимание на то, что человек умеет в общем, и не акцентируют его на определенных навыках. При этом хороший программист может выучить необходимый язык всего год назад, но уже сейчас у него может быть большой опыт работы в других, возможно, также интересных для вас областях.
Чтобы узнать, насколько сильны технические навыки специалиста, ему можно задать вопрос: «Какой у вас опыт разработок на различных языках программирования?».
2. Мотивация к обучению
Технический прогресс не стоит на месте, особенно в области программирования. Соответственно, всего за несколько лет навыки специалиста могут устареть, а он перестанет быть востребованным. Очень важно, чтобы программист следил за новостями в IT-сфере и был готов обучаться новому.
Вопрос, который покажет уровень готовности к обучению, может звучать так: «Что вы предпринимаете для того, чтобы ваши знания и навыки были актуальными?».
3. Навыки отладки
Программист должен не только создать код, но и уметь проверять, а потом и поддерживать его работоспособность. При возникновении проблем в работе специалисты могут вести себя по-разному. Некоторые склонны выпускать «сырые» решения, после чего, тратят множество часов на то, чтобы вносить изменения в программу по результатам найденных в процессе работы ошибок. От этого нередко страдает проект в целом, ведь если ошибки находят пользователи, это – огромный минус к репутации. Гораздо эффективнее провести предварительную отладку и постараться выявить максимум проблем на этапе разработки.
Для того чтобы определить, насколько развит этот навык, можно спросить у специалиста на собеседовании, как именно он справляется с ошибками. Для проверки практических навыков имеет смысл предложить дополнительный тест по отладке.
4. Умение приспосабливаться к обстановке
Программисты работают в различной обстановке. Кому-то требуется полная тишина вокруг, кто-то вполне может сосредоточиться при шуме и суете. То, какая атмосфера в офисе, сильно влияет на производительность работника.
Поэтому во время собеседования очень важно уточнить, какие условия работы человек предпочитает. Это позволит избежать впоследствии недопонимания и проблем.
5. Умение решать проблемы
О программировании можно сказать, что оно сходно с решением трудного математического уравнения. Хороший специалист всегда стремится выполнить задачу, несмотря на уровень ее сложности. Программист, умеющий решать проблемы, станет незаменимым при создании нового проекта. Человек, не обладающий данным качеством, каждый раз при возникновении трудностей будет говорить о невозможности их решить.
Для того чтобы определить, насколько программисту свойственно добиваться поставленной цели, продолжите ему во время собеседования решить максимально сложную задачу, касающуюся деятельности компании. Можно даже заведомо не имеющую решения. Здесь важно увидеть не практический результат, а реакцию на вызов.
6. Хобби и интересы
Многие работодатели ищут специалистов, которые нацелены на результат и способны по несколько часов подряд решать интересную задачу, независимо от нормирования трудового дня. Чтобы найти такого программиста, можно спросить на собеседовании про его хобби.
Специалисты, увлеченные своим делом, в свободное время разрабатывают утилиты для друзей и знакомых, играют, собирают серверы. Увлечения программиста могут многое сказать о том, насколько хорошим работником он будет.
7. Стрессоустойчивость
Одно из главных качеств, которое ценят работодатели практически в любой сфере, – это стрессоустойчивость. Для программиста способность сохранять хладнокровие в стрессовых ситуациях – достаточно ценное качество. Специалист должен не только уметь справляться с проблемами, но и продолжать работать. Программисты часто сталкиваются с тем, что им поставлены конкретные сроки, а программное обеспечение не работает. Проблемы дедлайнов известный всем, кто работает в сфере разработки программных продуктов.
Для того чтобы узнать, сможет ли специалист справиться со стрессом, можно поинтересоваться: «Как вы поступите, если у вас жесткие сроки, а приложение не работает?».
8. Умение общаться
Большую часть времени программисты проводят за компьютером и общаются онлайн. Они редко встречаются с клиентами и заказчиками. Тем не менее, умение общаться является важным качеством для специалиста. Иногда может потребоваться, чтобы программист пообщался напрямую с клиентом, чтобы объяснить, как работает программное обеспечение. Специалист часто взаимодействует с коллегами и менеджерами. Все это говорит о том, что навык общения для программиста не менее важен, чем другие умения.
На собеседовании можно предложить кандидату на должность объяснить работу его любимого приложения простыми словами для обычного человека.
9. Лень
Многие работодатели считают лень не лучшей чертой специалиста. Однако, в IT-сфере это качество, напротив, считается «двигателем» новых достижений. Менеджеры говорят о том, что при поиске лучшего способа решения проблемы, необходимо найти ленивого человека, и он подскажет ответ. Ленивые программисты смогут найти способы автоматизации процессов, позволяющие сэкономить время и деньги.
Конечно, на собеседовании каждый будет стараться показать себя трудоголиком. Потому здесь помогут наводящие вопросы и психологические тесты. Самое простое: выясните, как соискатель понимает изречение «лень – двигатель прогресса».
10. Понимание бизнес-процессов и другие знания
Основная задача программиста заключается в создании ПО. Но если не учитывать тонкости бизнеса, то можно выпустить из вида общую картину. Хороший программист должен не только разрабатывать приложения, но и ориентироваться в бизнес-процессах. Это необходимо для того, чтобы специалист мог предлагать свои идеи, которые помогут получить лучший результат или прибыль компании. Узнать о наличии этого качества можно спросив о том, участвовал ли респондент в улучшении бизнеса организации.
Аналогично в случае поиска специалиста для автоматизации производства или помощи в научных изысканиях, намного проще будет работать с человеком, который имеет как минимум базовые навыки в нужной вам сфере. Проверяйте это на собеседовании.
11. Навык планирования
Хороший программист должен уметь планировать свое время и быть нацелен на результат. Специалист не должен браться за все задачи сразу. В идеале для начала он должен узнать о том, какого результата от него ждут. После этого ему требуется сделать анализ и составить план программы до того, как начать работу. Умение планировать позволяет сэкономить время и получить в кратчайшие сроки хороший результат.
На собеседовании можно спросить специалиста о том, с чего он начинает работу и как вообще происходит рабочий процесс.
12. Навык преодоления трудностей
В большинстве случаев программисты не могут решить задачу с первого раза. Трудности возникают в самом начале поиска решения, далеко не всегда первый вариант алгоритма оказывается правильным. Поэтому очень важно, чтобы программист не пугался проблем. Любые трудности он должен рассматривать как вызов и старался их преодолеть. Программисты должны обладать большим терпением, так как в процессе создания нового проекта им может понадобиться не один раз начинать все с нуля после нескольких часов кропотливой работы.
Узнать, обладает ли специалист этим навыком, можно задав вопрос: «Приходилось ли вам тратить несколько часов на изучение кода и его отладку?».
13. Навык командной работы
Даже если в штате компании всего один программист, самостоятельно он работать не сможет. Поэтому работнику необходимо наладить контакты с коллегами, клиентами, маркетологами, специалистами по продажам и другими сотрудниками. На собеседовании рекомендуется обязательно уточнить у программиста, имеется ли у него опыт командной работы.
14. Поиск новых решений
Специалист должен не только хорошо владеть языком программирования. Владение информацией о деталях работы определенной отрасли не менее важно для хорошего программиста. При разработке программного обеспечения важно учитывать специфику бизнеса, в котором оно будет использоваться. Нередко при этом приходится детально изучать особенности взаимодействия с клиентами, построения логистики, и даже особенности работы конвейеров и станков с ЧПУ на производстве. Сможет ли программист быстро вникнуть в новую сферу деятельности? Готов ли изучать информацию, не связанную непосредственно с кодингом?
Перед приемом на работу, у специалиста рекомендуется уточнить, приходилось ли ему вникать в нюансы бизнеса на прошлых местах работы, и как он это делал.
15. Соблюдение сроков
При выполнении проектов программист должен уметь укладываться в срок, назначенный менеджерами. Руководителям необходимо указывать реальное время, за которое следует разработать и отладить программное обеспечение. Но и программист должен сделать все возможное, чтобы успеть за этот срок выполнить задачу. На собеседовании узнайте у специалиста, готов ли он работать с дедлайнами, и что он предпринимает для соблюдения сроков.
Кроме того, если руководитель не очень хорошо ориентируется в программировании, то чтобы найти хорошего сотрудника, следует пригласить на собеседования помощника, разбирающегося в данном вопросе. Также очень удобно проводить отбор кандидатов на работу в два этапа: сначала – практическое тестирование (кандидаты удаленно выполняют или не выполняют практические задания от ведущего программиста), а потом – собеседование, где уже руководитель или HR-специалист будет оценить личностные данные. Этот метод очень популярен в США и Европе, и все чаще используется в нашей стране.
[customscript]techrocks_custom_after_post_html[/customscript]
[customscript]techrocks_custom_script[/customscript]