Почему программисты работают по ночам

 

Почему программисты работают по ночам

Согласно поговорке, программисты — это устройства, преобразующие кофеин в код.

Если спросить первого попавшегося программиста, когда он наиболее продуктивен, — скорее всего, он назовёт ночь. Кто-то пораньше, кто-то попозже. Популярен вариант встать в 4 утра и сделать работу до начала дневной суматохи. А некоторые предпочитают ложиться в 4 утра.

Цель всего этого — избавиться от отвлекающих факторов. Но можно было бы просто закрыть дверь… Что же такого особенного в ночи?

Я думаю, что всё сводится к трём вещам: расписанию творца, сонному мозгу, и яркому экрану компьютера.



Расписание творца

В 2009 году Пол Грэм написал о «расписании творца» (maker's schedule). По его мнению, в мире есть два основных типа расписаний. В традиционном «распорядке менеджера» день разделяется на отдельные часы, и десятиминутная помеха обходится максимум в час потерянного времени.

Другой вариант Грэм называет расписанием творца — того, кто что-то создаёт, творит, производит. Работа над большими абстрактными системами требует размещать их целиком в своей голове. Это можно сравнить с постройкой дома из хрусталя: стоит отвлечься, как всё осыпается и разбивается вдребезги.

Поэтому программистов так раздражает, когда их отвлекают.

Из-за этого огромного умственного вклада мы просто не начинаем работать, пока не можем рассчитывать на пару часов покоя. Не имеет смысла строить в голове всеобъемлющую модель системы только для того, чтобы через полчаса её кто-то сломал.

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


Сонный мозг

Но даже программистам нужно спать по ночам. Мы не какие-нибудь суперлюди. Даже программисты более внимательны именно днём.

Тогда почему же мы выполняем самую сложную умственную работу когда мозг хочет спать, а более простые задания — когда разум остр и ясен?

Потому что усталость делает нас лучшими кодерами.

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

Например, моя продуктивность минимальна после чрезмерного количества чая или невовремя выпитого энергетического напитка: они делают меня гиперактивным, и я то проверяю твиттер, то читаю Hacker News, — в общем, просто прыгаю туда-сюда.

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

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

Мне кажется, это верно для большинства программистов. Наши умственные силы избыточны для ~80% задач: согласитесь, реализация интересного алгоритма часто требует написания ещё раз в десять большего объёма вспомогательного кода. Даже если вы занимаетесь самым сложным машинным обучением, какое только можно представить, большой кусок работы — это просто подготовка данных и вывод результатов в красивом видe.

А когда мозг не работает на полную мощность, он ищет какое-нибудь занятие. Усталость притупляет разум настолько, что ему становится достаточно и одной текущей задачи.


Яркие экраны компьютеров

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

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

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


Заключение

Итак, программисты работают по ночам, потому что это не требует прекратить работу к определённому времени (что позволяет работать более расслабленно), мозг не отвлекается, а яркий экран прогоняет сон.

Прим. переводчика: первый комментарий к оригинальной статье неплохо её дополняет:

Настоящая причина в том, что мы весь день тянем время, а к полуночи переходим в режим «Аааа! #$%! Работать!»