Дзэн в искусстве программирования

Дзэн-программист

Дзэн-программист

Довольно часто коллеги спрашивают меня о том, почему я решил какую-то задачу именно так, а не иначе, или почему я считаю, что какой-то другой способ в будущем приведет к огромным проблемам, а я не могу ответить на эти вопросы чётко и вразумительно — вместо этого я ограничиваюсь общими фразами. Часто бывает, что чтобы объяснить выбранный путь, нужно сначала объяснить целую Вселенную, и открывая рот, я просто не знаю, с чего начать. Раньше я думал, что эту проблему можно преодолеть — стоит только научиться излагать мысли внятно и структурированно. Но потом я осознал, что эта невозможность простого и лаконичного объяснения идёт из самого того подхода, по которому я работаю уже долгие годы — программирования в стиле дзэн.

Дзэн

Сейчас слово «дзэн» благодаря стараниям маркетологов используется где ни попадя — меня ни капли не удивит, если однажды я увижу на полке магазина какие-нибудь дзэн-подгузники или дзэн-духи. Но чтобы понять, какой смысл изначально вкладывался в это слово, нужно проследить историю дзэн с древних времен и понять философские смыслы, которые он унаследовал от двух своих предков — буддизма и даосизма.

Учение буддизма было сконцентрировано на избавлении людей от страдания. Наблюдая за тем, как люди страдают от смертей близких им людей, от болезней, от страха собственной смерти, от зависти, от потерь, индийский философ Будда пришёл к выводу о том, что страдание возникает взаимозависимо с жаждой обладания жизнью, богатством, здоровьем, партнёром. Будда обнаружил, что эта жажда возникает из-за того, что люди привязываются к сотворённым в их собственном уме концепциям. Будда учил избавлению от страдания через избавление от привязанности к этим иллюзиям.

Все вещи с точки зрения философии Будды возникают взаимозависимо друг с другом в виде противоположностей: жизнь и смерть, здоровье и болезнь, любовь и ненависть, богатство и бедность. Совокупность всех этих противоположностей образует для нас невероятно сложную иллюзию мира и иллюзию существования собственного «Я», из-за чего и возникает страдание. Эта иллюзия мира и есть та самая наполненная страданиями сансара, из которой Будда предлагал с помощью избавления от иллюзий и привязанностей сбежать в полное прекращение страданий — нирвану. Наш ум, разделяя всё на признаки и конструируя абстракции, созидает иллюзорный мир сансары, а значит единственный шанс выбраться из него в нирвану — не думать.

Индийский философ Нагарджуна прокомментировал идеи Будды и довёл их до логического финала. Размышляя над тем, что мир есть иллюзия, образованная взаимозависимо возникающими противоположностями, он обратил внимание на то, что сансара и нирвана — точно такие же иллюзорные противоположности. А значит, даже само стремление попасть в нирвану порождает страдание, и единственный реальный способ попасть туда — не стремиться к этому.

Дзэн унаследовал эти идеи от буддизма и возвёл их в идеал. Если сансара и нирвана — это взаимозависимые концепции, и единственный способ попасть в нирвану — не стремиться в неё, то стоит принять реальность такой, какая она есть, и просто жить. Если «Я» иллюзорно, то и духовный рост невозможен — некому и некуда стремиться. Куда бы ты ни шел — ты уже там. Имеет смысл просто жить и работать. Когда голоден — ешь, когда устал — спи. Вот смысл учения дзэн.

— Что вы делали до просветления?
— Рубил дрова, носил воду, готовил еду.
— А что вы делаете после просветления?
— Рублю дрова, ношу воду, готовлю еду.
— А что изменилось?
— Всё!

У японцев то, что даёт дзэн, называется будзи — «ничего особенного». Сам Будда в одной из махаянских сутр говорит: «Я не получил даже самого меньшего от непревзойденного, полного пробуждения, и именно поэтому оно называется «непревзойденным, полным пробуждением».

От даосизма дзэн унаследовал идею Дао — неописуемой силы, своим спонтанным потоком созидающей Вселенную. Эта сила не разумна, она просто идёт во все стороны сразу и творит мир. Ближайшей современной аналогией Дао можно считать эволюцию живых существ при помощи естественного отбора — этакого описываемого Докинзом слепого часовщика.

Согласно Лао-цзы, Дао не может быть описано словами. Когда мы используем слова, то порождаем противоположности, а Дао вне их:

Дао, описанное словами, не есть истинное Дао.

Когда каждый признает красоту красивой, возникает уродство;
Когда каждый признает добро добрым, возникает зло.
«Быть» и «не быть» порождают друг друга;
Трудное и простое осознаются друг через друга;
Длинное и короткое противопоставляются друг другу;
Высокое и низкое определяют друг друга…
До и после следуют друг за другом

Дао есть нечто туманное и неопределенное.
Какое неопределенное! Какое туманное!
Однако в нем есть образы.
Какое туманное! Какое неопределенное!
Однако в нем есть вещи.
Какое неясное! Какое непонятное!

Таким образом, согласно даосизму и дзэн-буддизму, наша Вселенная — это просто напросто расплескавшееся в безбрежной пустоте Дао. И суть человеческой жизни — не пытаться противостоять потоку Дао, а подчиниться ему и оседлать волну. Это идеальное поведение даосы называют «у-вэй» — недеяние.

В своей книге «Путь дзэн» британский философ Алан Уотс пишет:

Для даосской ментальности бесцельная, пустая жизнь не означает чего-то угнетающего. Напротив, она означает свободу бесцельно блуждающих облаков и горных ручьев, цветов в недоступных ущельях, красоту которых все равно никто не увидит, и морского прибоя, вечно омывающего песок.

Программирование в стиле дзэн

Дзэн, как наследник буддизма и даосизма, возводит в идеал полное отключение мышления и подчинение потоку. В своей книге «Дзэн в искусстве стрельбы из лука» немецкий писатель Ойген Херригель пишет:

Я напомнил Мастеру, что нахожусь в Японии уже четвертый год, и что срок моего пребывания в этой стране ограничен.
— Путь к цели не может быть измерен! Причем здесь недели, месяцы, годы?
— А что, если мне придется прервать занятия на полпути? — спросил я.
— Если ты по-настоящему перерастешь свой эгоизм, ты сможешь прервать занятия в любой момент. А пока продолжай заниматься.

И вот мы начали все с самого начала, будто то, чему я уже научился, было мне совсем не нужно. Однако ожидание в точке наибольшего напряжения было для меня таким же неудачным, как и раньше. Создавалось впечатление, что я никогда не смогу выйти из этого затруднительного положения.

— Как может выстрел произойти, если «я» не отпускаю тетиву? — спросил я однажды у Мастера.
— «Оно» отпускает тетиву, — ответил он.
— Я слышал эти слова от вас уже несколько раз. Разрешите мне задать вопрос по-другому. Как я могу, не осознавая себя, ждать выстрела, если «меня» там уже нет?- «Оно» ждет в состоянии наибольшего напряжения.
— Кто такой или что такое это «Оно»?
— Как только ты узнаешь это, я тебе больше не понадоблюсь. Если же я объясню тебе словами то, что ты сам еще не пережил, я буду худшим из учителей, который не достоин учить других! Поэтому давай прекратим наш разговор и продолжим занятие.

Проходили недели, но я не делал никаких видимых успехов. В то же время я обнаружил, что отсутвие прогресса нисколечко не волнует меня. Может быть, мне надоело заниматься? Достигну ли я мастерства в искусстве стрельбы из лука, осознаю ли я загадочное «Оно», о котором говорит Мастер, станет ли мне когда-нибудь дзэн более понятным — все это вдруг показалось мне столь отдаленным и несущественным, что я полностью перестал беспокоиться. Несколько раз я собирался поведать об этом Мастеру, однако каждый раз, оказавшись перед ним, не мог собраться с духом. К тому же, я был убежден, что не услышу от него ничего, кроме монотонно повторяемых слов: «Не спрашивай, занимайся!» Поэтому я перестал задавать вопросы и перестал бы приходить не занятия, если бы Мастер настоятельно не требовал этого. Так проходил день за днем, я выполнял свою профессиональную работу и даже перестал сожалеть о том, что уже несколько лет бессмысленно прилагаю усилия.

И вот однажды после того, как я выстрелил, Мастер низко поклонился и прервал течение урока восклицанием:
— Вот сейчас выстрелило «Оно»!

Я с недоумением уставился на него. Когда до меня в конце концов дошел смысл его слов, я не смог удержаться и радостно вскрикнул.

— То, что я сказал тебе, — произнес Мастер строгим голосом, — не похвала, а факт, который не должен тебя касаться. Не думай также, что мой поклон относился к тебе, потому что ты не имеешь никакого отношения к этому выстрелу. Просто в этот раз ты не осознавал себя и находился в состоянии наивысшего напряжения без всякой цели, поэтому выстрел отвалился от тебя, как с дерева падает созревший плод. А теперь продолжай заниматься так, словно ничего не произошло.

Любое действие с точки зрения дзэн должно стать медитацией. Не важно что ты делаешь — убираешься, готовишь еду, занимаешься сексом или программируешь. Всё должно стать медитацией и растворением в потоке Дао.

В книге «Хохот шамана» русский писатель Владимир Серкин описывает подобное растворение в потоке в процессе постройки коптильни:

 — Человек постоянно думает о своих делах, потому что у него нет другой практики бытия.
— Но вот ты строишь коптильню. Ты же думаешь в это время о ней?
— Нет.
— А как же ты ее строишь?
— Она сама строится моими действиями.
— Но ты же обдумывал цели своих действий.
— Только общую.
— Человек так не может.
— Естественно, потому что обычный человек думает словами.
— Если не буду думать о том, что делаю, то ничего не смогу сделать.
— Правильно, пока ты не освоишь новую практику.
— Как ты это делаешь?
— Когда ты берешь что-то рукой, ты не знаешь, почему рука двигается, просто
делаешь это. Я владею собой целиком, как ты рукой. Поэтому у меня коптильня просто строится, а как — объяснить очень трудно.
— Но я могу объяснить студентам, почему рука двигается. Мотив — цель — программа — акцептор действия — нервные импульсы — сокращения мышц…
— Мифология. Студенты тебе, может быть, и поверят. Но ты сам знаешь, что здесь много пробелов.
— Ну дай другое объяснение хотя бы такого же уровня.
— Не дай бог, студент начнет по схеме в учебнике пытаться двигать рукой. Так же и тебе нужно практиковать, а не искать объяснения. Только понемногу, постепенно.

Полное отключение мышления делает процесс программирования невероятно простым. Ты становишься кодом, а код — тобой. Код пишет сам себя. Паттерны программирования нужно знать, но невозможно свести программирование, это великое живое искусство, к одним только паттернам. Первая строчка «Дао дэ цзин», основополагающего трактата даосизма, утверждает, что Дао невозможно описать словами и свести к концепциям. Искусство программирования так же нельзя свести к алгоритму. Программировать способны только человек и искусственный интеллект, а их мышление невозможно описать с помощью слов.

Обучение программированию в стиле дзэн

Если искусство программирования невозможно описать словами, то как же можно учить ему начинающих программистов? Идеальный с точки зрения дзэн способ обучения описывает в одном из своих интервью актёр Вадим Демчог:

Именно поэтому в восточных традициях возникает такой культ учителя, который просто держит поле. Он ничего не делает, в большинстве традиций он даже ничему не учит, он не говорит ничего, никаких прописных истин. Он просто держит зеркало потенциала сознания ученика. Всё. И ученик делает массу разных ошибок, оступается, но каждый раз, приходя к учителю, он смотрит ему в глаза и получает обратную связь — он понимает «каким я могу быть», он смешивает себя с состоянием сознания учителя. И вот эти технологии — они внеинтеллектуальные. Учитель забирает ученика в свою целостность, и там, получая инициацию, ученик выходит наружу и снова начинает интегрировать, притягивать, изучать, подбирать слова этому опыту. На Западе такой традиции, к сожалению, нет. Здесь всё через голову, здесь всё через трафареты, через построение Вавилонских башен и потом через необходимость их разрушения.

Так обучали программировать меня, так учу и я…

© Habrahabr.ru