10 PRINT “I AM THE WORLD’S GREATEST HACKER”
20 GO TO 10
Запуск этой программы заставлял компьютер бесконечно показывать слова «I AM THE WORLD GREATEST HACKER» («Я – величайший хакер мира»), доказывая безмерный программистский талант моего друга.
Мой приятель создал цикл – один из основных элементов компьютерного программирования. Когда мы пишем программы, циклы помогают достичь результата. Мало того – циклы помогают достичь результата эффективно. Циклы – это короткий путь. Да, конечно, мы можем написать:
И писать так столько, сколько нужно. Тогда в нашей программе будет тысяча строк – а мы всего лишь досчитаем до 1000. А можно написать по-другому:
Результат тот же самый, а насколько элегантнее выглядит программа.
У нас есть расчетные циклы, которые выполняют определенные команды определенное количество раз («К каждой строке этого листа применить это форматирование»). У нас есть условные циклы, которые выполняют определенные команды при условии, что определенное условие верно. («Каждую минуту проверять, настал ли полдень, и если полдень настал, включить будильник».) У нас есть бесконечные циклы – и мой приятель это отлично знал.
Сложность современного программного обеспечения способна свести с ума: циклы громоздятся один на другой бесчисленными слоями. Предположим, вы читаете этот текст на электронном устройстве. Программный цикл высшего уровня может сообщить вашему устройству, какое содержание и каким образом нужно отображать на экране. Внутри этого цикла есть другие циклы, которые управляют самим читательским приложением. Копните глубже, и вы обнаружите циклы, управляющие операционной системой, которая управляет приложениями. А еще ниже расположены циклы, управляющие самим устройством: батареей, часами, экраном. Циклы наслаиваются друг на друга, их сложность нарастает – и они становятся все более удивительными.
Когда вы используете текстовый редактор, звоните или играете в видеоигру, то не замечаете циклов. Циклы образуют абстрактное представление высшего уровня, которое кажется совершенно не связанным с программированием, происходящим за сценой. Все сложнейшее программное обеспечение, которое мы воспринимаем, как должное, состоит из простейших блоков – например, циклов. Это одна из самых удивительных особенностей компьютеров… и нашего разума.
Наш разум основан на циклах
Как и компьютерные программы, наш разум основан на циклах.
Вспомните, какими беспомощными и бесполезными мы были в младенчестве. Словно наши родители получили новый компьютер, на котором ничего не установлено – нет даже операционной системы. Его включили, но родители получили лишь конфигурационное меню низшего уровня, которое обучает младенца сосать, плакать и какать.
За шесть месяцев ребенок овладевает базовыми навыками: получает сенсорную информацию, на рудиментарном уровне осознает причинно-следственную связь, начинает овладевать языком и испытывает простейшие эмоции. Осознаем ли мы это путем проб и ошибок, с помощью родительских наставлений или просто в силу удачи, процесс программирования идет путем простого повторения, практики в основополагающих навыках.
К трем годам мы становимся невероятно сложными существами: мы ходим, бегаем, говорим законченными предложениями и искусно манипулируем родителями. У нас появляется сложная операционная система, которая учится программировать себя посредством непрерывного потока вопросов. («Почему на небе облака? Кто такие деревья? Где маффины?») Все эти навыки, привычки и черты характера закрепляются постоянным повторением: циклы громоздятся на циклы.
С годами у нас формируются все более сложные ментальные циклы. Сначала мы узнаем, что некоторые вещества нужно брать в рот. Потом мы узнаем, что одни вещества вкуснее других. Потом мы узнаем, что это называются «едой». А потом мы узнаем, как получить больше той еды, которая нам особенно нравится.
В течение всего времени мы постоянно развиваем ментальные модели – мыслительные привычки или циклы, – которые в будущем экономят нам время: «Я люблю только белую еду. Обычно я получаю еду после звука «буу-буу». Бабушка дает более вкусную еду, чем родители». Эти циклы оптимизируют наше поведение, повышая эффективность получения желаемого. Наш код становится все более элегантным.
В школе мы учимся путем повторения. Сначала мы изучаем концепцию цифр, затем учимся оперировать этими цифрами, потом учим абстрактные слои – алгебру и тригонометрию. И повсюду циклы – практика, упражнения, экзамены. Позже эти циклы помогают нам справляться с конкретными задачами – распоряжение деньгами, ремонт дома, приобретение бизнеса. Наша операционная система полностью сформирована, и в ней начинают появляться специализированные приложения.
Общество внедряет в нас свои ценности через постоянное повторение и подкрепление: воскресная школа, журналы для подростков, поп-музыка, фильмы Диснея, телевизионные шоу. И постоянное повторение рекламы – благодаря этому в нашей операционной системе формируются циклы, подсказывающие, что нужно купить. Всплывающие рекламные сообщения и шпионские программы устанавливаются одно за другим, замедляя работу нашей операционной системы.
Пожалуй, самые мощные циклы – те, которые формируют наше представление о себе и восприятие мира. Если мы выросли в стабильном, безопасном доме, то воспринимаем мир как безопасное и комфортное место. Такое убеждение формируется благодаря постоянно повторяющемуся циклу повседневного опыта. Если мы выросли в доме хаотическом и несчастливом, где постоянно сталкивались с ложью и насилием, мир кажется нам тревожным, нечестным местом.
Если нам постоянно твердили, что мы талантливы, то мы вырастаем с верой в себя. Столкнувшись с трудностями или препятствиями, мы говорим себе: «Я умен и смогу с этим справиться». Если же нам будут постоянно твердить, что мы ужасны и глупы, то мы вырастаем в этом убеждении. Сталкиваясь с проблемами, мы думаем: «Вот так всегда! Еще один неудачный проект!»
Если наши родители ведут себя так, словно денег им всегда мало, наши ментальные циклы формируются соответственным образом: «Я должен экономить каждый пенни, иначе окажусь в нищете». И совершенно не важно, что денег у нас достаточно и подобные мысли не имеют под собой никаких оснований. Если наши родители тратили деньги, не задумываясь, или смело проигрывали их, ментальные циклы формировались иначе: «Это всего лишь деньги, а мне позарез нужен этот жираф-альбинос!»
Если у родителей были стабильные, гармоничные отношения, мы можем усвоить аналогичный цикл: «Нужно идти на компромиссы в отношениях с партнером. Мы с ним – одна команда». Если родители постоянно ссорились, даже после развода, то у нас формируется такой цикл: «Долгосрочные отношения невозможны, я обречен жить в тоске и одиночестве».