Допустим, у тебя глючит MacBook.
Не тормозит — именно глючит. Конкретные, видимые симптомы:
- Safari зависает на ровном месте;
- микрофон в Zoom-звонках пропадает через пятнадцать минут;
- экран мигает при подключении внешнего монитора;
- NumLock-кнопки перестают отвечать;
- из динамиков треск при определённой громкости;
- батарея за ночь садится с 80 до 40, хотя ничего не запущено.
Ты видишь симптомы. Ты не видишь причину.
Это важное различие. Запомни его.
Болезнь — это не поломка. Это сообщение.
Первый инстинкт при глюке — убрать симптом.
Экран мигает — пошеруди провода. Треск из динамиков — убавь громкость. Клавиши не работают — почисти клавиатуру. Батарея садится — поменяй блок питания.
Ты что-то сделал. Руками потрогал. Деньги потратил. Ощущение, что «занялся проблемой».
Симптом ушёл. На неделю.
Потом вернулся. Или появился другой.
Это происходит потому, что ты работаешь с поверхностью, а баг сидит внутри. Отвёртка, термопаста, пылесос, влажная салфетка — всё это инструменты для железа. Они не достают до причины, которая живёт в другом месте.
У тела — ровно та же история.
Голова болит — выпил таблетку. Спина ноет — купил новый стул. Кожа шелушится — сменил крем. Желудок крутит — исключил глютен.
Симптом придавил. На время.
Потом вернулся. Или переехал в другое место.
Потому что ты работал с экраном. А баг сидит в коде.
Что такое «залезть в операционную систему»
Когда опытный техник получает глючащий MacBook, он не смотрит на корпус.
Он открывает Terminal. Смотрит логи. Проверяет, какие процессы запущены в фоне, что стартует при загрузке, нет ли конфликтов между версиями библиотек. Запускает диагностику на уровне ядра системы.
Снаружи — красивый алюминиевый корпус. Внутри — конкретная строчка кода, которая производит симптом.
Он ищет не «где болит». Он ищет «почему болит».
Это разные вопросы. С разными ответами.
Большинство людей всю жизнь отвечают на первый вопрос. Эта книга — про второй.
Перечень причин, которых снаружи не видно
Когда MacBook глючит на программном уровне, список типичных причин выглядит так:
- конфликт двух приложений, которые тянут один и тот же системный ресурс;
- устаревший драйвер, который не совместим с текущей версией OS;
- фоновый процесс, который запустился однажды и больше не отрабатывает корректно;
- настройка, которую кто-то изменил «для ускорения» и забыл вернуть;
- вирус или вредоносный скрипт, который маскируется под системный процесс;
- повреждённый файл конфигурации, который тянет всё остальное за собой.
Ни один из этих багов не виден на корпусе.
С телом — список похожий по структуре:
- хронический фоновый стресс, который тело воспринимает как реальную угрозу — и держит физиологию в режиме «опасность»: симпатическая нервная система не выключается, парасимпатическая не включается, и тело буквально не умеет расслабиться;
- убеждение, усвоенное в детстве, которое управляет реакциями без твоего ведома;
- незавершённая эмоциональная ситуация, которая «висит» в системе и жрёт ресурс;
- привычка, которая была адаптацией к старой среде — и теперь конфликтует с новой;
- чужой страх, который ты принял за свой и теперь запускаешь автоматически;
- «настройка по умолчанию», которую тебе поставили в школе или семье — и ты её ни разу не трогал.
Снаружи видно: симптом. Внутри сидит: одна из этих причин.
Дефект — твой лучший диагност
Вот контринтуитивная вещь.
Большинство людей хотят убрать дефект. Как можно быстрее. Чтобы не видеть.
Но без дефекта обнаружить баг — почти невозможно.
Подумай. Если MacBook работает «нормально» — ты не лезешь в логи. Не смотришь фоновые процессы. Не проверяешь, что запускается при старте. Система как будто в порядке.
Баг при этом может сидеть внутри годами. Просто пока не проявился.
Дефект — это видимый сигнал невидимой проблемы. Система говорит тебе: «Смотри сюда. Вот где искать».
Это не враг. Это указатель.
«Дефект — это самая честная обратная связь, которую система умеет давать. Она не жалуется. Она сообщает.»
Человек, который умеет читать дефекты — не тот, кто страдает меньше. Это тот, кто двигается быстрее. Потому что у него есть координаты.
Почему «залатать» не работает
Есть два способа работать с глюком.
Вариант № 1: Убрать симптом. Заглушить сигнал. Почистить снаружи. Поставить заплатку. Через время — снова.
Вариант № 2: Найти баг. Устранить причину. Симптом уходит сам. Не возвращается.
Первый вариант — быстрее. В моменте. Второй — дольше. В моменте.
Но за пять лет первого пути ты потратишь на симптомы больше времени, денег и сил, чем за один раз второго.
Это не мораль. Это арифметика.
Несколько слов о повторах в этой книге
Ты заметишь: некоторые мысли здесь встречаются снова в разных обёртках.
Это не забывчивость и не «вода».
Одна и та же истина должна лечь в разные ситуации из твоей жизни. Только тогда она перестаёт быть «умной мыслью» и становится твоей рабочей установкой.
Программу можно скомпилировать под разные операционные системы. Исходный код — один. Но пока он не скомпилирован под твою конкретную среду — он не исполняется.
Повторы здесь работают именно так: каждый раз та же истина компилируется под другой контекст из твоей жизни. Потому что у каждого читателя своя локальная среда. И мысль, которая не зашла через метафору с MacBook, может зайти через пример с работой. Или через пример с отношениями. Или через пример с болью в спине.
Пока она не зашла именно на твоём языке — она не работает как своя.
Задание на сейчас
Возьми любой хронический симптом — физический или эмоциональный. Что-то, что возвращается. Напиши одно предложение: что ты обычно делаешь с этим симптомом.
Это попытка убрать симптом — или найти причину?
Ответ пиши честно. Не для книги. Для себя.