Почему программисты работают по ночам
Согласно поговорке, программисты — это устройства, преобразующие кофеин в код.
Если спросить первого попавшегося программиста, когда он наиболее продуктивен, — скорее всего, он назовёт ночь. Кто-то пораньше, кто-то попозже. Популярен вариант встать в 4 утра и сделать работу до начала дневной суматохи. А некоторые предпочитают ложиться в 4 утра.
Цель всего этого — избавиться от отвлекающих факторов. Но можно было бы просто закрыть дверь… Что же такого особенного в ночи?
Я думаю, что всё сводится к трём вещам: расписанию творца, сонному мозгу, и яркому экрану компьютера.
Расписание творца
В 2009 году Пол Грэм написал о «расписании творца» (maker's schedule). По его мнению, в мире есть два основных типа расписаний. В традиционном «распорядке менеджера» день разделяется на отдельные часы, и десятиминутная помеха обходится максимум в час потерянного времени.
Часовой механизмДругой вариант Грэм называет расписанием творца — того, кто что-то создаёт, творит, производит. Работа над большими абстрактными системами требует размещать их целиком в своей голове. Это можно сравнить с постройкой дома из хрусталя: стоит отвлечься, как всё осыпается и разбивается вдребезги.
Поэтому программистов так раздражает, когда их отвлекают.
Из-за этого огромного умственного вклада мы просто не начинаем работать, пока не можем рассчитывать на пару часов покоя. Не имеет смысла строить в голове всеобъемлющую модель системы только для того, чтобы через полчаса её кто-то сломал.
В самом деле, поговорив с руководителями компаний вы узнаете, что они просто не могут закончить никакую работу в течение дня. Постоянная канонада помех: важных дел™, требующих внимания, и писем, требующих ответа, — просто не позволяет что-либо сделать. Поэтому они выполняют бо́льшую часть работы ночью, когда все остальные спят.
Сонный мозг
Но даже программистам нужно спать по ночам. Мы не какие-нибудь суперлюди. Даже программисты более внимательны именно днём.
Пик БалмераТогда почему же мы выполняем самую сложную умственную работу когда мозг хочет спать, а более простые задания — когда разум остр и ясен?
Потому что усталость делает нас лучшими кодерами.
Как с пиком Балмера, усталость заставляет нас собраться потому, что уставший мозг просто вынужден сосредоточиться! У него элементарно не остаётся лишних сил, чтобы позволить себе потерять концентрацию.
Например, моя продуктивность минимальна после чрезмерного количества чая или невовремя выпитого энергетического напитка: они делают меня гиперактивным, и я то проверяю твиттер, то читаю Hacker News, — в общем, просто прыгаю туда-сюда.
Казалось бы, я должен работать лучше — столько энергии, такой разогнанный мозг. Однако, вместо этого я сам путаюсь у себя в ногах, потому что не могу сконцентрироваться больше чем на две секунды.
С другой стороны, когда я немного уставший, я просто плюхаюсь за стол и пишу. Со слегка утомлённой головой я могу писать код часами, даже не думая заглянуть в твиттер или фейсбук. Интернет как будто перестаёт существовать.
Мне кажется, это верно для большинства программистов. Наши умственные силы избыточны для ~80% задач: согласитесь, реализация интересного алгоритма часто требует написания ещё раз в десять большего объёма вспомогательного кода. Даже если вы занимаетесь самым сложным машинным обучением, какое только можно представить, большой кусок работы — это просто подготовка данных и вывод результатов в красивом видe.
А когда мозг не работает на полную мощность, он ищет какое-нибудь занятие. Усталость притупляет разум настолько, что ему становится достаточно и одной текущей задачи.
Яркие экраны компьютеров
Здесь всё просто. Продолжайте вечерами пялиться на яркий источник света, и ваш режим сна начнёт задерживаться. Вы забываете об усталости до трёх часов ночи, потом просыпаетесь в 11, и когда наступает вечер — вы просто ещё не устали, потому что на ногах всего с одиннадцати утра!
Ночной Инсбрук
После нескольких повторений такой подход запросто утащит вас в другой часовой пояс. Что интересно, сдвиг не бесконечен, и однажды попав в равновесную точку отхода ко сну между 3 и 4 часами, вы, как правило, там и останетесь.
А быть может, дело в будильниках, поднимающих нас по утрам, — потому что общество называет нас паршивыми лентяями, если мы начинаем завтрак в два часа пополудни.
Заключение
Итак, программисты работают по ночам, потому что это не требует прекратить работу к определённому времени (что позволяет работать более расслабленно), мозг не отвлекается, а яркий экран прогоняет сон.
©megamozg