Записки программиста А.
Шрифт:
Программист А. подумал, но рассудить их не смог.
— Ну и какой же ты после этого программист! — пристыдили его индийские коллеги, и отвернувшись, продолжали свой спор.
Выпив как-то пива, программист А. пошел прогуляться ночью в парк. Свернув на одну из боковых дорожек, он неожиданно увидел человека, сидящего на скамейке у озера, в кругу лунного света. Человек был одет в длинное темное пальто, а на голове у него было что-то вроде военной фуражки. Приглядевшись получше, программист А. разглядел, что это женщина,
— Присаживайся, — сказала Грейс Хоппер. — Я тебя жду.
Программист А. присел на край скамейки.
— Как дела на работе? — спросила Грейс.
— Баги замучили, — пожаловался программист А. — Не видно им конца. Больше ни на что времени не остается.
— Хорошо, — сказала женщина-адмирал. — Я вижу ты понял первую истину — дуккху. Жизнь программиста — это непрерывная череда багов, страданий по их нахождению и суеты по их исправлению.
— Да уж, — сказал программист А. — Как может быть иначе, если каждый пишет код, как его левая нога захочет, и никто ничего не тестирует!
— Я вижу, что ты понял и вторую истину, самудаю, — сказала женщина. — Для непрерывной череды багов есть причина.
— И что дальше? — скептически спросил программист А.
— Дальше ты должен понять, что все это можно изменить.
— Как? — удивился программист А.
— Этого я тебе пока сказать не могу, — сказала Грейс. — Но уверяю тебя, даже просто понимание того, что это можно изменить, наполнит тебя неизбывной радостью и блаженством.
— Поэтому ты все время и улыбаешься? — спросил программист А.
— Что? — переспросила Грейс.
— Все время улыбаешься — от понимания? — уточнил А.
— А, это, — сказала Грейс. — Нет. Улыбаюсь я, потому что мне классный анекдот вчера рассказали. Приходит, значит, мужик в публичный дом, и…
Они посидели еще какое-то время, рассказывая друг другу анекдоты, потом Грейс Хоппер исчезла, растаяв в воздухе, а программист А. долго оставался на скамейке, глядя на блики лунного света в озере и вспоминая анекдоты, рассказанные Грейс. С лица его не сходила блаженная улыбка.
К программисту А. приставили в помощники начинающего молодого программиста для работы над проектом.
— Ну, и чего ты знаешь? — спросил программист А.
— Все знаю, — ответил помощник. — Знаю языки программирования — Java, C++, Delphi, NET. Базы данных знаю — Oracle, SQL Server, DB2, работал и с MySQL, и с PostgreSQL. Знаю Perl, PHP, и Python. Не попаду впросак и с Web-технологиями: ASP, JSP, SOAP, AJAX и Web-сервисы мне хорошо известны. Разбираюсь в вычислительных методах и теории алгоритмов, легко отличу машину Тьюринга от машины Поста. Знаю OOP, AOP, UML и модели программирования, extreme programming и TDD, да много чего еще. Какое дадите мне первое задание?
— Читай документацию, — сухо сказал А.
Через две недели программист А.
— Так чего же ты знаешь?
— Кое-чего знаю, — ответил тот. — Знаю, что есть языки программирования, и что есть у них общее и различия. Знаю про базы данных, работал с несколькими. Есть многочисленные языки и технологии в Web-программировании, знаю некоторые из них. В общих чертах с архитектурой программных приложений, вроде бы, знаком. Ну и еще теорию кое-какую припоминаю. Не дадите ли мне теперь задание?
— Читай пока документацию, — уже мягче сказал программист А.
Еще через две недели они снова встретились, и А спросил:
— Что ты теперь знаешь?
— Кажется, будто уже ничего не знаю, — ответил начинающий программист. — Все языки перемешались, не помню, в котором нужно писать try, в котором when, только знаю, что результат будет один и тот же. Базы данных для меня все на одно лицо, понимаю, как работают, а что с ними делать — не знаю. В интернете — куча технологий, протоколов один поверх другого, а делают все одно и то же, c одинаковым результатом. Теорий разных много, а говорят все одно. Все их знают, никто им не следует, а когда пытаются следовать, получается только хуже.
— Вот теперь ты готов к первому заданию! — обрадовался программист А.
— Ну тебя в ж…, сам делай свое задание, — сказал начинающий программист и, хлопнув дверью, ушел.
— Какая хорошая нынче молодежь пошла, — думал программист А., глядя ему вслед и смахивая навернувшуюся слезу. — Способные, не то, что мы! Все на лету схватывают. Молодцы!
И он, открыв бутылку Sam Adams, уселся за компьютер.
Программист А. сидел в ирландском пабе Hennessy 's в Бостоне. В окно был виден оживленный бульвар через дорогу, и за ним — ступени площади Говермент-центра. Мимо окна то и дело проходили веселые компании, в руках многие держали большие пластиковые стаканы с пивом. Незнакомая девушка помахала ему сквозь стекло. На столе перед программистом А. стояла полуторапинтовая кружка Гиннесса. Напротив А. сидел Святой Патрик, в накидном плаще, с длинным посохом в руках, и рассказывал свою историю.
— Ну и вот, выкрали меня, увезли в Ирландию и продали там в рабство, — говорил Патрик. — Хозяин сделал меня пастухом, и шесть лет я пас овец у подножий местных гор практически в одиночестве. Потом я услышал голос, который приказал мне убежать и вернуться домой. Я убежал, попал на корабль, плывущий в Англию, но на пол-пути был опять захвачен разбойниками, продан в рабство, а через два месяца снова убежал и семь лет скитался по Европе. Потом осел в одном из монастырей и начал учиться богословию.
Программист А. поднял было кружку, но Патрик жестом его остановил. Программист А., вздохнув, поставил кружку обратно на стол.
— Ну короче, — продолжал Патрик. — В конце концов монастырь послал меня в Ирландию для обращения ее в христианство. Чтобы привлечь внимание короля, я разжег огромный костер в ознаменование начала весны, что никто не имел права делать раньше короля. Был большой шум, но король неожиданно отнесся ко мне с пониманием, пригласил во дворец и вообще разрешил делать все, что я хочу.