Становимся лучше: тернистый путь программиста. Часть 1
Эта статья — вольный перевод статьи «The hardest and easiest way to be a better coder» портала medium.com.
В ней выражена идея, которую обычно не принято озвучивать в индустрии разработки программ.
Эта идея о том, что программисты тоже люди. Но люди, живущие в культуре, отрицающей эмоции в общении.
Автор отличненько описывает нам важный путь развития. И это совсем не вкачивание технических навыков или GTD.
От переводчика
Внимание! Статья тяжёлая. Рассчитана «на подумать»!
Один из путей — учить инструменты и практики, оттачивать технические навыки.
Но есть еще один путь — путь человека: улучшение коммуникаций, эмоционального интеллекта, социальных отношений — то, что называется «софт скиллз».
В моем кругу мало кто задаётся вопросом «Как прокачать софт скиллз?», потому что эти навыки считаются вторичными.
А я замечаю, что эти умения чуть ли не основные для становления профессионала.
Автор статьи описывает точно такую же идею!
Я не смог бы написать лучше, поэтому взялся за перевод.
Перевод будет разбит на несколько частей.
Я считаю, что это поможет усвоению информации.
Такая тема должна подаваться дозированно.
В первой части раскрывается идея того, что программирование строится на общении.
Вторая часть описывает роль кода как способа общения.
Третья часть расскажет, почему нас бесит углубление в детали или сильное абстрагирование при объяснении нового.
Четвертая часть посвящена тёмной стороне силы — желанию быть злым и вредным.
Здесь и далее курсивом выделяются примечания переводчика.
Разминка
Представьте, что вы попали на планету, которая крайне похожа на современную Землю.
Её населяют гуманоиды. Они любят музыку, котиков и весёлые истории.
Их технологическое развитие уже дало им разные сложные штуки: газеты, поезда и красивые сложные архитектурные ансамбли.
Их культура базируется на хорошем образовании, отличной медицине и тяге к исследованиям.
Но они ещё не открыли электричество.
Компьютеров нет. Интернета тоже.
Кэп намекает, что видеоигр тоже нет. Непостижимо.
Мне кажется, что наша современная культура программистов точно так же лишена очень важного «электричества».
Мы не умеем поддерживать здоровое ежедневное общение.
Тренировка этого навыка с одной стороны проста: первые шаги очень простые и результативные.
С другой стороны, это очень обширная область знаний с кучей нюансов.
Кровь программирования
Вопреки устоявшемуся мнению, кровь программирования это общение программиста с программистом, а не общение программиста с компьютером.
Многие думаю, что программирование — это объяснение компьютеру что конкретно нужно сделать. Когда я непосредственно пишу код, а не отвечаю на емейлы или проектирую решение, я описываю конкретные действия, которые компьютер затем будет исполнять.
Цель программирования — это определённо решение специфической проблемы пользователя. Где же тут притаилось то самое «общение программиста с программистом»?
Программирование — это непрерывный процесс. Что это значит?
Экономика — это тоже непрерывный процесс, процесс обмена товаров и услуг.
Этот процесс никогда не останавливается. Волшебного момента, когда у каждого человека есть всё, что ему нужно, и экономика останавливается и исчезает, просто не может быть.
Аналогичным образом база имеющегося кода постоянно эволюционирует, и эта эволюция и есть программирование.
Деньги — это «кровь» экономики. Это то, что перетекает от одного участника процесса к другому. Это то, что питает сам процесс.
Единственное, что питает процесс программирования — это общение между участниками этого процесса.
Почему программисты недооценивают общение?
Программисту сложно осознать важность общения из-за таких штук:
- Человек старается не замечать доказательств, которые намекают на какой-то его недостаток.
- Гораздо проще прокачивать конкретное умение, чем абстрактное.
- Большинство разработчиков, которых я знаю, говорят, что улучшение «софт скиллов» — это не прикольно.
И важнейший фактор — программисты говорят об общении и «коммуникативных навыках» только во время интервью и пересмотров зарплаты, и избегают этих тем в любое другое время.
Сколько статей на тему «коммуникаций» для программистов вы читали?
Наплевательское отношение к «хорошим коммуникативным навыкам» стало традицией.
Даже у программистов есть чувства!
Есть еще одна традиция, о которой не говорят.
Мы притворяемся, что у нас нет стрёмных эмоций: злости и зависти. И что мы не защищаем свой код от нападок коллег.
Представьте себе, что ваш друг говорит: «Я не хочу менять этот код, потому что я прирос к нему душой!». Звучит стрёмно. О таких стрёмных эмоциях открыто не говорят.
Мы все равняемся на «идеального программиста», который испытывает только хорошие эмоции: воодушевление, любопытство, желание помогать другим. Для некоторых ценным является презрение критики. Но о критике я поговорю чуть позже.
Мы стараемся не показывать то, чем мы отличаемся от этого идеального образа.
В то же время, все мы испытываем ворох эмоций. Это естественно.
Зрелость личности — это не изменение наших эмоций, это изменение отношения и реакции на эти эмоции и чувства.
Эмоции играют важнейшую роль в формировании наших желаний. Зрелая реакция — это не игнорирование этих эмоций, а их осознание и предельная честность с самим собой.
Многие даже не представляют, на сколько полезно осознавать свои чувства. Сделать это крайне тяжело. Самое привычное поведение во время общения — сразу же поддаваться порыву чувств, а не пытаться их сначала проанализировать. Вы же не думаете «Сейчас я хочу унизить собеседника, потому что я крайне зол».
Осознание и контроль чувств и эмоций — главная составляющая понятия «эмоциональный интеллект». Интересная тема, советую поизучать.
Что может быть сложнее, чем контролировать собственные эмоции? Ответ прост: уважать чужие эмоции.
Когда мы пытаемся угадать, что чувствует наш собеседник, нам доступно куда меньше информации, чем нашему собеседнику. И иногда непонятно, что хуже: проигнорировать чужие чувства или понять их неправильно.
Было бы замечательно, если бы программисты могли открыто обсуждать эмоции.
В основе такой традиции, вероятно, лежит представление, что работа с кодом не имеет ничего общего с чувствами. Но это отрицает тот факт, что программирование — коллаборативный непрерывный процесс.
Нельзя просто так закрывать глаза на чувства. Плохие чувства как баги — они неизбежны. Куда более продуктивно было бы замечать, обсуждать и «исправлять» такие чувства. Счастливый, позитивный и мотивированный программист продуктивнее обиженного и пыхтяще-ворчащего.
К сожалению, культуру невозможно изменить щелчком пальца. На сегодняшний день ситуация такова, что программист, интересующийся чувствами других, рискует получить в лоб.
Но не всё потеряно!
Вы можете начать разговор о чувствах, задав вопрос соответствующим образом. Вы должны показать, что вы хотите понять точку зрения человека без желания её осудить.
Люди гораздо лучше относятся к тем, кто понимает их чувства и понимает причину этих чувств.
Это отличный первый шаг к продуктивному решению сложной ситуации, вызывающей негативные эмоции.
В описанном выше я нашёл очень много совпадений со своей действительностью. Нужно общаться и учиться делать это продуктивно. Вы согласны?
Как вы решаете конфликтные ситуации?
Вызывает ли ваш код какие-либо чувства?
Вы объясняете товарищам причину ваших решений и поведения?
Переводить дальше или ну его?
Автор: