Компьютерный
юмор.

Бусидо програмиста на IBM PC
Программистов во всем мире
считают разновидностью ПСИХОВ, причем не таких уж
безобидных. В обществе во всю гуляют ужасные рассказы о вирусах и их безумных
авторах, готовых ради ложно понятого самоутверждения ставить под угрозу
работу целых отраслей промышленности.
Если забыть о вирусах, то больше о программистих ничего не известно. Многолетние наблюдения за
ними показывают, что в основном они безобидные и приветливые люди, увлеченные
своей работой. Иногда их трудно понять. Для облегчения вашего общения с
близким, знакомым или подчиненным программистом предлагаем вашему вниманию
"Бусидо программиста...", т.е. список
моральных и жизненных правил, которым вольно или невольно следует любой
программист.
Бусидо носит
приблизительный характер, и, строго говоря, необязательно к исполнению. Это
"рекомендованное чтение", обобщение результатов наблюдений, делать
которые вообще никто не просил.
После "Бусидо"
приводятся комментарии, объясняющие используемые термины, жаргонные словечки
и философские концепции.
Бусидо програмиста на IBM PC
1. Программист должен иметь толстую задницу, пустую
голову и коротко остриженные ногти на правой руке.
2. Программист должен стремиться к отладке. Если ситуация имеет два выхода,
один из которых - завершить работу над программой, а другой отлаживвать дальше, то программист должен выбирать второй
путь.
3. Дата завершения программы невычислима и не
постижима. Для спокойствия души программист должен вообще забыть о том, что
он когда-нибудь кончит писать эту программу.
4. Программист программирует процесс собственного программирования.
5. Если в вашей программе есть байт, который вам не нравится, перепишите ее
всю.
6. Хороша та программа, которая продается. Программа не считается
законченной, пока клиент не расплатился.
7. На вопрос: "Можете ли вы написать данную программу?" настоящий
программист отвечает одним из двух способов:"Могу"
или "Могу, но не знаю как".
8. Нет игр, кроме ТЕТРИСа, да и тот нудянка страшная.
9. Настоящий программист пользуется стандартными средствами. Почти все
программы уже давно написаны.
10. Обязательные действия настоящего программиста: распечатывать дампы,
читать документацию, дышать, есть и спать. Высший приоритет у сна.
11. Информация аддитивна.
12. Настоящий программист должен иметь четко сформулированное представление о
месте программирования в жизни. Например:
- Любое неотложное дело можно отложить на любое
неопределенное время. Нельзя откладывать только излишества и развлечения.
- Работа должна напоминать досуг.
- От работы кони дохнут.
- Лучше ничего не делать, чем делать ничего. и т.д.
13. Зарезервировано для дальнейшего развития.
Комментарии
Почему в СССР? Как сказал поэт:
"Я люблю эту грешную землю
Потому что другой не видал"
Что такое "Бусидо"?
Буквально в переводе с японского - "путь воина", т.е. сборник
моральных установок японского самурая, концептуально более широкий, чем
японский военный устав. Следование принципам "бусидо"
обязательно и приоритетно для самурая и необязательно для просто вооруженного
японца.
Имеют хождение другие бусидо
вроде знаменитого эссе "Настоящий программист программирует только на
фортране". Вопрос о совместимости всех "бусидо"
не обсуждается, т.к. сознательно не исследовался автором.
1. Использована знаменитая трехшаговая схема
Ф.Э. Джержинского. Так же как и в оригинальном
высказывании, все рекомендации носят чисто иносказательный характер. Более
полно этот принцип звучит так: "Программист должен уметь сидеть за
дисплеем по 24 часа в сутки (или по 25/23 - в день осенне-весеннего перевода
часов); должен уметь не думать ни о чем, кроме программы, и при игре в ТЕТРИС
не задевать ногтем за клавишу ESCAPE (на старой клавиатуре с 84
клавишами)". Наиболее сушественен второй
принцип, в своем развитии простирающийся до системы йогов и буддийской
техники психорегуляции. См. также комментарий к
принципу 3.
2. "Самурай должен стремиться к смерти. Если есть два пути и один из
них ведет к смерти, то самурай должен вступить на путь, ведущий к смерти." Программист работает над программой, пока его
начальник не вырвет ее из рук программиста насильно и не объявит официально об
окончании работы над программой. (Здесь имеются в виду,
конечно, большие программы, а не маленькие. Любопытно исследовать
вопрос о том, как с ростом сложности программы она скачкообразно переходит из
разряда маленьких программ в разряд больших, или нескончаемых; и далее, по
мере дальнейшего усложнения, перескакивает в разряд програмных
проектов с непредсказуемам состоянием
завершенности. См. также книгу Ф.Брукса "Мифический
человеко-месяц".
3. Коррелирует с второй
частью принципа первого. Ни мысли об окончании работ, ни мысли о деньгах или
престиже не должны занимать голову программиста даже в режиме Terminate but Stay Resident (Окончиться, но
не освобождать память). Память программиста во время работы над программой
должна быть полностью отдана программе. Опыт показывает, что любые
посторонние мысли в конечном счете только мешают.
Что делать, если посторонние мысли все-таки лезут? Или заниматься
аутотренингом; или найти работу поинтереснее; или
найти, как обойти данное неинтересное место в программе или сделать его
интересным; или ничего не делать с сознанием того, что работаешь медленнее и
хуже, чем мог бы; или устоить перерыв.
4. В древности считалось, что программирование начинается с рисования
блок-схем. Опыт показывает, что начинать программирование нужно задолго до и
кончать значительно позже этапа собственно работы с текстом программы.
Этот принцип работы глубок. Что вы, собственно, хотите сказать своей
программой? Хватит ли у вас сил, средств и ресурсов? Не написана ли она уже
давно другим? Нужна ли она будет кому-нибудь после того, как она примет
товарный вид? Сможет ли этот кто-нибудь ее купить, при условии, что вы
произвели ее для продажи? И, опять же, если вы преполагаете
продавать свою программу, как и за сколько вы будете ее продавать?...
Все эти и множество других вопросов могут влиять на текст вашей программы.
5. К этому надо стремиться. В этом состоит подлинное
исскуство.
6. Каждый программист или имеет свое мнение о хорошей программе, или
когда-нибудь слышал чье-то. Пишущие на Паскале стараются
не применять оператор GOTO и рассуждают об абзацных отступах. Пишущие на СИ
стараются размещать не более одной процедуры на экране. Пишущие
на языке ассемблера изощряются не только в операторах, но и в комментариях. И
т.д. Все это существенно, если вы пишете программу не на продажу. В этом
случае вы просто пишете программу. Следовать принципу "программирования программирования" не
обязательно.
Другое дело - программировать товарный программный продукт. Текст товарной
программы может быть красивым, но время обычно против красоты. Покупатель
руководствуется совсем другими критериями, чем красота исходника.
С другой стороны, красиво написанная программа более удобна с точки зрения
отладки, содержит меньше логическких ошибок и
обычно работает более надежно. Единственный выход - сразу писать красиво.
7. Только так. Если вы еще не понимаете, почему недопустимы другие ответы,
все равно отвечайте одним из двух предложенных способов не
задумываясь.
8. Игры, антивирусы, NORTON COMMANDER и прочие резиденты, драйверы ALFA и
BETA должны быть удалены из памяти, а то и вообще с винчестера. Это - детские
болезни. Что касается игры ТЕТРИС, то это самая лучшая компьютерная игра, но
все равно нудная.
9. Этот принцип можно назвать глубочайшим. О, сколь многие потратили
месяцы и годы на написание программ, которые уже давно написаны. Одно
по-настоящему внимательное прочтение руководства по MS-DOS избавит вас от
многих и многих разочарований и неприятных открытий.
10. Можно быть программистом и не писать программы. Нельзя долго
оставаться программистом, не читая документацию. Распечатка дампов
необязательна ровно настолько, насколько не обязательно открывать капот
собственной автомашины (просмотр дампов на экране - полумера). Невозможно
программировать не выспавшись. Если вы не программист, но начальник
программистов и заставляете их приходить на работу к определенному сроку, то
вы теряете программистов и приобретаете набивальщиков невразумительных
текстов.
11. Это один из постулатов теории информации. Настоящий программист умеет
использовать в своей работе всю информацию, которая имеется в его
распоряжении на данный момент по данному вопросу. Любую книгу программист читает в том числе и как документацию и из любого
печатного издания извлекает сведения по программированию.
12. Комментарий к принципу 10 может показаться мрачноватым, но, к счастью,
действия, описанные в нем, только необходимы, но не достаточны. Программист
не живет, чтобы работать, и не работает, чтобы жить. Все недоразумения
возникают из незнания того, что рабочим инструментом программиста являются,
помимо головы, его душа и эстетическое чувство.
13. Чисто стилевой элемент. Иллюстрирует тот факт, что грош цена системе,
не имеющей возможности для развития.
|