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