Книга Кэла Ньюпорта «Глубокая работа» применительно к программированию

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

Мелкое программирование

Прежде чем говорить о глубоком программировании, давайте поговорим о его противоположности. Кэл Ньюпорт, автор нескольких очень интересных книг, одна из которых является сутью данной статьи, под названием Глубокая работа, определяет мелкую работу как «некогнитивные, логистические или второстепенные обязанности, выполняемые в состоянии отвлечение."

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

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

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

Карр расширил этот аргумент до книги под названием «Отмели: что Интернет делает с нашим мозгом». Чтобы правильно написать эту книгу, ему пришлось перебраться в каюту и отключиться!

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

Глубокое программирование

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

4 апреля 1975 года, когда большинство американцев использовали пишущие машинки, друзья детства Билл Гейтс и Пол Аллен основали Microsoft, компанию по производству компьютерного программного обеспечения.

Как автор Уолтер Айзексон пишет в выпуске Harvard Gazette за 2013 год:

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

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

Глубокая работа - это больше, чем просто набор хороших привычек. Это навык, который необходимо усвоить, навык, который повысит вашу ценность в наши дни. Как выразился Кэл Ньюпорт:

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

Если вы убеждены в ценности глубокой работы и ее важности, ваш следующий вопрос может быть таким: «Как мне приобрести этот навык?»

Освоение глубокого программирования

1. Подход

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

  1. Монашеский: «Эта философия пытается максимизировать глубокие усилия, устраняя или радикально минимизируя мелкие обязательства».
  2. Бимодальный: «Эта философия требует, чтобы вы делили свое время, посвящая некоторые четко определенные промежутки времени глубоким занятиям, а остальное оставляя открытым для всего остального».
  3. Ритмичность: «Эта философия утверждает, что самый простой способ последовательно начинать сеансы глубокой работы - превратить их в простую регулярную привычку».
  4. Журналистика: «в которой вы помещаете глубокую работу везде, где только можете, в свой график».

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

Лучший подход к глубокому программированию
Какую философию мне выбрать, как программисту? Что ж, в этом случае вы тот, кто должен ответить на этот вопрос, вы должны выяснить, какой из них вам больше подходит, в зависимости от вашего ежедневного расписания, в зависимости от того, является ли ваше расписание статическим (то есть почти одинаковым каждый день), в зависимости от от того, не является ли для ваших коллег / работодателей такой большой проблемой, что вы не активны в Slack и по электронной почте, находясь в состоянии непрерывной концентрации в течение нескольких часов в течение дня, и т. д.

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

2. Выбор окружающей среды

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

3. Запоминание

Запоминание вещей может помочь вам улучшить свои когнитивные навыки, эту тактику также рекомендует Кэл Ньюпорт:

«Побочный эффект тренировки памяти ... улучшение вашей общей способности к концентрации».

Несколько упражнений, которые вы можете попробовать:

  • Изучение слов на новом языке
  • Выучить наизусть любимые стихи вашей священной книги
  • Запоминание стихотворения
  • Запоминание любимых цитат

4. Расставляйте приоритеты в простоях

«Регулярный отдых вашему мозгу улучшает качество вашей глубокой работы».

У вас когда-нибудь возникала досадная ошибка в проекте, и вы заканчивали день в гневе, думая, что на решение этой проблемы уйдут дни, просто чтобы придумать решение на следующее утро, еще до прихода на работу? Это эффективность простоя.

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

Избавьтесь от поверхностного программирования

1. Блокировка времени

Как программист, планирование своего дня является ключевым фактором в практике глубокого программирования, имея в виду, что день очень редко проходит на 100% по плану, но все же иметь ежедневный план очень важно, несмотря ни на что.

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

Кэл Ньюпорт пишет:

На изображении выше показан мой план на случайную среду в начале этого месяца. Мой план был записан на одном листе бумаги весом 24 фунта в тетради «Black n’ Red Twin Wire . Эта страница разделена на две колонки. В левом столбце я выделил две строки для каждого часа дня, а затем разделил это время на блоки, помеченные конкретными назначениями. В правом столбце я добавляю пояснительные примечания к этим блокам, где это необходимо ».

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

«Иногда люди спрашивают, почему я беспокоюсь о таком подробном планировании. Мой ответ прост: это дает огромную продуктивность. По моим оценкам, 40-часовая рабочая неделя с блокировкой времени дает такой же результат, как и 60-часовая рабочая неделя, проводимая без структуры ». - Кэл Ньюпорт

2. Как победить цифровые отвлекающие факторы

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

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

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

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

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

Решения

Как эффективно использовать Slack:

Настройка рабочего пространства Slack: оптимизация интерфейса Slack для фокусировки

Каналы Slack: правильное создание, использование и выход из каналов

  • "Подробнее"

Альтернативы Slack

Асинхронная коммуникация и Твист.

Проще говоря, асинхронная связь - это когда вы отправляете сообщение, не ожидая немедленного ответа. Например, вы отправляете электронное письмо. Я открываю письмо и отвечаю на него через несколько часов. ("Подробнее")

Социальные сети

Прежде чем вы обнаружите, что пролистываете эту страницу в Facebook или на час погрузитесь в кроличью нору YouTube, ознакомьтесь с этими инструментами и советами, чтобы избежать этого:

Как заблокировать веб-сайт, когда вам нужно сосредоточиться:

Заключение

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