[Перевод] Почему программист должен уметь хорошо писать

Здравствуйте все.

В последнее время у нас получалось публиковать в блоге преимущественно узкоспециальные материалы, сильно связанные с исследованием рынка и формированием издательской политики. Полагаем, что в обозримом будущем пятничные публикации такими и останутся — нам очень интересны ваши комментарии, голосование и замечания по поводу рассматриваемых нами книг и авторов. Но теперь появятся еще и понедельничные публикации, которые гораздо более опосредованно связаны с нашими стратегическими поисками, а (на первом этапе) будут представлять наш «editor’s pick» с сайта Medium.

Первая такая статья принадлежит перу Дерека Мея и переведена сегодня
Недавно мне попалась статья Джона Маеды о том, что именно умение писать –, а не кодить — важнейшее секретное оружие дизайнера. Поэтому я стал размышлять, а какую роль писательский талант играет в жизни разработчика.

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

p0ewbxbxrqls6cxkcvqa8-nujxi.png

Подборка различных типов медийных каналов, существующих сегодня (изображение с Change Conversations).

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

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

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

unhcbhfsebh2tmhkbungsdvkwjy.jpeg
Снимок Аарона Бёрдена с сайта Unsplash.

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

1. Умение писать помогает вам лучше коммуницировать


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

ghytmw-unvkr3yqhnnus1_qcx4a.gif
Изображение с zalarieunique.ru.

На работе я легко составляю черновики лаконичных писем или рассылаю мгновенные сообщения, не обращаясь ни к орфографическому словарю (чтобы проверить правописание), ни к толковому (чтобы подобрать какое-нибудь «умное» словечко). Когда мысль свободно ложится на бумагу, ты пишешь легко и быстро, тебе не приходится ею манипулировать, чтобы добиться конкретной цели.

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

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


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

uepqwtrbefhs68nh4wlmfm2b6m8.jpeg
Снимок Джона-Марка Смита с Unsplash.

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

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

3. Писательство помогает вам оценить причуды программирования


Еще в 2011 году на Reddit появилась подтема в разделе /r/programming, в которой обсуждались различия и сходства между писательством и программированием. Некоторые считают, что программирование похоже на написание текстов не своей концептуальной сложностью, а тем, что оба навыка постепенно оттачиваются. Другие полагают, что написание текстов и программирование принципиально отличаются, поскольку первое — это творческий навык, а второе — скорее естественнонаучный, требующий глубокого понимания фундаментальных концепций.

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

eapty3d7a54co1oqqeh21nko_la.png
Многие из этих идей касаются лингвистики и языка

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

Тед Камински подчеркивает еще один важный момент, связанный с назначением слов, используемых в программном коде и других системах.

Во-первых, написанное предназначено к прочтению. Код предназначен к прочтению и изменению. — Тед Камински

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

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

4. Когда пишешь, получаешь шанс применить изученное


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

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

j15nnrt9px2o1i8ej4tpnku5aje.jpeg
Писательство — отличный способ собраться с мыслями и привести их в порядок (снимок Radu Florin с Unsplash).

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

5. Написание текстов как форма катарсиса


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

3eccbpu4clefmfnleixxzaci1rm.jpeg
Снимок Альваро Серрано с сайта Unsplash

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

Писать — это совсем просто. Садишься за клавиатуру и кровоточишь.

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

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

© Habrahabr.ru