Карьера
George Babayan
7789

Как развить soft skills, если ты программист

Как стать востребованным программистом и получать зарплату выше средней по рынку? Вместе с основателем и CEO школы разработчиков Elbrus Bootcamp Георгием Бабаяном разбираемся, какие социальные навыки отличают хорошего программиста и стимулируют карьерный рост.

В закладки
Герои «Кремниевой долины» рассматривают перспективу развить мягкие навыки Источник

Время талантливых интровертов в программировании прошло. Вдумайтесь: все крутые современные продукты сделаны сильными командами. Именно поэтому развитые социальные навыки становятся конкурентным преимуществом при найме на работу, определяют, кто пойдёт на повышение и возглавит отдел, и открывают двери в проекты мечты.

Программистам нелегко: пока другие дети оттачивали переговорные навыки и эмоциональный интеллект в дворовых играх и школьных потасовках, многие из нас с головой сидели в компьютерах и книжках.

Культурные стереотипы только поддерживают образ программиста как асоциального невыспавшегося одиночки, который сутками торчит за клавиатурой. Но не спешите расстраиваться: пресловутые soft skills — мышца, которую можно прокачать. Опыт буткемпа показывает, что направленная работа над социальными навыками даёт результат уже за два-три месяца.

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

Работа в команде

Повторюсь: все известные нам приложения и сервисы разработаны командами, которые состоят из десятков, сотен или даже тысяч специалистов. Профессионал, который не умеет работать в коллективе, быстро столкнётся с невидимым потолком в карьере.

Уже сейчас при приёме на работу хантеры уделяют не меньше внимания способности кандидата адекватно взаимодействовать с коллегами, чем его навыками программиста (которые можно и подтянуть в процессе работы).

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

Как прокачать

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

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

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

Дисциплина и организованность

Организованность и дисциплина у многих ассоциируются с муштрой и рутиной, но на деле показывают ваше уважение ко времени коллег и заказчиков и делают предсказуемой работу над проектом. Мы стараемся донести до студентов простую мысль: если ты ставишь свои интересы выше интересов группы, от этого страдают все (и ты в том числе).

Чем серьёзней задача, над которой вы работаете, тем дороже обойдётся привычка опаздывать и факапить дедлайны. Избавиться от неё, к сожалению, не так-то просто, особенно если ты вырос в России, где к своему и чужому времени до сих пор относятся довольно легкомысленно.

Помню, каким откровением стала для меня реакция американского друга в ответ на сообщение об опоздании на десять минут: «Прости, Джордж, — сказал он. — Но мне придётся отменить встречу: не могу позволить себе сдвиг в расписании, потому что от него пострадают другие дела».

Особенно дорого могут обойтись пропущенные дедлайны фрилансерам, но и штатные сотрудники, привыкшие работать расслабленно, могут нарваться на штрафы и увольнение.

Как прокачать

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

Чтобы продемонстрировать взаимосвязь между действиями конкретного человека и эффектом на команду, мы делим людей на группы ответственности: каждый участник группы обязан утром написать в общий чат, где он и будет ли вовремя.

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

Навыки коммуникации

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

Хороший разработчик должен продуктивно взаимодействовать с другими членами команды: стейкхолдерами, тимлидами, дизайнерами и другими разработчиками. Продуктивное взаимодействие получается, когда человек хорошо излагает свою мысль: чётко формулирует проблему и показывает, как можно её решить.

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

Как прокачать

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

Умение выступать и строить рассказ понятно приходит с опытом выступлений. На защите проектов мы просим ребят представить работу в виде связной истории и задаём наводящие вопросы:

  • В чём была проблема?
  • Как вы её решили?
  • Что было самым сложным?
  • Чем получившееся решение отличается от других?

В итоге получается развёрнутый рассказ: это приложение решает такую-то проблему такой-то аудитории, оно потрясающее, потому что умеет то и это, а ещё никто не мог использовать вот эту технологию, а мы смогли, потому что сделали A и B. Да, в процессе обнаружилось ещё и C, но с этим мы справились вот так.

Чтобы развить умение слышать, тренируйтесь переспрашивать и резюмировать услышанное вслух. Это здорово ускоряет и упрощает работу над проектом, даже если поначалу кажется, что вопросы выставляют вас дураком.

Эмпатия и эмоциональный интеллект

Эмпатия — важный рабочий инструмент программиста. Это умение поставить себя на место другого: коллеги, который будет работать с вашим кодом, пользователя, который зайдёт на сайт. Развитая «эмпатия программиста» помогает писать чистый и рациональный код без экзотических переменных или методов, которые вызовут затруднения у других разработчиков.

Часто среди программистов встречаются «собственники кода»: они ревностно относятся к написанным строчкам и отказываются принимать критику и отвечать за проект целиком. «Мой код хороший, у меня всё работает, ничего не знаю». Так не работает: код — это командная работа, поэтому и отвечать придётся за проект целиком.

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

Как прокачать

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

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

Лекция о том, почему программисты не любят людей

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

Эмоциональный интеллект в повседневном общении, к счастью, тоже поддаётся прокачке: недавно учёным удалось обучить подростков эмпатии и укрепить связи между ответственными за неё нейронами за две недели с помощью видеоигры.

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

Решение задач

В английском для этого навыка есть специальный термин “problem solving”, и поверьте, он дорого ценится эйчарами. Умение решать проблемы делает из рядового сотрудника руководителя и незаменимого члена команды.

Как прокачать

Учитесь правильно понимать задачу: убедитесь, что понимаете, что именно ждёт от вас начальник или клиент. Сформулируйте задачу своими словами и начинайте работу, пока не проверите, что заказчик согласен с вашим видением.

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

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

Материал опубликован пользователем.
Нажмите кнопку «Написать», чтобы поделиться мнением или рассказать о своём проекте.

Написать
{ "author_name": "George Babayan", "author_type": "self", "tags": [], "comments": 17, "likes": 15, "favorites": 156, "is_advertisement": false, "subsite_label": "hr", "id": 87992, "is_wide": false, "is_ugc": true, "date": "Mon, 14 Oct 2019 19:22:23 +0300", "is_special": false }
Объявление на vc.ru
Конкурс плагинов на Miro API с призовым фондом $21 000
18 ноября Онлайн Бесплатно
0
{ "id": 87992, "author_id": 221243, "diff_limit": 1000, "urls": {"diff":"\/comments\/87992\/get","add":"\/comments\/87992\/add","edit":"\/comments\/edit","remove":"\/admin\/comments\/remove","pin":"\/admin\/comments\/pin","get4edit":"\/comments\/get4edit","complain":"\/comments\/complain","load_more":"\/comments\/loading\/87992"}, "attach_limit": 2, "max_comment_text_length": 5000, "subsite_id": 199121, "last_count_and_date": null }
17 комментариев
Популярные
По порядку
Написать комментарий...
17

"Время талантливых интровертов в программировании прошло" - это аксиома или догадка? Можно поподробнее, на чем основывается данное утверждение?

"Вдумайтесь: все крутые современные продукты сделаны сильными командами" - RLY? Наверное сильными эти команды делают весельчаки :) Кстати, можно примеры крутых продуктов? 

"Именно поэтому развитые социальные навыки становятся конкурентным преимуществом при найме на работу" - ребят,  возможно у вас очень высокий конкурс на место, и к вам идут работать супермены, один лучше другого :) Или навыки ваших кандидатов не требуют глубокого многолетнего опыта и приобретаются в первые пол года год.

"Хороший разработчик должен продуктивно взаимодействовать с другими членами команды" - хороший разработчик с полпинка понимает других, так как он  в "тебе", а вот плохой разработчик или девочка ПМ, может не понимать сленга и упущений в речи. За примером ходит не надо, послушайте коментаторов на соревнования в Доте - вы ничего не поймете, если не в теме.

Статья напоминает реферат первокурсника первого семестра, который ещё не познал навыки утверждения и приведение доказательств своим утверждениям.

Ответить
11

> Пишите код так, чтобы его можно было понять без вашей подсказки. 

и при чем здесь soft skills?

Ответить
7

Выборка по моим знакомым-программистам: развивайте soft skills и упрётесь в потолок зарплаты в 250-300К. Развивайте технические навыки - и потолок уйдёт. 

Ответить
2

Потолка нет только в одном случае - когда на тебя работают другие.

Ответить
0

неужели CTO янлекса получает 250К? а веь это чисто менеджерская должность

Ответить
5

СТО Яндекса - не программист. Это другая работа.
По менеждерской ветке конечно можно развиваться. Просто в статье вопрос "как стать востребованным программистом".

Ответить
3

Элементарно, Ватсон. Надо кидать понты так, чтобы это понравилось прямым руководителям - лиду и диру. Ну и работу как-нибудь делать, чтобы не придраться.

Ответить
0

он пишет про программистов, а не про CTO и менеджеров

Ответить
1

Где записаться на курсы эльфов 80ого уровня?

Ответить
2

Очевидно, у Леголаса.

Ответить
2

Вы ответили на мой комментарий, но я совсем не понимаю, что вы имели в виду.

Ответить
1

Согласен что софт скилы необходимы для программистов, будучи тимлидером ощущаю их недостаток у себя. Коллеги схлестнулись в ревью по поводу оформления кода - ревью затянулось на неделю с лишним, надо решать. Общим голосованием решили отключить чеки прода, потому что не нравится подход - надо донести необходимость чеков. Процесс деплоймента становится слишком запутаным, надо донести необходимость в release management tools. Можно сказать - это не работа девелопера, это менеджмент, но я так же как и все остальные пишу код, это так же значит что если убрать одного человека из проекта, то сроки начнут срываться, прод начнёт тихо падать, релизы станут нестабильными, потому что у людей нет софт скилов чтобы договориться между собой.

Ответить
0

Когда из тебя обещают сделать разработчика за 10 недель - конечно нужны soft skills 80 lvl чтоб получить хоть какую-то работу.

Ответить
0

Софтскилы безусловно важны - в первую очередь, чтобы не перегореть и не бросить все на фиг от напрягай и усталости! Есть отличный онлайн курс "Эксперт Эмоций", реально начинаешь чувствовать и понимать что к чему и как управлять. Ссылку не оставляю, чтобы не было рекламы. Гуглите, если кому нужно. 

Ответить
0

Курс белорусский? Я что-то только белорусский сайт нашел

Ответить
–1

Жирно. 

Ответить
{ "page_type": "article" }

Прямой эфир

[ { "id": 1, "label": "100%×150_Branding_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox_method": "createAdaptive", "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfl" } } }, { "id": 2, "label": "1200х400", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfn" } } }, { "id": 3, "label": "240х200 _ТГБ_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fizc" } } }, { "id": 4, "label": "Article Branding", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "p1": "cfovx", "p2": "glug" } } }, { "id": 5, "label": "300x500_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfk" } } }, { "id": 6, "label": "1180х250_Interpool_баннер над комментариями_Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "bugf", "p2": "ffyh" } } }, { "id": 7, "label": "Article Footer 100%_desktop_mobile", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjxb" } } }, { "id": 8, "label": "Fullscreen Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjoh" } } }, { "id": 9, "label": "Fullscreen Mobile", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjog" } } }, { "id": 10, "disable": true, "label": "Native Partner Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyb" } } }, { "id": 11, "disable": true, "label": "Native Partner Mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyc" } } }, { "id": 12, "label": "Кнопка в шапке", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "p1": "bscsh", "p2": "fdhx" } } }, { "id": 13, "label": "DM InPage Video PartnerCode", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox_method": "createAdaptive", "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "bugf", "p2": "flvn" } } }, { "id": 14, "label": "Yandex context video banner", "provider": "yandex", "yandex": { "block_id": "VI-223676-0", "render_to": "inpage_VI-223676-0-1104503429", "adfox_url": "//ads.adfox.ru/228129/getCode?pp=h&ps=bugf&p2=fpjw&puid1=&puid2=&puid3=&puid4=&puid8=&puid9=&puid10=&puid21=&puid22=&puid31=&puid32=&puid33=&fmt=1&dl={REFERER}&pr=" } }, { "id": 15, "label": "Баннер в ленте на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byudx", "p2": "ftjf" } } }, { "id": 16, "label": "Кнопка в шапке мобайл", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byzqf", "p2": "ftwx" } } }, { "id": 17, "label": "Stratum Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fzvb" } } }, { "id": 18, "label": "Stratum Mobile", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fzvc" } } }, { "id": 19, "disable": true, "label": "Тизер на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "p1": "cbltd", "p2": "gazs" } } }, { "id": 20, "label": "Кнопка в сайдбаре", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "p1": "cgxmr", "p2": "gnwc" } } } ] { "page_type": "default" }