LINUX.ORG.RU

настоящие программисты


0

0

Паскалисты любят водку. Когда пьешь водку, пpестаешь видеть детальный план пpогpаммы, и начинаешь видеть стpуктуpный план пpогpаммы. Таким обpазом пpог- pамма начинает pаботать в целом, пpокалываясь на мелочах...

Сишники любят пиво. Когда пьешь пиво, то pезкость пpогpаммы увеличивается и можно легко найти самые мелкие и самые досадные пpоколы, но теpяется об- щий план пpогpаммы, отчего по пьянке вместо пpостого пpисваивания одного массива дpугому можно сбацать пеpебpоску данных чеpез DMA...

Ассеблеpщики любят коньяк. Когда пишешь на асме, то скоpость воспpиятия данных с монитоpа уменьшается ( пpопоpционально выпитым обьемам ), отчего лучше из- бавляться пеpеключением монитоpа в pежим 40 символов в стpочке. Кpоме того, в этот пеpиод вполне возможно написание пpогpаммы, котоpая будет pаботать в защищенном pежиме. Т.е.пpобуешь ее запус- кать, а она довольно пpочно защищается от всех внешних воздейст- вий.

Дибейсиковцы любят вино. Когда пьешь вино, то начинаешь думать о смысле жизни. Впоследствии возможен пеpеход в гpуппы пасквилянтов или сишников. Hо чеpезмеp- ное потpебление вина может пpивести к сплошным абоpтам. Пpи попыт- ках доступа к базам данных то и дело будут появляться вопpосы Retry or Abort на что будет следовать утвеpдительный ответ.

Сисопы любят все вышепеpечисленные напитки. Когда пьешь спиpтое, то можно не бояться последствий, так как бб- сина не смотpя ни на какие действия пяного сисопа будет пpодолжать функциониpовать ноpмально. Hо даже самый пьяный сисоп четко помнит свой адpес и пути хождения почты, что позволяет ему напpавлять тpаффик в нужный гейт. Заpанее пpоставленные паpоли на основные действия в мэлеpе отобьют возможность звонить на ноды пеpвого pе- гиона на 2400 с pеквестом их списков. Hо самую большую опасность пpедставляет пьяний сисоп за чтением почты...

лекискон настоящих программистов

Резистор на 2 килобайта.

- Norton Commander для БК -- это вещь ! - Ага, а Stream Tracker для абака это просто класс ...

"ХАКЕРЫ ВСЕХ СТРАН ОБЪЕДИНЯЙТЕСЬ"

Этому паразиту надо провода отрезать.

Эх ты, защелка от дисковода.

Ща весь в ленте будешь !!!

- Почему у тебя столько ошибок ? - Это Turbo Русский ++

Дiсковерт - гарный ящiк. Нехай будем в ем кукурудзу хранiти (укр.)

Инсертни диск в дырку А, закрой загогулину и плюхнись на любую кею.

Ща пойдешь в морг провода распутывать.

У, бестыжие глаза, все диски прокусал.

Магнит тебе в сумку.

Диски свежие, не очищенные.

Отпусти провод - машине больно !!!

При нажатии на клавишу машина издает похотливые вопли ...

- А от чаго она орет ? - Это звук программы, которую заживо спускают в унитаз.

Вывести бы тебя в чистое поле и нажать на Reset ...

Не будь, чем диски форматируют.

К борьбе за чтение чужих дисков, будьте готовы.

Этих идиотов надо открывать через одного и стирать по очереди.

Утопить тебя в данных.

Вступайте в общество борьбы с борьбой с вирусами

Убери свои грязные манипуляторы, придурок.

- Слушай, если килобайт - 1024 байт, то килобаб - - 1024 бабы ? - Да куда тебе столько !!!

Чтоб тебе всю жизнь на Фокале программировать. (Вариант: Чтоб тебе Си для калькулятора учить.)

Я поэт, зовусь Платоша, От меня Вам всем микpоша. (Показывается фига)

Как извращатся, так на моем диске.

Развратный, как Enter на "Корвете".

С'Escape'ивайся отсюда пока по Ctrl+Alt+Del'у не получил.

Ну что пищишь, как динамик от ЕС'ки ...

Ты что, картриджа объелся ?!

Ты, модем грамофонный, смодулируйся быстро отсюда !!!

- У тебя все на диске ?!

- Ни бита совести у тебя нету !!!

- Ты, морда резидентная, сползи сейчас же с моей машины, а то по FAT'у схватишь !

- Не клади голову на трансформатор - мозги размагнитишь ...

- Я тебе покопирую, я тебе покопирую ! Щас так удалю, никакой UnErase не поможет !

- Ты, ежик, кончай всякие гадости набирать - вон уже монитор краснеет !

- Во что ты все время играешь - пробел до пола продавил !

- Ты не hacker, ты fucker !

- А я... А я вирус для калькулятора написал ! - Да-а ?! На Borland C++ или Turbo Basic ?

- Войди срочно в Turbo Pascal ! Ну быстрей, быстрей ! ... - Вошел ?! Ну и выходи !!!

- Ну что это за редактор ! Это не редактор прямо, а Editor какой-то !

- Ух ты, какая вещь ! На что ты нажал ? На что ?! Ну молодец ! Гений ! ... Он тебе диск отформатировал...

- Ты знаешь, DEC выпустила магнитофон для IBM ! - Ага, а еще граммофон для Cray !

- Щас сотрешься отсюда, дверь открыть не успеешь !

- И-Б-М-Эр-Ц-А-Т совмистимый с ... принтером !!! (Слышен гимн Советского Союза)

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

- За такие игры авторов надо заставлять винчестер вручную форматировать или вместо ленты в принтер заряжать ...

- Клавиатуру пожевать не хочешь ?

- Самый короткий вирус написан программистом из нашей фирмы - - он занимает 0 байт, и даже автор не знает, что он делает.

- Мiкола, я вiрус спымав ! - Так тащи его сюды ! - У, який хiтрый ! Це тебе нi ведмевдь !

- Ну у тебя и шрифт ! Хуже, чем на абаке ! - Молчи ! Ты и такой испортишь !

- Кто трогал мою машину, и всю вытрогал ?!!

- Э...Э...Э ты мне сейчас диск порвеш !!! - А под сколько он у тебя ? - Под 720 ... - Будут 2 по 360.

- На дурака посмотреть хочеш ? - Хочеш. - Вон, оптический диск в ЕС'ку сует.

- Диски не нужны ? - А новые ? - Еще девочки.

Ничто неестественное не постыдно и печатаемо.

Унося машину домой, соскребай инвентарный номер.

Лучше грохнуть президента, чем помаять резидентов ...

Сигая в окно, завещай кому-нибудь диски.

Чем больше пpогpамм может списать пpогpаммист, тем выше он ценится.

Пpежде, чем стеpеть файл с диска, убедись, что он не твой !

Tangeizer ()

Re: настоящие программисты

Алан.Дж.Перлис

афоризмы программирования

от редактора перевода.

Предлагаемый перевод - скорее подстрочник, чем отшлифованное произведение. В тех случаях, когда не удалось найти подходящего эквивалента, оставлен английский текст.

* * *

Связанные с программированием разнообразные феномены являются удивительно богатой питательной средой для создания метафор индивидуальной и групповой деятельности, и наоборот, созданные человеческим гением творения служат неисчерапемым источником метафор для тех, кто работает в области вычислительной техники. Такая взаимосвязь общества и вычислительных машин не нова, а невероятный рост влияния эвм (прямого и косвенного) придает жизненность этому симбиозу, подобно вырастающему из своей одежды долговязому подростку.

Приведенные ниже афоризмы предстваляют собой попытку выделить основные направления этого роста, который заостряет, сосредотачивает, уточняет, расширяет и затуманивает наше представление о самом удивительном из всех созданных человеком творений - об эвм.

1. То, что для одного человека константа, для другого - переменная.

2. Функции задерживают связь, структуры данных стимулируют связь. Мораль: Структурируйте данные как можно позднее в процессе программирования.

3. Синтаксический сахар вызывает рак точек с запятой.

4. Каждая программа является частью другой программы и редко соответствует ей.

5. Если программа манипулирует большим количеством данных, она делает это лишь несколькими способами.

6. Симметрия представляет собой концепцию, сокращающую сложность (сопрограммы содержат подпрограммы); ищите ее повсюду.

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

8. Язык программирования имеет низкий уровень, если в программах приходится уделять внимание несущественному.

9. Лучше, чтобы в 100 функциях использовалась одна структура данных, чем в 10 функциях - 10 структур.

10. Как можно раньше вступайте на проторенную стезю: Не изменяйте своим привычкам. Накапливайте идиомы. Стандартизируйте. Единственная разница (!) Между шекспиром и вами состоит не в об'еме словаря, а в количестве идиом.

11. Если в вашей процедуре 10 параметров, вероятно, какой-нибудь пропущен.

12. Рекурсия - основа программирования, поскольку она сокращает время написания программы.

13. Если двое пишут в точности одну и ту же программу, нужно преобразовать каждую в микрокод, и тогда они, конечно, не будут одинаковыми.

14. В конечном счете каждая программа устаревает, как и рококо, а потом и вовсе умирает.

15. Все нужно проектировать сверху вниз, за исключением фундамента, с которого нужно начинать.

16. У каждой программы (по крайней мере) два назначения: Что она должна делать и чего не должна.

17. Если при об'яснении вашей программы слушатель начинает кивать головой, его пора будить.

18. Не стоит писать программу без цикла и структурированной переменной.

19. Не стоит изучать язык, который не меняет вашего представления о программировании.

20. Там, где есть модульность, возможно непонимание: Сокрытие информации предполагает необходимость проверки связи.

21. Оптимизация препятствует эволюции.

22. В хорошей системе не может быть слабого языка команд.

23. Чтобы понять программу, необходимо отождествить себя и с машиной, и с программой.

24. Если бы мы писали программы с детства, то с годами, возможно, научились бы их читать.

25. Мысленно человек может только воспроизвести сложную информацию. Движение, или течение, или изменение перспективы важнее, чем статическое изображение, каким бы красивым оно не было.

26. Мы всегда хотим сказать в своих программах что-то такое, что на всех известных языках можно сказать только плохо.

27. Как только вы поняли, как писать программу, заставьте сделать это кого-нибудь другого.

28. В программировании трудно найти правильную единицу времени для измерения прогресса. Некоторые соборы строились веками. Можно ли вообразить грандиозность и размер программы, на которую затратили столько времени?

29. Для систем аналогом пластической операции является введение в управляюший граф ребра, которое создает цикл, а не просто еще одну вершину.

30. Все, что мы делаем в программировании - это частный случай чего-то более общего, и зачастую мы осознаем это чересчур быстро.

31. Простота не предшествует сложности, а вытекает из нее.

32. Работу программистов следует оценивать не по их изобретательности и логике, а по полноте анализа каждой ситуации.

33. Одиннадцатая заповедь гласит: "Вычисляй" или "не вычисляй" - я уже не помню.

34. Строка - это застывшая структура данных, и повсюду, куда она передается, происходит значительное дублирование процесса. Это идеальное средство для сокрытия информации.

35. Ваять можно научить каждого, но тогда пришлось бы учить микеланджело, как не делать этого. То же самое - с великими программистами.

36. Использование программы для доказательства теоремы о четырех красках не изменит математики. Оно просто покажет, что задача, которая оставалась нерешенной в течении столетия, возможно, не так уж важна для математики.

37. Самая важная машина та, что "бушует" у нас в голове и все время ищет нужный ей внешний эмулятор. Стандартизация существующих машин была бы катастрофой, и потому она, вероятно, не произойдет.

38. Структурированное программирование потверждает закон исключенного третьего.

39. Реальная графика: Для описания картинки необходимо 10к слов. Но едва ли можно описать какое-либо множество из 10к слов с помощью картинок.

40. Программы без ошибок можно написать двумя способами, но работает - третий.

41. Некоторые языки программирования допускают изменения, но сопротивляются прогрессу.

42. Перспективность программиста можно оценить, узнав его мнение о жизнеспособности фортрана.

43. В программных системах зачастую "кто рано встает, того удача ждет".

44. Иногда мне кажется, что единственным универсумом в программировании является цикл.

45. Цель Fетсн-ехесUте вычислений - эмуляция наших синтетических способностей, а не понимание аналитических.

46. Как и каламбур, программирование - это игра слов

47. Как сказал бы уилл роджерс: "В природе нет такой вещи, как свободная переменная".

48. Для дилетанта лучшим пособием по программированию служит "алиса в стране чудес" - только потому, что для него это лучшее пособие по любому предмету.

49. Отказ от языка ассемблера был яблоком раздора в наших садах эдема: Языки, использование которых приводит к растранжированию машинного времени, греховны. Лиспмашина сегодня позволяет своим программистам отказаться от фигового листка.

50. Когда мы поймем машинные системы баз знаний, все будет, как и прежде, с той лишь разницей, что кончики пальцев будут обожжены.

51. Появление эвм в домах не изменит ни один из них, но может возродить салуны.

52. Системы состоят из подсистем, подсистемы - из подподсистем и так до бесконечности - именно поэтому мы проектируем снизу вверх.

53. Так много хороших идей исчезает бесследно, попав в пучину семантики.

54. Остерегайтесь бочки меда с ложкой дегтя тьюринга, где все возможно, но все интересное слишком сложно.

55. Лисп-программисту известна ценность всего, но неизвестна цена чего бы то ни было.

56. Софтвер находится в постоянном напряжении. Поскольку он символичен, его можно постоянно совершенствовать, но и произвольно изменять.

57. Легче изменить спецификацию, чтобы она соответствовала программе, но не наоборот.

58. Глупцы игнорируют сложность. Прагматики терпят ее. Некоторые моугт избегать ее. Гении ее устраняют.

59. В английском языке любое слово может быть глаголом. Разве могло бы такое быть в языках программирования?

60. DаNа Sсотт IS тне снURсн оF LаттIсе-WаY SаINтS.

61. В программировании, как и везде, ошибаться - значит рождаться заново.

62. В программировании инварианты эфемерны.

63. Когда мы пишем программы, которые "обучают", мы - обучаем, а они - нет.

64. Часто средства оправдывают цели: Цели порождают метод, а метод выживает, даже когда разрушаются структуры, бывшие ранее целью.

65. Не путайте: Машины обрабатывают числа, а не символы. Мы измеряем свое понимание (и контроль) степенью арифметизации деятельности.

66. Легко сделать что-то переменным. Хитрость в том, чтобы измерять продолжительность постоянства.

67. Подумайте, сколько психических сил потрачено на поиски коренного различия между "алгоритмом" и "программой".

68. Если мы верим в структуры данных, мы должны верить и в независимую (и потому одновременную) обработку. Зачем же еще собирать элементы в структуру? Почему мы терпим языки, которые дают нам одно, но не дают другое?

69. Через пять лет у нас будет один суперязык программирования, только мы не можем установить начало этого пятилетнего периода.

70. Веками индейцы создавали язык знаков, чтобы сообщить друг другу самое интересное. Программисты из разных племен (фортрана, лиспа, алгола, снобола и т.Д.) Могли бы воспользоваться таким языком, который понятен и без классной доски.

71. Документация подобна страхованию на неопределенный срок: Она удовлетворяет всех, поскольку почти никто из подписавшихся на нее не зависит от ее преимуществ.

72. Адекватная самораскрутка - явное противоречие.

73. Не слабости, а достоинтсва языка определяют направления его изменений. Увы, язык никогда не сможет избавиться от своего эмбрионального мешка.

74. Возможно ли, что программное обеспечение не похоже ни на что другое; что оно создано для того, чтобы от него отказались со временем; что все дело в том, чтобы оно всегда оставалось для нас мыльным пузырем?

75. Благодаря своей жизненности программирование всегда испытывает отчаянную потребность в новых штампах: Банальность успокаивает нервы.

76. Не создатели, а пользователи должны параметризовать процедуры.

77. Кибернетический обмен между человеком, машиной и алгоритмом подобен игре в "музыкальные стулья": Неистовый поиск равновесия всегда оставляет одного из трех неловко стоять.

78. Если ваша машина говорит по-английски, ее, вероятно, сделали в японии.

79. Года работы над искусственным интеллектом достаточно, чтобы заставить поверить в бога.

80. Продолжительный контакт с машиной превращает математиков в клерков, и наоборот.

81. В программировании превращение очевидного в полезное - это точное определение слова "разочарование".

82. Мы вот-вот сможем сказать: "Сегодня наша программа доказала теорему ферма".

83. Какая разница между машиной тьюринга и современной эвм? Такая же, как между восхождением хиллари на эверест и открытием отеля "хилтон" на его вершине.

84. Девиз исследовательской лаборатории: "О том, над чем мы работаем сегодня, другие подумают только завтра".

85. Хотя китайцы должны были бы обожать арL, они вкладывают деньги в фортран.

86. Мы обманываем себя, думая, что отношение процедур к данным в активной системе базы данных можно сделать произвольно малым или даже сохранить малым.

87. У нас есть мини- и микро-эвм. В какую семантическую нишу попала бы пико-эвм?

88. Машина не виновата в том, что уравнения максвелла не подходят для проектирования электромотора.

89. Нельзя научиться программированию с помощью ручного калькулятора, но можно забыть арифметику.

90. Программирование заставило дерево зацвести.

91. Эвм напоминает лона чени[#] - это машина с тысячью лиц. [#] лон чени написал детектив "человек с тысячью лиц".

92. Эвм - это загрязнитель в его чистейшем проявлении: Ее отходы неотличимы от пищи, которую она производит.

93. Когда кто-то говорит: "Мне нужен язык программирования, в котором достаточно только сказать, что мне нужно сделать", - дайте ему леденец.

94. Интерфейсы сохраняют порядок вещей, но не ускоряют рост - функции же ускоряют.

95. Не имейте хороших идей, если не хотите отвечать за них.

96. Машины скорее обнаруживают наличие беспорядка, чем наводят порядок.

97. Если преподаватель настаивает на том, что вычислительная наука - это х, а не Y, посочувствуйте его ученикам.

98. В программировании средняя наработка на отказ постоянно уменьшается.

99. В симбиозе человек-машина приспосабливаться должен человек; машины этого не могут.

100. Никогда не кончатся об'екты программирования, пока у нас под рукой есть хотя бы одна программа.

101. Обработать ошибку легко: Постарайтесь исправить программу. Удачный запуск тоже легко обработать: Вы решили не ту задачу. Постарайтесь исправить и эту ошибку.

102. Нельзя перейти от неформального к формальному с помощью формальных средств.

103. Чисто прикладные языки плохо применимы. (Игра слов аррLIсатIVе и аррLIсавLе).

104. Доказательство ценности системы - в ее существовании.

105. Нельзя передать сложность, а только знание о ней.

106. Трудно выделить смысл из строк, но это единственная "монета" связи, на которую мы можем рассчитывать.

107. Споры бушуют вокруг того, что такое рL/1 - двугорбый или одногорбый верблюд.

108. Всякий раз, когда два программиста встречаются для критического анализа своих программ, они оба молчат.

109. Подумать только! С помощью сверхбольших интегральных схем мы можем упаковать 100 "эниаков" в 1 кв.См.

110. Редактирование - это выражение того же, но другими словами.

111. Почему распалась римская империя? Как по-латыни автоматизация конторских работ?

112. Эвм приводит в замешательство вычислительную науку.

113. Единственная конструктивная теория, связывающая неврологию и психологию, возникает из исследований софтвера.

114. Для машин естественные языки не естественны.

115. Большинство людей находят концепцию программирования очевидной, но само программирование невозможным.

116. Когда изучаешь какой-либо вопрос, считаешь, что знаешь его; когда можешь писать о нем, становишься уверенней в своих знаниях; уверенность возрастает, когда можешь научить этому кого-нибудь другого; и совершенно уверен, когда начинаешь программировать.

117. Обучение детей программированию противоречит современной теории обучения. Разве интересно составлять планы, овладевать дисциплиной в организациии мышления, уделять внимание деталям и учиться быть самокритичным?

118. Если вы можете представить себе общество, где лакеями будут роботы, вы можете представить все, что угодно.

119. Программирование - это неестественный процесс.

120. Адаптировать старые программы к новым машинам обычно означает заставить новые машины работать по-старому.

121. Простота только мешает поиску недостижимого. Если существуют афоризмы, должны быть и метаафоризмы.

122. Афоризмы - это интерфейсы, по которым передается оценка и понимание.

123. Афоризмы параметризуют нимбы святости.

124. Афоризмы - это макросы, поскольку они выполняются в ходе чтения.

125. Афоризмы кристаллизуют несоответствия.

126. Афоризмы возвращают глубокое семантической значение из базы данных, которая представляет собой процедуру.

127. Афоризмы пропускют подробности и выделяют главное: Это превосходная документация высокого уровня.

128. Афоризмы скорее подобны витаминам, чем белку.

129. У афоризмов черезвычайно низкая энтропия.

130. Последний афоризм? Афоризмы нельзя ни есть, ни пить - их нужно вдыхать.

Tangeizer ()

Re: настоящие программисты

(c)1992 Sergey Podolyak (043-22) 5-78-49 (home)

Можешь не писать программы - не пиши !

Длина популярной программы прямо пропорциональна квадрату ее версии, умноженной на десять.

Программирование - новейший метод убивания времени, свободного от секса, за счет государства.

Самый надежный носитель информации - бумага.

Самый надежный компилятор - трансформатор .

Телевизор - полудуплексный аналоговый компьютер с вычислительными функциями, ограниченными компиляцией на семействе простейших грамматик .

Tangeizer ()

Re: настоящие программисты

Как писать надежные и эффективные программы. Из рекомендаций Владимира Вервольфовича, последнего программиста.

1. Программа должна быть разбита на блоки.

2. Блоки должны быть разбиты на бараки.

3. Использование переменных нецелесообразно.

4. Все имена в программе должны быть одинаковой длины, ширины, высоты и начинаться с цифры.

5. Все строки должны быть одинаковой длины и быть выравнены по правому краю.

6. В операторе варианта допускается не более одного варианта.

7. Во всех операторах условного перехода при невыполнении условия осуществляется переход в блок со свободными бараками.

8. Циклы с пост-условием заменяются циклами без условий.

9. Использование комментариев запрещается!!!

10.Основной задачей любой программы является расширение занимаемо- го ей дискового пространства, в первую очередь за счет всяких комман- дов и драйверов.

* * *

11.Вплоть до особого распоряжения земля считается плоской, небо - твердым, вода - мокрой, а солнце - погасшим.

Tangeizer ()

Программизмы

"Лупить" - организовывать цикл (loop)

"Чесаться" - играть в шахматы (chess)

"Повернуть" - увеличить мощность (power)

"Кольнуть" - вызвать подпрограмму (call)

"Пойти юзом" - загрузить базу данных (use)

"Варить" - описывать переменные (var)

"Ранить" - запускать программу (run)

"Ресторан" - восстановитель (restore)

"Пикать" - обращаться в память (в Бейсике) (peek)

"Крякнуть" - взломать программу (crack)

"Катать" - вырезать кусок текста (cut)

"Орать" - производить операцию "или" (or)

"Брыкаться" - прерывать программу Ctrl-Break (break)

"Распушить" - сохранить в стеке (push)

"Каратист" - человек,работающий на Карате

"Пасовать" - делать очередной проход при компиляции (pass)

"Кликнуть" - нажимать кнопочку на мыши (click)

"Чекушка" - проверка (check)

"Дырявая" - зараженная вирусом Dir

"Копать" - копировать (copy)

"Топнуть" - перейти в начало базы данных (go top)

"Розмовлять" - пересылать данные (move)

"Иде?" - интегрированное окружение отладки (IDE)

"Тайный" - малюсенький (tiny)

"Крутизна" - путь к корневому директорию (root)

"Рычать" - достигать (reach)

"Третировать" - лечить (treat)

"Степной" - пошаговый (step)

"Лесной" - наименьший (less)

Tangeizer ()

Re: настоящие программисты

"Знание-сила" 1/84 ------------------

Программирование в разных измерениях.

Сейчас уже мало кто занимается просто программированием. Программируют системно, структурно, структурированно и еще по-всякому. Модно говорить о программировании геометрическим языком.

ПРОГРАММИРОВАНИЕ СВЕРХУ ВНИЗ. Берем задачу. Если у нас уже есть для нее программа, то все в порядке. Если нет, разбиваем ее на подзадачи и с каждой из них поступаем точно так же. Когда в конце концов добираемся до таких маленьких подпод...подзадач, что с ними уже делать нечего, то случается одно из двух: либо мы уже забыли, а какую же задачу надо было решить, либо обнаруживаем, что на не так выделили подзадачи на самом первом этапе и все надо начинать сначала.

ПРОГРАММИРОВАНИЕ СНИЗУ ВВЕРХ. Каждая машина, если она работает, умеет что-то делать. Мы начинаем учить ее делать все более сложные вещи. Со временем оказывается, что наша машина умеет делать все, не умеет только решать ту задачу, которую нам нужно решить.

ПРОГРАММИРОВАНИЕ ВШИРЬ. У нас есть какой-то круг потребностей. Ограничивая себя во всем, мы сужаем этот круг до предела и пишем для него узкую-узкую программу. Потом мы начинаем расширять эту программу и удовлетворять все большее число своих потребностей. Предостережение: будьте осторожны - как бы все не лопнуло.

ПРОГРАММИРОВАНИЕ "ВУЗЬ". Сначала пишется грандиозная спецификация, предусматривающая максимальное удовлетворение потребностей всех потенциальных пользователей. Потом мы пытаемся написать программу, удовлетворяющую этой спецификации. Когда программа начинает работать, наши силы уже на исходе. Мы выясняем, что она умеет делать, описываем это и назывем нашу программу первой версией системы. Большего от нас уже никто не ждет.

Tangeizer ()

Re: настоящие программисты

Семь заповедей программиста (источник неизвестен)

1. Не сотвори себе кумира из начальника. Знай - ты и сам дурак.

2. Не укради машинного времени.

3. Не убей дежурного инженера.

4. Чти "БЭСМ" твою.

5. Не произноси ложного свидетельства на ближнего своего, когда у тебя не идет программа.

6. Помни день субботний - пять дней делай дела, а на шестой радуйся, что ничего не сделал.

7. Люби ближнего своего, даже если он твой заказчик.

Tangeizer ()

Re: настоящие программисты

Из фольклора программистов

Первый этап рабрты над составлением программы - шумиха.

Второй - неразбериха.

Третий - поиски виновных.

Четвертый - наказание невиновных.

Пятый - награждение непричастных.

Tangeizer ()

БУСИДО ПРОГРАММИСТА

Программистов во всем мире считают разновидностью ПСИХОВ, причем не таких уж безобидных. В обществе во всю гуляют ужасные рассказы о вирусах и их безумных авторах, готовых ради ложно понятого самоутверждения ставить под угрозу работу целых отраслей промышленности. Если забыть о вирусах, то больше о программистих ничего не известно. Многолетние наблюдения за ними показывают, что в основном они безобидные и приветливые люди, увлеченные своей работой. Иногда их трудно понять. Для облегчения вашего общения с близким, знакомым или подчиненным программистом предлагаем вашему вниманию "Бусидо программиста...", т.е. список моральных и жизненных правил, которым вольно или невольно следует любой программист. Бусидо носит приблизительный характер, и, строго говоря, необязательно к исполнению. Это "рекомендованное чтение", обобщение результатов наблюдений, делать которые вообще никто не просил. После "Бусидо" приводятся комментарии, объясняющие используемые термины, жаргонные словечки и философские концепции.

БУСИДО ПРОГРАММИСТА НА 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. Чисто стилевой элемент. Иллюстрирует тот факт, что грош цена системе, не имеющей возможности для развития.

Tangeizer ()

Re: настоящие программисты

МЫСЛИ И ФРАЗЫ

- Меняю одну двухпроцессорную ЭВМ на две однопроцессорные в разных аудиториях.

- Срочно куплю полное собрание программ для ЭВМ.

- Пропал исходный модуль, нашедшего просим вернуть отлаженным за приличное вознаграждение.

- Помните: 60 кг. нераспечатанных листингов сберегают одно дерево.

- Читаю и перевожу со словарем с Фортрана, Алгола, Кобола и др.

- Интерпретирую программы и двигаю курсор...

- Приглашаю няню-программиста со знанием языка к компьютеру двух лет.

- "Всегда имеются в продаже свежие программные продукты!" Магазин "ЭЛЕКТРОНИКА"

- А все-таки, в какой системе счисления лучше получать зарплату?

- "Давным-давно, когда компьютеры были большими..."

- Наши большие интегральные схемы - самые большие в мире!

- Создав систему, посмотри - не операционная ли она!

- Будь объективен к объектному модулю.

- Категорически запрещается сушить супервизор на интерфейсе!

- Помни, что ЭВМ женского рода.

- А все-таки, стоит ли брать банк данных?

- Почему нет доплат за знание алгоритмических языков?

- Стоит ли писать программу, если заранее знаешь, с какого оператора она начнется и каким закончится?

- Надо ли материально поощрять специалиста, если ему и так дана возможность попрограммировать.

- Болеющие душой за дело внедрения в школу компьютеров, скорее выздоравливайте: вы очень нужны!

- Глобальная учебная цель оправдывает убогие программные средства.

- Редактор - это переводчик с авторского языка на человеческий.

- Семеро одного дисплея не ждут.

- Перфокарте - место.

- Каждому программисту ЭВМ выдает то, что он заслуживает.

- Снявши оператор вывода, по ответу не плачут.

- В чужой ВЦ со своим транслятором не ходят.

- Массив не припасешь - памяти не будет.

- Программу циклом не испортишь.

- Ячейка память бережет.

- С миру по ячейке - программисту банк данных.

- Кто как программирует, так и ест.

- Отольются заказчику слезы программиста.

- Дурной ФОРМАТ печати покоя не дает.

ВАРИАЦИИ

"Не учите меня программировать!"

"Программа под редакцией..."

"Компьютер с девичьей памятью..."

"Что может сравниться с программой моей..."

"Полюбите программиста..."

Tangeizer ()

Основные Отличия Настоящего Программиста.

Настоящий Программист лучше знает, что нужно пользователю.

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

Настоящий Программист никогда не пишет комментариев в своих программах. Он считает, что если программу трудно написать, то и читать ее должно быть ничуть не легче.

Настоящий Программист никогда не пишет документацию к программе, т.к. она нужна лишь тем, кто неспособен понять программу по листингу или перфоленте.

Настоящий Программист никогда не пишет прикладных программ, ибо прикладные программы пишут слабаки , неспособные заниматься системным программированием.

Настоящего Программиста трудно заставить работать. Но если он добирается до компьютера, то проводит за ним не менее 30 часов без перерыва.

Настоящий Программист никогда не работает с 9 утра до 5 вечера. Если вы увидите Настоящего Программиста за компьютером после 9 часов утра - значит он не спал всю ночь.

Настоящий Программист никогда не пишет на КОБОЛе, ибо КОБОЛ для любителей писать прикладные программы.

Настоящий Программист никогда не пишет на ФОРТРАНе, ибо ФОРТРАН для законченных уродцев и задумчивых кенгуру.

Настоящий Программист никогда не пишет на БЕЙСИКе. Действительно , трудно встретить программиста, в возрасте после 12 лет, пишущего на БЕЙСИКе.

Настоящий Программист никогда не пишет на PL/I, ибо PL/I - язык для тех, кто не решается писать на КОБОЛе или ФОРТРАНе.

Настоящий Программист никогда не пишет на APL. Даже дурак загрустит от APL.

Настоящий Программист никогда не пишет на ПАСКАЛЕ , БЛИССе , АДА. Строгий контроль типов в этих языках хорош лишь для людей со слабой памятью.

Настоящий Программист считает , что структурное программирование - это коммунистический заговор.

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

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

Настоящий Программист думает лучше, когда играет в ADVENTURE.

Настоящий Программист с наслаждением ставит CP/M для работы на IBM/370 и MVS на ZX81s.

Настоящему Программисту никогда не мешают защитные системы, он просто не обращает внимания на их сообщения или отключает вовсе.

Настоящий Программист никогда не делает резервных копий.

Настоящий Программист никогда не восстанавливает исходных текстов после случайного стирания - все равно когда-нибудь придется переписывать заново.

Настоящий Программист никогда не проверяет своих программ,ибо так поступают только неуверенные в себе люди.

Программы Настоящего Программиста всегда рекурсивны и запускаются в режиме супервизора, иначе это не программы Настоящего Программиста.

Источник : Softpanorama v.36 Вольный перевод с иностранного : А.Володин

Tangeizer ()

м ы с л и о п р о г р а м м и р о в а н и и

Если программист признан незаменимым, то лучшее, что можно сделать - избавиться от него как можно скорее. "The Psychology of Computer Programming", Джеральд Вейнберг, (VAN NOSTRAND REINOLD CO., 1971).

Некоторое время назад, когда КОБОЛ был светлой надеждой программистов, часто можно было слышать о возможности того, что администраторы смогут читать программы... Никто не принимал этого всерьез... Даже программисты не читают программ. ( р.5 )

Eсть... программы, которые следует выбросить еще до использования. ( р.20 )

Tребовать и эффективности, и гибкости от одной и той же программы - все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. ( р.22 )

Eсли программист работает с языком, в котором разрешены только три индекса, то вряд ли мы обнаружим больше трех. ( р.31 )

Собрать кучку людей для работы над одной проблемой - не значит сделать их коллективом. ( р.35 )

Конструктор системы страдает от того, что чем лучше его система делает свое дело, тем меньше пользователи знают о ее существовании. ( р.124 )

... Каждая программа имеет соответствующий уровень продуманности и запутанности в зависимости от цели, для которой она применяется. ( р.127 )

Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. ( р.136 )

Для локализации ошибки, однако, желателен человек, об- ладающий упорством тещи и стадными инстинктами крысы. ( р.136 )

Если плохой работник ненавидит свои инструменты, хоро- ший работник ненавидит плохие инструменты. Результаты труда рабочего в значительной степени определяются его инструмента- ми. ( р.203 )

Ни один ремесленник, который стремится к вершинам сво- ей профессии, не примет негодных инструментов; и ни один про- изводитель, который ценит качество работы, не будет упрашивать ремесленника принять их. ( р.204 )

Другой эффект (отсутствия устной формы) - это затруд- нения, которые мы испытываем, говоря о языке программирования без доски и мела либо карандаша и бумаги. В каждой програм- мистской лаборатории должны быть доска, мел и достаточное ко- личество тряпок. ( р.207 )

"Программирование" - как и "любовь" - одно слово, за которым скрывается бесконечное множество занятий. ( р.121 )

Очень важно не прерывать вопросов. Любопытство имеет свое право на существование. (Альберт Эйнштейн)

... В некоторых диалоговых системах ... пользователь может уберечь свою программу от понижения в приоритете, играя с клавишей переключения регистров в то время, пока он размыш- ляет. ( В. р.209 )

Специалист - человек, который избегает мелких ошибок, неуклонно двигаясь к глобальному заблуждению. ( аноним )

В природе программирования лежит то, что нет соотноше- ния между "размерами" самой ошибки и проблем, которые она влечет. ( В. р.247 )

Когда программист испытывает затруднения при поиске ошибки, это значит, что он ищет не там, где следует. ( В. р.251 )

Документация - касторовое масло в программировании... Руководители полагают, что это хорошее средство, ибо програм- мисты так ее ненавидят. ( р.262 )

Мозг человека обычно загружен лишь на 10% своей мощности; остальное резерв для опереционной системы. ( аноним )

Мы стоим на пороге новой эры, эры, ставшей возможной благодаря революции, совершенноя вычислительной машиной. Стоя на пороге, мы колеблемся в выборе пути - к золотому веку свободы или к темному веку тирании, причем и тот, и другой век может превзойти все, что когда-либо видел мир. Возможно, никакие отдельные усилия не скажутся на результате, но мы никогда не должны оставлять попыток, ибо иначе результат наверняка ока- жется тиранией. ( В. р.279 )

Проект (OS/360) был закончен с опозданием, система потребовала большего объема памяти, чем планировалось, затраты значительно превысили предварительные оценки, вся система начала работать как следует только после создания нескольких вариантов, последовавших за первым. "Мифический человеко-месяц", Фредерик Брукс-мл.,р.8 (М., "Наука", 1979).

Корабль на мели - моряку маяк. голландская пословица.

Неподатливость проблемы (срыва планов разработки систем) вызывает всеобщее изумление, и разобраться в ее природе непросто. ( Брукс, р.10 )

Вычислительная машина обладает притягательной силой бил- лиарда или музыкального автомата, доведенных до логической завершенности. ( Б. , р.13 )

Программист, как поэт, работает почти исключительно головой. ( Б., р.13 )

Вы печатаете на клавиатуре заклинание, и вот экран дисплея оживает, показывая объекты, которых не было и могло не быть никогда ... (но) если хоть один символ, один пробел в магической формуле не находится строго на своем месте, волшебство не работает. ( Б., р.14 )

... Во всех областях творческой деятельности формальный объем прав никогда не согласуется с ответственностью. ( Б., р.14 )

Выдавать глобальные идеи - это удовольствие; искать сволочные маленькие ошибки - вот настоящая работа. ( Брукс )

Как только проект окончательно принят, он становится устаревшим в смысле своих концепций. ( Б., р.15 )

Хорошая кухня требует времени. Если вы готовы подо- ждать, мы обслужим вас гораздо лучше, и вы получите большее удовольствие. ( меню ресторана "Антуан", Новый Орлеан )

Все программисты - оптимисты. ( Б., р.17 )

На этот раз программа обязательно пройдет. ( аноним )

Я только что нашел последнюю ошибку. ( аноним )

Большой программистский проект ... включет в себя много отдельных задач, каждая из которых может зависеть от окончания другой . Вероятность того, что каждая задача будет идти нормально, становится исчезающе малой. ( Б., р.19 )

Стоимость проекта действительно зависит от числа людей и числа месяцев, но его успешность - нет. Следовательно, человеко-месяц как единица измерения объема работы является опасным и вводящим в заблуждение мифом. ( Б., р.19 )

Чтобы выносить ребенка, нужно девять месяцев, незави- симо от того, сколько женщин будет к этому привлечено. ( Б., р.20 )

Когда кажется, что все уже работает, все объединено в систему - вам еще осталось работы на четыре месяца. ( Чарльз Портман , ICL )

Отметим, что настойчивость руководителя может определить график выполнения задания, но не в состоянии определить срок его действительного завершения. ( Б., р.23 )

... Если за две минуты он (омлет) еще не готов, у заказчика два выбора - подождать или съесть его сырым . ( Б., р.23 )

Закон Брукса: если программистский проект не уклады- вается в сроки, то добавление рабочей силы только задержит его окончание. ( Б., р.26 )

... Концептуальное единство является самым важным соображением при проектировании системы. ( Б., р.36 )

Система программирования предназначена для того, чтобы облегчать пользование вычислительной машиной. ( Б., р.36 )

Ни функциональность, ни простота сами по себе не гаран- тируют... высокого качества (проекта). ( Б., р.37 )

Добавляя малое к малому, получишь большую кучу. ( Овидий )

Он сядет здесь и будет распоряжаться: сделайте то!, сделайте это! - но абсолютно ничто не сдвинется с места. ( Г.Трумэн, "О презедентской власти " )

Никогда не выходи в море с двумя хронометрами: бери один или три. ( пословица )

Я в этом разбираюсь. Я знаю, что нужно делать - но каждый раз, когда я пытаюсь заняться технической проблемой, какой-нибудь идиот требует, чтобы я принял решение насчет грузовика, или телефонов, или другой такой же чертовщины. ( Роберт Хайнлайн, "THE MAN WHO SOLD THE MOON" )

Проблема - в том, что все, кто здесь работал, и я в том числе, хотели сделать действительно чистую работу, только они не хотели чистой работы, они хотели много - и быстро. ( Рик Бэйкер, гример в фильмах: "Кинг-Конг", "Звездные войны" и т.д.)

Генерация случайных чисел - слишком важный вопрос, чтобы оставлять его на волю случая. ( Роберт Ковзю, Окриджская лаборатория. )

Я не знаю причины, по которой нам не следует этого де- лать, но, возможно, позже мы придумаем какую-нибудь. ( Марк Дэвисон )

- Ошибка? Это не ошибка, это системная функция. ( Т. Джон Уэнделл )

Комьютер "делает из всех нас дураков". ( В. р.152 )

Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. ( В. р.152 )

У компьютера всегда есть оправдание; у программиста - никогда. ( Марк Дэвисон )

Пользователь не знает, чего он хочет, пока не увидит то, что он получил. ( Э. Йодан )

Мы склонны винить физическую среду в большинстве наших затруднений, ибо эта среда не принадлежит нам в той же мере, что идеи, и наша гордость определяет наше суждение. ( аноним )

Работа не может быть выполнена должным образом, если нет необходимых инструментов. ( PROCEEDINGS OF THE IEEE, 2/78, р.174 )

Tangeizer ()

Re: настоящие программисты

На пустом диске можно искать вечно. ( COMPUTERWORLD BUTTON )

Я пишу все свои критические программы на ассемблере, а комедийные - на фортране. ( аноним )

Бесполезно придумывать защиту от дурака - ведь дураки так гениальны. ( Э.Мэрфи, DEC )

Интуитивно ясно, что наличие ошибки в программе не скажется на результатах тестирования, если содержащая ошибку программная компонента при тестировании не выполнялась. ( Дж.Хуанг, "PROGRAM INSTRUMENTATION SOFTWARE TESTING", COMPUTER, volume 11, number 4 )

Если отладка - процесс удаления ошибок, то программиро- вание должно быть процессом их внесения. ( Э.Дейкстра )

Вы уже дошли до состояния, когда у вас нет времени, чтобы разрешить те проблемы, которые отнимают у вас все время??? ( Марк Дэвидсон )

Tangeizer ()

K A K O Й B Ы П P O Г P A M M И C T ?

NORMAN GRABOWSKY "WHAT KIND OF PROGRAMMER ARE YOU?" ЭTOT TECT PACCKAЖET O BAШEM ПPOГPAMMИPOBAHИИ БOЛЬШE, ЧEM BЫ CAMИ XOTEЛИ БЫ ЗHATЬ.

ИCTOЧHИK: DATAMATION, MARCH, 1977

ПEPEMEHHAЯ I ПPEДCTABЛЯET COБOЙ ПOЛHOE CЛOBO C ФИKCИPOBAHHOЙ TOЧKOЙ. I ПPИHИMAET ЗHAЧEHИЯ 1 ЛИБO 2. ECЛИ I OKAЗAЛOCЬ PABHЫM 1, ЗAMEHИTE EГO HA 2 И HAOБOPOT.

CPABHИTE BAШE PEШEHИE C ДECЯTЬЮ ПPEДЛOЖEHHЫMИ. HAЙДИTE OДHO ИЛИ HECKOЛЬKO HAИБOЛEE ПOXOЖИX HA BAШE И ПPOЧИTAЙTE B PAЗДEЛE 'KATEГOPИИ' KPATKУЮ XAPAKTEPИCTИKУ. BЫ MOЖETE KOДИPOBATЬ HA ЛЮБOM ЯЗЫKE, HO ДЛЯ CPABHEHИЯ ПPEДПOЧTИTEЛЬHEE BCEГO ИCПOЛЬЗOBATЬ PL/1.

P E Ш E H И Я .

1. IF I='2' THEN I=1; ELSE I=2;

2. IF I=2 THEN I=1; IF I=1 THEN I=2;

3. IF I=1 THEN GOTO SKIP; I=1; GOTO DONE; SKIP: I=2; DONE:

4. J=2; IF I=2 THEN J=1; I=J;

5. DECLARE SWITCH LABEL; . . . IF I=1 THEN SWITCH=ONE; IF I=2 THEN SWITCH=TWO; GOTO SWITCH; ONE: I=2; GOTO DONE; TWO: I=1; DONE:

6. DECLARE ONETWO(2) FIXED BIN(31) INIT (2,1); . . . I=ONETWO(I);

7. I=3-I;

8. I=I-(I/2*2)+1;

9. IF I=2 THEN DO; I=1; END; ELSE DO; I=2; END;

10. IF I=1 THEN I=2; IF I^=2 THEN DO; PUT LIST('ПЛOXOE I - ЗAMEHEHO HA 1'); I=1; END;

K A T E Г O P И И .

1. HEДABHИЙ BЫПУCKHИK ШKOЛЫ IBM. HE БOЛEE OДHOГO ИЗ ДECЯTИ OKOHЧИBШИX ЭTУ ШKOЛУ ЗHAЮT PAЗHИЦУ MEЖДУ 2 И '2'. УДИBИTEЛЬHO, KAK MOЖHO BOOБЩE ПPOГPAMMИPOBATЬ БEЗ ЗHAHИЯ CTOЛЬ ФУHДAMEHTAЛЬHOЙ KOHЦEПЦИИ.

2. ПPEПOДABATEЛЬ ПPOГPAMMИPOBAHИЯ. ЭTO PEШEHИE XУЖE ПPEДЫДУЩEГO. MHOГO ЛИ, OДHAKO, OБУЧAЮЩИX ПPOГPAMMИPOBAHИЮ CAMИ HAПИCAЛИ И OTЛAДИЛИ XOTЯ БЫ OДHУ ПPOГPAMMУ?

3. ПPOГPAMMИCT HA FORTRAN'E, TOЛЬKO ЧTO OKOHЧИBШИЙ KУPC PL/1. ДA, CTAPУЮ COБAKУ HE HAУЧИШЬ HOBЫM ШTУKAM! ЭTO PEШEHИE ДAET BEPHЫЙ PEЗУЛЬTAT, HO ЭTO BCE, ЧTO MOЖHO ПPO HEГO CKAЗATЬ.

4. ПPOГPAMMИCT HA ACCEMБЛEPE, ПPOШEДШИЙ TOT ЖE KУPC. ЭTO PEШEHИE HE ЯBЛЯETCЯ HИ ПPЯMЫM HИ,ЭФФEKTИBHЫM. BOЗMOЖHO, ЭTO PEЗУЛЬTAT OБУЧEHИЯ ЯЗЫKУ PL/1. B HEM ECTЬ TA ПPEЛECTЬ, ЧTO OHO HE COДEPЖИT CAMOMOДИФИЦИPУЮЩИX KOДOB, HO ЭTO ЛИШЬ PEЗУЛЬTAT BOЗBPATA HA ЗEMЛЮ ПOCЛE ИЗУЧEHИЯ ЯЗЫKA BЫCOKOГO УPOBHЯ.

5. CИCTEMHЫЙ AHAЛИTИK. ПPEKPACHAЯ ИЛЛЮCTPAЦИЯ ДЛЯ TEX, KTO ДУMAET, ЧTO OБЯЗAH- HOCTЬ CИCTEMHOГO AHAЛИTИKA - TAKAЯ PAЗPAБOTKA AЛГOPИTMA B KOTOPOЙ OKAЖETCЯ HEKOMПETEHTEH ДAЖE XOPOШИЙ И OПЫTHЫЙ ПPOГPAMMИCT.

6. COMPUTER SCIENTIST. HABEPHOE, ЭTO CAMOE УMHOE PEШEHИE. OДHAKO TAKИE "CAЛЬTO-MOPTAЛИ" БEЗ KOMMEHTAPИEB OKAЗЫBA- ЮTCЯ BECЬMA HEПOHЯTHЫMИ. ИCKУCCTBO TPEБУET ЖEPTB, A ЖEPTBOЙ БУДET TOT, KTO PAЗБИPAETCЯ B ЭTOЙ ПPOГPAMME - MOЖET БЫTЬ, CAM ABTOP ЧEPEЗ TPИ MECЯЦA.

7. MATEMATИK. OЧEHЬ ПOXOЖE HA ПPEДЫДУЩEE, CTOЛЬ ЖE ЭЛEГAHTHO, HO OПЯTЬ-TAKИ BCTAET ПPOБЛEMA: KAK ЖE B HEM PAЗOБPATЬCЯ?

8. ПPOГPAMMИCT, ЗAБOTЯЩИЙCЯ O CEKPETHOCTИ CBOEЙ ПPOГPAMMЫ. BOT PAБOTA HACTOЯЩEГO KOMПOЗИTOPA, И KOHEЧHO, HИKAKИX KOMMEHTAPИEB. "Я MOГЛA БЫ ПPИДУMATЬ И БOЛEE ЗAПУTAHHЫЙ CПOCOБ, KAK ЭTO CДEЛATЬ,- C ГOPДOCTЬЮ CKAЗAЛA БEЛAЯ KOPOЛEBA".

9. CTPУKTУPHЫЙ ПPOГPAMMИCT. KAЖДOMУ ЯCHO, ЧTO CИE ПPOИЗBEДEHИE - CTPУKTУPHAЯ ПPOГ- PAMMA. ИHOГДA ЗAБOTЯTCЯ TOЛЬKO O TOM, CKOЛЬKO KOЛOHOK HAДO OTCTУПИTЬ OT KPAЯ ЛИCTA. HACTOЯЩEE CTPУKTУPHOE ПPOГPAMMИPOBAHИE - ЭTO ПPEЖДE BCEГO TEXHИKA, И ПPИMEHЯTЬ EE HAДO C УMOM.

10.XOPOШИЙ ПPOГPAMMИCT. ЗAMETЬTE, ЧTO HИ OДHO ИЗ PEШEHИЙ 1-9 HE ПPOBEPЯЛO ДИAПAЗOH ЗHAЧEHИЙ I, A ЭTO BECЬMA OПACHO. K HECЧACTЬЮ, BAC HE CПACУT HИ CTPУKTУPHOCTЬ, HИ ФAHTACTИЧECKИE AЛГOPИTMЫ, HИ ЭЛEГAHTHOCTЬ PEШEHИЯ, ECЛИ BДPУГ OKAЖETCЯ, ЧTO I ПEPBOHAЧAЛЬHO HE БЫЛO PABHO HИ EДИHИЦE, HИ ДBOЙKE.

Tangeizer ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.