Я решил перестать гадать, почему к вечеру код превращается в тыкву, а мозг — в перегретый сервер. Вместо очередного поста про выгорание я полез в нейрофизиологию, собрал немного собственных данных, поигрался с ЭЭГ-гарнитурой, трекером сна и статистикой коммитов. В этой статье — что реально происходит с вниманием, рабочей памятью и дофаминовой системой разработчика в течение 8 часов за ноутбуком. Будет и биология, и цифры, и немного кода.
Почему я вообще полез в нейрофизиологию
Все мы знаем это состояние. Утром открываешь IDE — и как будто видишь всю архитектуру насквозь. После обеда — уже начинаешь перечитывать один и тот же метод три раза. А к вечеру ловишь себя на том, что тупо листаешь код, не понимая, что хотел сделать.
Раньше я думал, что это просто усталость. Но однажды я заметил странную вещь: количество логических ошибок в моих вечерних коммитах было стабильно выше. Не синтаксических, а именно логических. Те, которые не ловятся компилятором, но ломают прод через неделю.
Я выгрузил историю коммитов за 3 месяца и посмотрел распределение по времени. Параллельно я начал читать про рабочую память, префронтальную кору и нейромедиаторы. Оказалось, что 6–8 часов непрерывной когнитивной нагрузки — это почти марафон для мозга.
Самое неприятное — субъективно мы не чувствуем падение качества мышления сразу. Нам кажется, что всё ок. Но скорость принятия решений падает, вариативность гипотез снижается, а мозг начинает выбирать более простые решения.
У вас бывало такое: в конце дня выбираешь более костыльный вариант, хотя утром бы точно сделал красиво? Это не лень. Это нейрофизиология.
Что происходит с вниманием и рабочей памятью
Если сильно упростить, то большую часть дня у разработчика активно работает дорсолатеральная префронтальная кора. Это та часть, которая держит в голове контекст: стек вызовов, бизнес-логику, ограничения системы.
Рабочая память — штука ограниченная. В среднем 4–7 элементов одновременно. Когда мы дебажим сложную асинхронную логику, мы постоянно держим в голове состояние нескольких потоков, флагов, зависимостей.
Проблема в том, что при длительной нагрузке снижается эффективность синаптической передачи. Уровень дофамина и норадреналина меняется, а это напрямую влияет на фокус.
Я ради интереса провёл мини-эксперимент. Использовал потребительскую ЭЭГ-гарнитуру и замерял относительную мощность бета-ритма (ассоциируется с активной концентрацией) и тета-ритма (часто растёт при утомлении).
Вот пример обработки сырых данных в Python:
# language: python
import numpy as np
import pandas as pd
from scipy.signal import welch
def bandpower(data, sf, band):
low, high = band
freqs, psd = welch(data, sf, nperseg=sf*2)
idx = np.logical_and(freqs >= low, freqs <= high)
return np.trapz(psd[idx], freqs[idx])
df = pd.read_csv("eeg_session.csv")
sf = 256 # частота дискретизации
beta_band = (13, 30)
theta_band = (4, 8)
results = []
for hour in range(8):
segment = df[df["hour"] == hour]["signal"].values
beta = bandpower(segment, sf, beta_band)
theta = bandpower(segment, sf, theta_band)
results.append({
"hour": hour,
"beta_theta_ratio": beta / theta if theta != 0 else 0
})
print(pd.DataFrame(results))
График получился довольно показательный: после 4–5 часов непрерывной работы отношение бета к тете падало. Это косвенный признак снижения концентрации.
Интересно, что субъективно я в этот момент ещё чувствовал себя нормально.
Дофамин, задачи и бесконечные уведомления
Теперь про дофамин. В IT мы живём в системе мелких вознаграждений: прошёл тест — маленький всплеск, закрыл тикет — ещё один, получил апрув — отлично.
Но когда мы параллельно держим открытыми мессенджеры, почту и трекер задач, мозг переходит в режим постоянного переключения контекста. А каждое переключение — это не бесплатно.
С точки зрения нейрофизиологии, частые микропереключения увеличивают когнитивную стоимость задачи. Мозг тратит ресурсы на восстановление контекста. И вот тут начинается самое неприятное: префронтальная кора устает быстрее.
Я написал простой скрипт на JavaScript, который анализировал активность переключений окон (через логирование фокуса в рабочей среде):
// language: javascript (Node.js)
const fs = require('fs');
const data = JSON.parse(fs.readFileSync('window_activity.json'));
let switches = 0;
let lastWindow = null;
data.forEach(event => {
if (lastWindow && event.window !== lastWindow) {
switches++;
}
lastWindow = event.window;
});
const hoursWorked = (data[data.length - 1].timestamp - data[0].timestamp) / 3600000;
console.log("Switches per hour:", switches / hoursWorked);
В дни, когда переключений было больше 60 в час, вечером я чувствовал себя буквально выжатым. И это совпадало с ростом количества мелких багов.
Может, стоит иногда закрывать лишние вкладки не ради эстетики, а ради нейронов?
Ошибки, реакция и скорость мышления
Я решил проверить ещё одну вещь — как меняется скорость реакции и принятия решений к концу дня. Для этого написал простой тест на Go, который запускал серию задач на выбор правильного ответа с ограничением по времени.
// language: go
package main
import (
"fmt"
"math/rand"
"time"
)
func main() {
rand.Seed(time.Now().UnixNano())
start := time.Now()
correct := 0
for i := 0; i < 50; i++ {
a := rand.Intn(100)
b := rand.Intn(100)
answer := a + b
var input int
fmt.Printf("%d + %d = ", a, b)
fmt.Scan(&input)
if input == answer {
correct++
}
}
duration := time.Since(start)
fmt.Println("Correct:", correct)
fmt.Println("Time:", duration)
}
Я проходил этот тест утром и вечером. Разница во времени выполнения достигала 18–25 процентов. Количество ошибок росло.
И это на примитивной арифметике. Представьте, что происходит, когда вы вечером проектируете сложный распределённый сервис.
Плюс добавляется ещё один фактор — глюкозный обмен. Мозг потребляет до 20 процентов энергии тела. При длительной работе без перерывов падает доступность глюкозы в активных областях. Это напрямую влияет на скорость нейронной передачи.
Вы замечали, что после тяжёлого созвона хочется сладкого? Это не просто привычка.
Что я поменял в своей работе
После всех этих наблюдений я перестал героически сидеть 8 часов подряд.
Я разбил день на когнитивные блоки по 90 минут с обязательной паузой. Самые сложные архитектурные задачи — только в первые 3–4 часа после начала работы. Рефакторинг средней сложности — во второй половине дня. Рутину и код-ревью — ближе к вечеру.
Количество багов в вечерних коммитах снизилось. Я стал реже откатывать свои же решения на следующий день.
Самое важное — я перестал верить ощущению, что если я сижу за ноутбуком 8 часов, значит работаю эффективно все 8 часов.
Мозг — не сервер с линейной деградацией производительности. Он скорее как система с нелинейной просадкой после порога нагрузки.
И если честно, меня немного пугает, что в IT мы оптимизируем latency в микросекундах, но игнорируем то, что наш главный процессор перегревается каждый день.
Автор: isergeymd


