начинать сначала - но уже во всеоружии горького опыта.
Рыцарь Программирования, однажды начав писать программу, идет до конца. Рыцарь знает, что наилучшие наставники - это люди, вместе с которыми он каждый день пишет код.
Опасно спрашивать совета. Стократ опасней давать совет. Когда Рыцарю нужна помощь, он прежде всего старается понять, как ведут себя в затруднительных положения его напарники - как они пишут или почему не пишут. Утомясь или оказавшись в одиночестве наедине с машиной, он не уносится мыслями к далеким перспективам, но ищет те, что находятся вблизи, и стремится сделать их реальностью.
Рыцарь Программирования знает - самая маленькая и неизвестная никому программа в один день может стать тем, что потребуется миллионам.
Рыцарь программирования делит свой мир с программами, которые любит. И в минуты, когда он самозабвенно отдается творчеству, появляется Враг со скрижалями в руках.
На одной скрижали написано: 'Думай в первую очередь о себе. Твои программы - твоя интеллектуальная собственность. Стремись продать их подороже'. На другой читает Рыцарь такие слова: 'Кто ты такой, чтобы писать великие вещи? Неужели ты не видишь насколько мало и неполезно созданное тобой?'.
Но Рыцарь, хоть и согласен с тем, что выбитое на них отнюдь не лишено смысла, бросает наземь скрижали, и они рассыпаются в прах. А Рыцарь по-прежнему воодушевляет себя и своих товарищей.
Порой Рыцарь вспоминает одну из легенд, передаваемых из поколения в поколение Рыцарями Программирования друг другу:
'Однажды учитель проходил мимо ученика. Учитель заметил, что внимание ученика поглощено карманной компьютерной игрой. 'Прости меня,' сказал он, 'могу я посмотреть?'
Ученик отвлекся от игры и подал ее учителю. 'Я вижу, тут предлагается три уровня игры: Легкий, Средний и Тяжелый,' сказал учитель. 'Однако каждое такое устройство имеет еще один уровень игры, когда оно не старается ни победить, ни быть побежденным.' 'Прошу вас, великий учитель,' взмолился ученик, 'как найти этот таинственный уровень?' Учитель бросил устройство на пол и раздавил ногой. И внезапно ученик обрел просветление'.
Рыцарь верит, что способен преобразить мир.
Рыцарь Программирования иногда думает: “То, что я не сумел создать, не будет создано никогда”. Это не совсем так: он должен творить, но должен и покорно ждать, пока найдется тот, кто вынесет его творение на свет.
Рыцарь умеет сохранить равновесие между самостоятельной работой и работой командной.
Потребность создавать программы заложена в самом его естестве, подобно потребность есть и пить, подобно потребности любить труд. Если солнце заходит, а не Рыцарь не испытал счастья от созданного им за день – значит, что-то неправильно.
Рыцарь Программирования пользуется одиночеством, но не позволяет, чтобы одиночество воспользовалось им. Рыцарь знает, что невозможно жить в состоянии расслабленности и безделья. Но он умеет различать творческое напряжение и показную суетливость и никогда не путает одно с другим.
Рыцарь Программирования всегда добивается равновесия между знанием и желанием. Рыцарь Программирования, который чрезмерно полагается лишь на остроту своего разума, в конце концов непременно недооценит требуемое ему для реализации поставленных перед ним задач время.
Не следует забывать: порой мощь разнообразных обстоятельств действеннее самого изощренного хитроумия. Долго может длиться его битва над созданием работающего кода и битва эта истощает силы. И когда сроки работы над заданием подходят к концу, ни блеск, ни ум, ни убедительность доводов, ни то, что называют “шарм”, не могут предотвратить беду.
И потому Рыцарь Программирования отдает должное грубой силе времени, противостоящей ему.
Рыцарь Программирования никогда не спешит. Время работает на него, и он, зная это, учится обуздывать нетерпение и избегать необдуманных решений. Шаг его нетороплив, но тверд. Он чувствует, что близится время, судьбоносное для истории человечества, но прежде, чем преобразить мир, должно измениться самому.
Есть две главные стратегические ошибки – поспешить, выступив раньше, чем настанет благоприятный момент, и промедлить, упустив его. И потому, что избежать и того и другого, Рыцарь каждый программный проект рассматривает как единственный в своем роде, и не пользуется чужими мнениями, общими формулами и готовыми рецептами.
Рыцарю Программирования знакомо уныние. Иногда ему кажется, что он не в силах решить поставленные перед ними задачи, что программа, над которой он работает, никогда не будет закончена. На протяжении многих дней и ночей он вынужден пребывать в угнетенном состоянии и никакое новое событие не может вернуть ему прежнего воодушевления.
“Работа его окончена”, - говорят друзья. Рыцарю больно и стыдно слышать такие слова, ибо он знает, что еще не достиг цели, к которой стремился. Однако он упорен и не бросает начатое не полдороги. И вот в минуту, когда он меньше всего этого ожидает, к нему приходит озарение и прежде невыполнимая задача кажется удивительно простой. И тогда работа вновь поглощает его, и пальцы вновь четко и быстро стучат по клавиатуре, и разум находит решения мгновенно.
Рыцарь Программирования знает, сколь важно наитие. В разгар работы, в горячке проекта, в условиях сжатых сроков, когда нет времени размышлять о том, какое из многих альтернативных решений выбрать, Рыцарь действует по наитию.
“Сумасшедший”, - говорят о нем любители продумывать каждую деталь заранее, расходую драгоценное время.
“Строит воздушные замки”, - говорят скептики.
“Как может он выбирать то, что лишено логики?”, - недоумевают третьи.
Но Рыцарь знает: наитие – это азбука, с помощью которой можно постичь Дао, и потому продолжает прислушиваться к голосу внутри себя.
Рыцарь Программирования всегда стремится к совершенству. За каждой строкой его кода – столетия мудрости и размышлений. Каждая программа, каждый алгоритм должен сочетать в себе всю силу и проворство Рыцарей прошлого. Каждое движение его мысли и рук чтит те движения, которые предшествующие поколения Рыцарей пытались передать нынешним через Традицию.
Иногда Рыцарь сидит со своими товарищами поздними вечерами в общем кругу. Они рассказывают о достигнутых ими на своей Стезе успехах и радушно принимают приближающихся к ним программистов – будущих Рыцарей, ибо каждый из них гордится своей жизнью и участием в великом деле преображения этого мира.
Рыцарь доверчив. Он верит в чудеса – и чудеса происходят. Он верит, что человеческая мысль способна преобразовывать жизнь – и жизнь людей этого мира постепенно становится иной.
Рыцарь Программирования совершенствует красоту своего кода.
Рыцарь Программирования преображает свой разум.
Рыцарь Программирования учится строить великое.
Рыцарь Программирования никогда не свернет со своей стези.
Рыцари Программирования преобразят этот мир.
Когда голос его смолк, была уже ночь. Великий Программист и мальчик долго смотрели на открывающийся им из вычислительного центра вид.
Великий Программист встал.
“Прощай, - сказал он. Теперь ты понял, что значит наш путь – он нераздельно слит с магическим и манящим миром машин, миром цифр, миром технологий. Но это и мир с шумом ветра, криками чаек, шелестом весенней листвы – потому что мир в мире гораздо большем. Ты сможешь полюбить наш мир.”
“Скажи мне, кто ты?”, - спросил мальчик. Но голографический образ Великого Программиста уже таял, сопровождаемый мерным шелестом и тихим гудением машин.