– Что вы здесь делаете? – спросил он.
– Жду тебя, – пришел ответ.
Хотя минуло уже много лет, незнакомец выглядел точно так же, как и раньше, в день их первой встречи. Он протянул мальчику чистую тетрадь.
– Пиши: «В то мгновение, когда человек, решивший стать Истинным Программистом, делает свой первый шаг, он познает лежащий перед ним Путь и Дао Программирования».
– А кто такой этот «Программист»?
– Сам знаешь, – с улыбкой ответил незнакомец. – Тот, кто способен постичь чудо жизни, бороться до конца за то, во что верует, и преобразить этот мир.
Мальчик проглядел страницы тетради. Незнакомец снова улыбнулся.
– Пиши о Дао Программирования, – ответил он.
Дао Программирования
В то мгновение, когда человек, решивший стать Истинным Программистом, делает свой первый шаг, он познает лежащий перед ним Путь.
Истинные Программисты стремятся, чтобы никогда не померкла для мира полезность их программ. Они живут в мире сем, они не чуждаются других людей. Бывает, что они пускаются в новый путь без знания нужных языков и подходов. Нередко их обуревает страх. Не всегда кодируют они правильно. Они страдают из-за пустяковых багов в собственных творениях, они бывают неспокойны и нетерпеливы, а порой им кажется, что они не способны расти над собой. Нередко они убеждены, что недостойны похвалы за созданное ими. Не всегда уверены они в том, что же именно делают они там – в этом беспредельном мире битов и байт. Они проводят ночи без сна, страдая, что их программа может оказаться невостребованной.
Вот потому они – Истинные Программисты. Потому, что ошибаются. Потому, что терзают себя вопросами. Потому, что ищут причину собственных ошибок – ищут и, без сомнения, когда-нибудь найдут.
* * *
Всякому Программисту уже случалось испытывать страх перед новой, еще не написанной им программой. Всякому Программисту уже случалось создавать недостойный код. Всякому Программисту уже случалось брести неверным путем. Всякому Программисту уже случалось терзаться из-за сущих пустяков. Всякому Программисту уже случалось приходить к выводу, что он – не настоящий Программист. Всякому Программисту уже случалось поступаться своим творческим долгом. Всякому Программисту уже случалось говорить новому заказчику «да», когда хотелось сказать «нет». Всякому Программисту уже случалось ненавидеть те программы, которые он когда-то любил.
Вот потому он и вправе называться Программистом – потому, что прошел через все это и не утратил надежды стать лучше, чем был.
* * *
Истинный Программист чтит основное положение И. Цзина: «Настойчивость полезна». Он знает, что упрямство не имеет ничего общего с настойчивостью. Ибо бывают проекты, работа над которыми длится дольше, чем это необходимо, и они истощают силы и гасят воодушевление. И в такие минуты Программисту приходит на ум: «Затянувшийся проект в конце концов уничтожает и пыл его работников». И тогда он прекращает работать над программами и дает передышку самому себе, вновь возвращаясь в мир, который другие считают единственно существующим. Но никогда не упустит он момент вдохновения, чтобы вновь продолжить свое творение.
* * *
Истинный Программист с великим тщанием изучает то, что намерен написать. Как бы ни был труден путь к цели, всегда есть приемы и способы одолеть преграды. Программист ищет обходные пути, старается сделать так, чтобы душа и тело исполнились стойкости, а разум – спокойствия, без которых нельзя достойно закончить свою работу.
Но вот, уже продвигаясь по пути создания программы, сознает Программист, что существуют трудности и препятствия, которых он не принимал в расчет. Если он станет дожидаться пришествия Музы Программиста и бояться допустить ошибки, то никогда не сдвинется с места. Чтобы сделать первый шаг, нужна смелость, ибо все предусмотреть невозможно – особенно при проектировании, особенно при кодировании.
* * *
Истинный Программист знает, что иные алгоритмы имеют свойство повторяться. Часто сталкивается он с трудностями, которые некогда уже преодолевал, и оказывается в сложном положении, из которого уже выходил с честью, и это смущает его дух: ему кажется, что если все повторяется, то он топчется на одном месте, не в силах двинуться вперед.
– Я ведь уже писал это, – сетует он сердцу своему.
– Писал, – отвечает ему сердце. – Но так и не реализовал до конца свои идеи.
И Программист тогда сознает, что судьба посылает ему повторение опыта с единственной целью – научить его тому, что он не пожелал усвоить сразу.
* * *
Истинный Программист знает свои слабые стороны. Но знает и то, чем одарен. Иные жалуются: «Нам не представилось возможности». Быть может, они правы, но Программист никогда не даст себе перестать программировать по этой причине – нет, он напряжет до последнего предела силы и дарования.
Он знает, что настоящие программисты не боятся сложных программ, ибо уверены в своей силе. И тогда он старается постичь, на что же он может рассчитывать. И он проверяет свое вооружение, а состоит оно из трех вещей – Знания, Вдохновения и Веры. Если в наличии и первое, и второе, и третье, Программист без колебаний продолжает путь.