Недавно поймал себя на знакомом состоянии. Сел разбираться с задачей, открыл IDE, начал копаться в логике — и в какой-то момент оказалось, что прошло почти шесть часов. Без перерывов. Обычно про концентрацию говорят через призму продуктивности: техники, таймеры, планирование. Но мне стало интереснее другое — что происходит в мозге разработчика во время длинной сессии кодинга.
Я немного почитал исследования, немного понаблюдал за собой и сделал несколько маленьких экспериментов. В том числе написал пару простых скриптов на Python, чтобы попробовать зафиксировать изменения в состоянии во время длинной работы.Получилась странная смесь нейробиологии, самонаблюдений и небольших прототипов.
Фокус — это работа конкретных систем мозга
Когда разработчик полностью уходит в задачу, активно включается дорсолатеральная префронтальная кора. Это область мозга, которая держит рабочую память.
Проще говоря, именно она удерживает в голове всё, что нужно для решения задачи:
структуру системы
переменные и их состояния
ограничения архитектуры
возможные edge cases
По ощущениям это действительно напоминает стек вызовов. Пока задача активна, этот стек постоянно обновляется.
Вторая важная область — передняя поясная кора. Она отвечает за обнаружение конфликтов.
Каждый раз, когда что-то идёт не так — падает тест, возникает неожиданный результат, ломается логика — эта система включается.
Каждый такой момент — маленький сигнал: «предсказание не совпало с реальностью».
Почему дебаг иногда затягивает сильнее, чем написание кода
Тут появляется ещё один интересный механизм — дофаминовая система.
Дофамин реагирует не просто на награду. Он реагирует на ошибку предсказания.
Если результат неожиданно лучше ожидаемого — возникает сильный сигнал.
В разработке такие моменты происходят постоянно:
нашёл баг
понял причину
увидел, как тест внезапно стал зелёным
Я решил поиграться с простой моделью и посмотреть, как может выглядеть динамика таких «микронаград».
Это, конечно, игрушечная симуляция, но она помогает представить процесс.
import random import matplotlib.pyplot as plt steps = 100 dopamine = [] level = 0.5 for i in range(steps): success = random.random() prediction_error = success - level level += prediction_error * 0.2 dopamine.append(level) plt.plot(dopamine) plt.title("Approximate dopamine response during debugging") plt.xlabel("Iteration") plt.ylabel("Signal level") plt.show()
Если прогнать несколько раз, видно характерную вещь: сначала сигнал скачет сильнее, потом постепенно выравнивается.
Субъективно ощущается похоже: первые часы — азарт и интерес, потом работа становится более механической.
Метаболическая цена длинной сессии
Есть один факт, который всегда немного удивляет.
Мозг составляет около двух процентов массы тела, но потребляет примерно двадцать процентов энергии организма.
При интенсивной когнитивной работе некоторые области начинают расходовать энергию заметно активнее.
Мне стало интересно посмотреть на более бытовой показатель — вариабельность сердечного ритма (HRV). Этот показатель часто используют для оценки нагрузки на нервную систему.
Если есть данные с носимого устройства, их можно быстро посмотреть в Python.
Простейший пример анализа выглядит примерно так:
import pandas as pd import matplotlib.pyplot as plt data = pd.read_csv("hrv_session.csv") plt.plot(data["minute"], data["hrv"]) plt.title("HRV during coding session") plt.xlabel("Minutes") plt.ylabel("HRV") plt.show()
Во время нескольких длинных сессий кодинга я заметил довольно устойчивую тенденцию: примерно к четвёртому часу HRV начинает заметно снижаться.
Самое странное — субъективно в этот момент часто кажется, что всё ещё нормально.
Ошибки начинают расти ближе к концу сессии
Следующий эксперимент оказался самым простым.
Я просто посмотрел на собственные коммиты за несколько дней и попытался понять, какие изменения появляются ближе к вечеру. Не архитектура. Не сложные решения. А мелочи: Опечатки Невнимательные условия. Логические огрехи.
Именно те вещи, которые потом приходится быстро фиксить.
В какой-то момент мне стало интересно: можно ли поймать момент, когда мозг начинает уставать.
Я написал небольшой CLI-тест на реакцию. Ничего сложного — просто измерение времени ответа.
import time import random def reaction_test(): delay = random.uniform(2,5) time.sleep(delay) print("PRESS ENTER") start = time.time() input() reaction = time.time() - start print("Reaction time:", reaction) reaction_test()
Я запускал его перед началом работы и после длинных сессий. Картина получилась довольно стабильная. После примерно шести часов:
реакция замедлялась примерно на 15–20 процентов
увеличивалось количество промахов
При этом субъективно казалось, что мозг работает так же хорошо, как и утром.
Вывод, который мне самому не очень понравился
Шесть часов непрерывного кодинга — это довольно серьёзная нагрузка для мозга.
Постепенно происходит несколько вещей:
падает эффективность префронтальной коры
увеличивается количество мелких ошибок
организм переходит в более напряжённый режим
исчезает ощущение свежести мышления
Можно ли так работать? Конечно. Иногда по-другому просто нельзя. Но после нескольких экспериментов я начал замечать один важный момент. Есть точка, где фокус заканчивается. И начинается просто инерция.
Комментарии (6)

amcured
19.03.2026 05:16В полном погружении в действительно сложную задачу я лично способен находиться от силы минут 40–50. В редчайших случаях — до 100 минут. 6 часов — для меня лично это время за гранью адекватной производительности в течение дня.
Попробуйте изнутри процесса попытаться контролировать ваш КПД и просто сходите попейте чайку, или выгуляйте собаку, если чувствуете, что оно пошло вниз. Дальше будет только хуже, при отрицательной производной КПД пытаться продолжать работать довольно бессмысленно.

LinkToOS
19.03.2026 05:16Если устал писать код, начинай его комментировать. Рабочий день все равно 8 часов.

Balimund
19.03.2026 05:16Хотел бы я написать, что точно помогает отвлечься и разгрузиться, но это лишь четверг и солнце только встало. Продолжаем / начинаем работать.
Теплый весенний ветер. Пение птиц.
Журчанье ручья. Ронин.
Жужжание первого шмеля.

Andr3y3
19.03.2026 05:16Когда задача меня занимает на 3 и более часов беспрерывного потока, то на следующий день, как правило, приходится все переделывать. Идеальным вариантом является разбить задачу на этапы по ~30-40 минут работы с перерывами между ними по 10-15 минут
Dhwtj
Долгий непрерывный кодинг оправдан только если задача настолько же сложная. Иначе, наоборот, вы страдаете х-ней. Нужно прекратить, отдохнуть и перегруппироваться
amcured
Если задача сложная — её нужно разбить на подзадачи и см. выше.