Недавно поймал себя на знакомом состоянии. Сел разбираться с задачей, открыл 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 процентов
увеличивалось количество промахов
При этом субъективно казалось, что мозг работает так же хорошо, как и утром.
Вывод, который мне самому не очень понравился
Шесть часов непрерывного кодинга — это довольно серьёзная нагрузка для мозга.
Постепенно происходит несколько вещей:
падает эффективность префронтальной коры
увеличивается количество мелких ошибок
организм переходит в более напряжённый режим
исчезает ощущение свежести мышления
Можно ли так работать? Конечно. Иногда по-другому просто нельзя. Но после нескольких экспериментов я начал замечать один важный момент. Есть точка, где фокус заканчивается. И начинается просто инерция.
