Записки программиста А.

Часть 2

0110111

Программист А. открыл окно Notepad, напечатал слово BEGIN и спросил начинающего индийского программиста:

— Что это?

— Это оператор BEGIN, означающий начало программы, — ответил начинающий программист.

— Хорошо, — сказал программист А. и стер слово BEGIN. — А что это теперь?

— Теперь там ничего нет, — ответил начинающий программист.

— Неверно, — сказал А. — Начало программы по-прежнему там. BEGIN — всего лишь слово на одном из языков программирования, оно и близко не может передать истинного значения “начала программы”. То, что ты хочешь написать, уже существует. Ты не должен писать ни строчки кода, пока не осознаешь эту истину. Понял?

— Понял, — ответил начинающий программист.

— Ничего он не понял, — ворчал программист А. вечером, пытаясь разобраться в 2000 строк кода, которые успел в первый же день работы наваять начинающий индийский программист.

0111000

Программиста А. спросили: What's the difference between love and sex?

— Love takes two, — ответил программист А.

0111001

Программист А. проснулся как-то осенью и огляделся. Он сидел на рабочем месте перед своим монитором с открытым на нем пустым окном редактора. Часы показывали 11:11 am, индийские программисты вокруг с энтузиазмом печатали новый код, QA захлебывался в нескончаемом потоке багов, менеджеры с озабоченными лицами расходились с очередного митинга. Deadline приближался, но проект был выполнен лишь наполовину.

В следующий раз программист А. проснулся в декабре. Он по-прежнему сидел на рабочем месте перед пустым окном редактора, часы по-прежнему показывали 11:11 am, индийские программисты все так же печатали новый код, QA захлебывался в нескончаемом потоке багов, а менеджеры с озабоченными лицами расходились с очередного митинга. Deadline приближался, но проект был выполнен лишь на четверть.

В следующий раз программист А. проснулся в марте. Часы показывали 11:11 pm, deadline был через неделю, и А. уже несколько дней сидел в офисе, практически не вылезая, пытаясь хоть как-то связать вместе куски кода.

— Что за хренотень! — ругался про себя А, в сотый раз добавляя явную инициализацию для переменной, которую начинающий индийский программист использовал в условном операторе. — Сон какой-то у меня стал прерывистый! К врачу, что ли, сходить…

0111010

Однажды утром программист А. наткнулся на работе у кофеварки на двух индийских коллег, которые о чем-то горячо спорили.

— О, вот ты рассуди нас, — сказал один из них. — Мы поспорили, когда лучше продавать акции, а когда лучше покупать.

— А? — сказал программист А.

— Я считаю, что акции нужно покупать, когда они падают, и продавать, когда растут. Когда акции падают, их можно купить дешевле, поэтому их нужно покупать. Когда акции растут, невозможно предсказать, когда рост остановится, поэтому их нужно продавать, пока они не упали.

— Я считаю, что акции нужно покупать, когда они растут, и продавать, когда они падают, — сказал второй индийский программист. — Когда акции растут, цена их увеличивается, поэтому их нужно покупать. Когда акции падают, невозможно предсказать, когда падение остановится, поэтому их нужно сразу же продавать. Кто из нас прав?

Программист А. подумал, но рассудить их не смог.

— Ну и какой же ты после этого программист! — пристыдили его индийские коллеги, и отвернувшись, продолжали свой спор.

0111011

Выпив как-то пива, программист А. пошел прогуляться ночью в парк. Свернув на одну из боковых дорожек, он неожиданно увидел человека, сидящего на скамейке у озера, в кругу лунного света. Человек был одет в длинное темное пальто, а на голове у него было что-то вроде военной фуражки. Приглядевшись получше, программист А. разглядел, что это женщина, и даже узнал ее по виденным в интернете фотографиям. Это была адмирал Грейс Хоппер, автор языка КОБОЛ и первого в мире компилятора. Кроме этого Грейс Хоппер нашла первый в истории компьютерный баг, оказавшийся молью, застрявшей в соленоидах гигантского калькулятора. Сейчас от нее исходило странное свечение, и она смотрела на программиста А., широко улыбаясь.