Недавно мы писали о том, с чего начать свой путь в IT. В той статье речь шла о том, что к айтишникам относятся не только программисты, но и веб-дизайнеры, SEO-специалисты, интернет-маркетологи и т. д. И все же именно те, кто пишет код, в первую очередь ассоциируются со сферой IT. Сегодня поговорим о том, какие soft skills требуются программисту.
Soft skills: что это такое, зачем нужны и почему важны
Начнем с того, что понимается под словом skills, или скилы. В переводе с английского оно означает «навыки» или «умения». Скилы делятся на две категории — hard, т. е. жесткие, и soft, т. е. гибкие, мягкие. Ко второй группе относятся общечеловеческие навыки, которые дополняют сугубо профессиональные. Именно гибкие скилы помогают эффективно решать рабочие задачи и успешно взаимодействовать с коллегами.
Soft skills необходимы не только программисту, но и представителю любой другой профессии. Такие навыки полезны не только в работе, но и в жизни вообще. Soft skills можно образно назвать «даром природы». Однако это не значит, что стоит расстраиваться из-за отсутствия того или иного умения. При желании любой навык можно развить и сделать своим союзником.
Специалисты с прокачанными soft skills считаются ценными кадрами. Такие сотрудники быстро находят общий язык с коллективом и клиентами компании, легко адаптируются к изменяющимся условиям, без проблем обучаются чему-то новому. Без soft skills даже суперпрофессионал с большим опытом не сможет двигаться вперед и хорошо зарабатывать. Многие HR-менеджеры говорят о своей нацеленности на поиск кандидатов с развитыми гибкими навыками. Если специалист по кадрам сомневается в soft skills претендента на ту или иную должность, велика вероятность, что человек получит отказ.
Важность мягких скилов очевидна. Перейдем к тому, какие soft skills нужны программисту.
*Руководитель рассказывает программистам, что они должны знать к концу месяца
Навык коммуникации
Общение с людьми — это настоящее искусство. От владения им зависит многое, в том числе успех в профессиональной деятельности. Даже среди самых интровертированных программистов сложно найти «волков-одиночек», которые самостоятельно закрывают все задачи. Большинство IT-специалистов все же работает в команде. Важно, чтобы все ее участники говорили на одном языке и не только слышали, но и понимали друг друга. Программист взаимодействует не только с теми, кто отлично разбирается во фреймворках и библиотеках, но и с людьми, которые не так подкованы в терминологии. Особенно полезными будут развитые навыки письменного общения.
Если в коллективе не налажена коммуникация, перспективы такой команды сложно назвать блестящими. Программисты не исключение. История знает много команд, участники которых не умели вести конструктивный диалог и в результате тратили время впустую. Способность доносить свои мысли и слышать собеседника — must have для любого программиста. Если у кого-то из сотрудников возникла хорошая идея, она должна дойти до тимлида, и наоборот.
Обучаемость
Область программирования постоянно развивается. Чтобы не только оставаться в обойме, но и двигаться вперед, разработчику нужно все время узнавать что-то новое. Усваивать информацию помогает скил обучаемости. При этом программисту важно не только получать новые знания, но и превращать их в hard skills, т. е. не просто загружать данные в мозг, а использовать их на практике.
*Применил hard skill на практике
Ответственность
Способность осознавать последствия своих решений и действий отличает хорошего программиста от посредственного. Ответственность — очень важный навык как для тимлида, так и для рядового игрока команды. Позиция «Я здесь ни при чем, просто делаю то, что мне говорят» бесперспективна.
Умение признавать ошибки
Этот навык идет рука об руку с ответственностью. Ошибаться — это нормально. Признавать свои «косяки» — тоже. Важно то, как программист справляется со своими ошибками. Если он умеет их признавать и прилагает все усилия, чтобы изменить ситуацию к лучшему, с этим специалистом можно иметь дело.
Тайм-менеджмент
В любой деятельности важно превращать время в своего союзника. Умение ранжировать задачи по приоритету и планировать свою работу полезно для каждого программиста. Все просто: чем эффективнее специалист управляет своим временем, тем продуктивнее его действия.
Креативность
Кто сказал, что программирование — сплошная рутина, в которой нет места для творчества? Разработчики, которые умеют творчески мыслить, ценятся намного больше тех, кто придерживается строго формального подхода. Креативность позволяет смотреть на задачи с необычных ракурсов и придумывать неожиданные решения.
*Когда сделал не костыль, а нестандартное решение задачи
Критическое мышление
В работе программиста важна способность мыслить рационально и структурированно. Умение оценивать и анализировать информацию, четко видеть причинно-следственные связи позволяет принимать взвешенные решения. Это напрямую влияет на успешность реализации проектов.
Эмпатия
Умение чувствовать эмоции других людей и сопереживать окружающим — один из ключевых навыков программиста. Эмпатия рождает доверие между участниками команды. Когда люди чувствуют друг друга, им намного проще находить общий язык — как в личных моментах, так и в рабочих вопросах.
Гибкость
Область IT очень динамична, и командам часто приходится «на лету» адаптироваться к изменениям. Развитый скил гибкости помогает минимизировать дискомфорт и сэкономить время, когда в сфере случается очередной переворот.
Умение вовлекаться
Еще один скил, без которого в программировании (да и в любом другом деле) нечего ловить. Никто не требует от разработчика горячей безусловной любви к кодам, алгоритмам, конфигурациям и др. Достаточно искренней увлеченности, которая стимулирует к движению вперед и поиску новых решений.
Как программисту оценить свои soft skills
Чтобы понять, какие гибкие скилы прокачаны, а какие нужно развивать, можно воспользоваться:
- опросником, который включает 55 пунктов;
- тестом из 165 вопросов;
- подборкой из более чем 2 тыс. профессиональных психодиагностических методик.
Еще один способ оценки soft skills — получение обратной связи от окружающих: родных, друзей и, конечно, коллег. Иногда со стороны действительно виднее! Программист может спросить, какие его гибкие навыки, с точки зрения окружающих, наиболее развиты. Высока вероятность, что обратная связь удивит разработчика. Кроме того, сбор фидбэка поможет подтянуть скил общения.
*Когда на собеседовании спрашивают, что ты НЕ умеешь
Как программисту развивать soft skills
На практике! Узнать теорию — это полдела, важно уметь ее применять.
Для примера возьмем креативность. На первый взгляд, способность творчески мыслить дается природой. На самом деле, креативность можно развить, в том числе с помощью самых простых приемов.
Например, стремление к творчеству «подстегивает» легкий фоновый шум — около 70 дБ. Если программист привык работать из дома, возможно, ему стоит взять ноутбук, прогуляться до кофейни и посидеть там пару часов. Есть вероятность, что именно там неожиданно придет творческая мысль.
Еще один прием — выполнять рутинные операции непреобладающей рукой. Это помогает активизировать работу обоих полушарий мозга. Если программист-правша возьмет мышку в левую руку, ему будет неудобно. Однако благодаря этому дискомфорту можно высвободить творческие ресурсы.
Другой пример — умение вовлекаться. Даже если проект изначально кажется неинтересным, это можно исправить. Чем больше сил, времени и других ресурсов человек вкладывает во что-либо или кого-либо, тем ценнее становится этот объект/субъект. С работой то же самое. Чтобы вовлечься в проект, программист может активно проявлять инициативу и брать на себя дополнительную ответственность.
А что говорят сами программисты?
Команда Rubix — счастливчики. Программисты, которые работают в нашей компании, не только разбираются в своем деле, но и открыты к общению. Каждому из них был задан вопрос: «Какие soft skills ты считаешь самыми важными для себя?».
Никита в первую очередь отметил навык работы в команде. Кроме того, он высоко ценит способность адекватно воспринимать конструктивную критику: «Когда тебе указывают на ошибку, важно воспринимать это не как упрек, а как совет по улучшению качества кода». Никита также упомянул, что для него важны терпение, усидчивость, самостоятельность и умение работать с информацией — находить нужные данные и выделять суть. Наконец, наш программист отметил главнейший навык — способность объяснять технические моменты так, чтобы они были понятны для людей, которые не разбираются в конкретной теме.
Иван тоже подчеркнул важность навыка коммуникации. Помимо этого, Ваня отметил, что для программиста полезно умение читать требования и оценивать сроки работы.
Надежда не обошла вниманием важность тайм-менеджмента. В список обязательных для программиста скилов Надя включила умение делегировать: «Если у меня не получается что-то сделать или я вижу, что мне не хватает определенных навыков, то я не сижу до последнего, а передаю задачу более компетентному в этом вопросе специалисту». Кроме того, Надежда упомянула, что для нее важна креативность и стремление каждый раз находить более эффективное решение.
Коллеги-программисты, которые пожелали сохранить конфиденциальность, отметили, что для них ключевую роль играет уже не раз упомянутая коммуникация и тайм-менеджмент. Кроме того, ребята отметили умение работать в команде, быть ответственным и доброжелательным, а также не отступать от своей цели.
*Узнал все о soft skills и не осталось никаких вопросов
Заключение
Иногда кажется, что программисты прилетели к нам с другой планеты: не может обычный человек столько всего знать и разбираться в таких сложных вещах! Это впечатление усиливается, когда ребята начинают с легкостью оперировать непонятными терминами. Впрочем, если программист владеет soft skills, он без проблем найдет общий язык с любым человеком и сумеет рассказать о мудреных вещах простыми словами.