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