Это прекрасно и означает, что, хотя многие циклы остаются для нас невидимыми, есть простой способ их выявления. Для этого нужно просто посмотреть на качество своей жизни.
Точно так же происходит и с ментальными циклами. Если они устроены правильно, наша жизнь работает. Мы добиваемся успехов в работе, играх, отношениях, финансах и любви. Успех не означает совершенство: просто в нашей жизни присутствует минимум трения и минимум боли. Там, где возникает боль (внешняя (ряд неудач на работе или в отношениях) или внутренняя (депрессия или тревожность)), присутствует неудачный цикл. Боль можно считать превосходным индикатором необходимости анализа наших циклов.
Таким образом, улучшение качества ментальных циклов связано с выявлением ошибочного мышления, которое причиняет нам боль. Этот процесс можно сравнить с выявлением неправильных компьютерных кодов – то есть с отладкой.
Первый компьютерный баг
Если бы у компьютерных фанатов существовал свой Зал Славы, то в нем непременно висел бы портрет «Поразительной» Грейс Хоппер.
В 1947 году «Поразительной» Грейс Хоппер было сорок лет. Она работала программистом в Гарварде на огромном электромеханическом компьютере, напичканном реле, переключателями и вакуумными трубками Harvard Mark II. Это чудо техники могло вычислить квадратный корень примерно за пять секунд[54].
Как-то днем Хоппер вместе с другими инженерами начали рутинный тест функций сложения и умножения. И вдруг они заметили ошибку. В те дни все определяло железо, поэтому нужно было обследовать компьютер вручную, как автомобиль или стиральную машину. Только так можно было найти сломавшуюся деталь. Инженеры одну за другой снимали панели огромной машины, пока не обнаружили источник проблемы: в одно из реле попал маленький мотылек.
На протяжении многих лет компьютерщики пользовались словом «баг» (bug – жучок), обозначая им проблемы в железе. Даже предок всех компьютерщиков, Томас Эдисон, называл ошибки и проблемы в своих системах «багами»[55]. Можете представить себе радость и веселье инженеров из Гарварда, когда обнаружилось, что причиной бага стал баг в буквальном смысле слова, то есть обычный жучок! Им казалось, что они выиграли в комической лотерее!
Они с величайшим почтением вытащили мотылька, чтобы сохранить насекомое в анналах компьютерной истории. Они приклеили его в журнал со словами «первый реальный случай обнаружения бага»[56].
Грейс Хоппер с удовольствием рассказывала эту историю всю жизнь, и благодаря ей слово «баг», обозначающее системную ошибку, стало еще более популярным. На склоне лет она выступала с лекциями и рассказывала эту историю наряду с другими из своей поразительной карьеры. Выступая перед молодежью, она часто подчеркивала необходимость личных перемен. «Я обнаружила, что люди испытывают аллергию по отношению к переменам», – часто говорила она, объясняя, что только инновации и свобода разума дают людям свободу для открытия чего-то нового[57]. Можно сказать, что она призывала нас к отладке разума.
Спустя несколько десятилетий после смерти Хоппер, баги остаются частью жизни тех из нас, кто работает в технической сфере. Всем нам знакомы моменты, когда из-за системной ошибки, зависания компьютера или отключения электропитания мы теряли результаты четырехчасовой работы – и все из-за багов!
У разработчиков программ баги – это часть процесса. Программа почти никогда не работает правильно с первой же попытки. Программист пишет первый вариант, запускает, обнаруживает ошибки. Это нормально. Это часть работы. Вы находите ошибки (баги) в программных циклах, переписываете их и запускаете программу вновь. Вы делаете это снова и снова, сотни или тысячи раз, пока не получите рабочий прототип. Затем вы передаете свою программу в руки бета-тестеров. «Попытайтесь ее хакнуть», – говорите вы.
Эта команда начинает крутить вашу программу так и сяк, испытывать ее самыми неожиданными способами. И в программе обнаруживаются новые ошибки, которые вам предстоит исправить. Некоторые ошибки незначительны: неправильно написанное слово или пропущенная запятая. Другие очень серьезны: зияющая дыра в системе безопасности или ошибка системы навигации.
Предположим, мой друг сделал одну ошибку в своей блестящей программе: