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

Хотя они находятся на противоположных концах спектра того, насколько они творческие/технические, по своей сути, написание и программирование в основе своей связаны с коммуникацией — только с совершенно разной аудиторией.

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

Программирование очень похоже, если вы понимаете, кто ваша аудитория на самом деле. В 9 случаях из 10 ваша целевая аудитория — не компьютеры, а люди, читающие ваш код. Ваши товарищи по команде. Люди, которые будут поддерживать ваш код спустя годы. И как бы странно это ни звучало, может быть, даже ваше собственное будущее. Меня откровенно смущает то, сколько раз я читал свой собственный код всего через пару недель после его написания и совершенно ничего в нем не понимал.

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

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

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

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

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

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

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