1500py470 (1500py470) wrote,
1500py470
1500py470

По настоящему спортивное программирование!

БУСИДО ПРОГРАММИСТА НА IBM, PC, XT, AT, PS/2 и т.д. В СССР

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. Чисто стилевой элемент. Иллюстрирует тот факт, что грош цена
системе, не имеющей возможности для развития.
Tags: software history, ТруЪ спортивное программирование
Subscribe

Posts from This Journal “ТруЪ спортивное программирование” Tag

  • Post a new comment

    Error

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 5 comments