Нас засыпают учебниками по программированию, вопросами с доски и рассказами о технических интервью. Затем мы целыми днями изучаем структуры данных, шаблоны проектирования, алгоритмы и не останавливаемся, пока не узнаем принципы SOLID наизусть.

Но всегда есть большая часть навыков, которые мы упускаем. Наши социальные навыки. Как мы доносим наши идеи, как участвовать в беседах и, самое главное, как предлагать и принимать критику.

Наши коллеги, начальники, клиенты и пользователи - не компьютеры. Они люди, а люди - социальные существа. Знание большого O пузырьковой сортировки не поможет вам убедить вашего начальника в том, что кодовая база нуждается в рефакторинге. Это также не поможет вам, когда вам придется объяснять клиенту, что простое изменение может занять несколько дней.

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

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

Что такое социальные навыки?

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

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

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

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

Вот почему существуют шутки и стереотипы о том, что люди не понимают нас, когда мы говорим о своей работе. Мы отлично умеем разговаривать с компьютерами, в меньшей степени - с людьми.

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

Важность социальных навыков

Наша профессия не заботится о социальных навыках. Мы заботимся о производительности, простоте использования, удобочитаемости кода, ремонтопригодности. Мы только заботимся о коде. У всех нас был коллега, который был нечувствительным уколом, но, по крайней мере, они не использовали [плохой язык программирования], и этого для нас было достаточно.

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

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

Вы думаете, что у вас нет проблем с вашими социальными навыками?

Думать об этом - часть проблемы. Социальные навыки можно практиковать и изучать. Если вы ими не воспользуетесь, они станут ржавыми и устаревшими. Нравится ваш код.

Спросите себя, сколько времени вы потратили на улучшение своего программирования за последние 3 месяца и сколько времени на улучшение ваших социальных навыков? Когда в последний раз вы читали книгу типа Как заводить друзей и влиять на людей? Сколько статей вы прочитали о том, как разговаривать с другими людьми?

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