| Best of #02 |
|

OLDMAN ПРЕДСТАВЛЯЕТ:
ПРИЛОЖЕНИЕ К КОМПЬЮТЕРНОЙ ГАЗЕТЕ "ON-LINE"
────────────────────────────────────────────
■ўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўў■
▒░░░░║║║║║║░░░║║║║║║░░░║║║║║░░║║║║║║░░░░░░░░░║║║║║░░░║║║║║║░░░░▒
▒░░░░║║░░░║║░░║║░░░░░░║║░░░░░░░░║║░░░░░░░░░░║║░░░║║░░║║░░░░░░░░▒
▒░░░░║║║║║║░░░║║║║║░░░░║║║║║░░░░║║░░░░░░░░░░║║░░░║║░░║║║║║░░░░░▒
▒░░░░║║░░░║║░░║║░░░░░░░░░░░║║░░░║║░░░░░░░░░░║║░░░║║░░║║░░░░░░░░▒
▒░░░░║║║║║║░░░║║║║║║░░║║║║║║░░░░║║░░░░░░░░░░░║║║║║░░░║║░░░ N2 ░▒
■ўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўў■
┌────────────────────────────────────────────────────────────┐
│ ЕЩЕ РАЗ О НАСТОЯЩИХ ПРОГРАММИСТАХ │
└────────────────────────────────────────────────────────────┘
Каким надо быть высокомерным идиотом для того, чтобы
изобрести обучающий язык таким, как Паскаль.
Все ученики и последователи Клауса Вирта будут великолеп-
но читать комментарии и понимать, что BEGIN значит НАЧАЛО, а
END - КОНЕЦ. а большее потянуть они не смогут.
Если уж кому-то в голову пришло, что программированию на-
до учить на языках высокого уровня, то для этой цели можно ис-
пользовать ФОРТ, в крайнем случае СИ (если не выделять в нем
приемы структурного программирования). В этом случае, по край-
ней мере, придется приложить мозговые усилия для решения той
или иной задачи. Язык программирования, который своими сред-
ствами не способен вывести из строя систему, не может счи-
таться гибким и не должен считаться языком программирования
вообще.
На самом деле для воспитания хороших программистов необ-
ходимо преподавать в качестве обучающего языка Ассемблер, при-
чем не один, а несколько (естественно, с возможностью свобод-
ного творчества на данном Ассемблере). Тогда будущий програм-
мист столкнется с реальными условиями.
Для того, чтобы отделить потенциальных программистов от
сосунков, нужно на самой ранней стадии обучения посадить груп-
пу за терминалы и посмотреть, чем каждый из них будет зани-
маться. Сосунок будет исправно решать поставленную преподава-
телем задачу, а потенциальный настоящий программист залезет в
машину учителя, вытащит оттуда ТЕТРИС, за 3 минуты до конца
занятия сворует программу у соседа и исправит в соответствии
со своим заданием.
Второго смело можно подпускать к программированию. Перво-
го лучше отправить изучать Паскаль, и так, чтобы он занимался
этим как можно дольше. Лучше всего - всю жизнь.
Выделив будущих программистов, обучать их можно по разно-
му. Наиболее эффективен следующий способ.
Ученику выдается компьютер и некоторое количество прог-
раммных средств, с которыми ему в дальнейшем придется рабо-
тать. Описаний к этим программам либо не выдается совсем, ли-
бо выдается минимальный набор. Если происходит обучение како-
му-либо языку программирования, в качестве руководства жела-
тельно использовать литературу на языке, заведомо незнакомом
обучающемуся, либо произведения советских авторов.
Когда будет замечено, что ученик работает с программой
(языком программирования) довольно сносно, можно предложить
ему для изучения исчерпывающие руководства. Они будут прочита-
ны как захватывающий детектив. Затем, после небольшого перио-
да переваривания полученных знаний, программист готов к актив-
ной деятельности.
Специалист, прошедший обучение подобным образом, как пра-
вило, удивляет других "программистов" приемами программирова-
ния. Не исключено, что вместо шестнадцатиричной системы счис-
ления он будет использовать десятичную (если ему до прохожде-
ния курса никто не объяснял, что программировать нужно в шес-
тнадцатиричной системе). Программы, написанные таким специа-
листом, будут совершенны в работе, но перед желающим их улуч-
шить или узменить встанет практически неразрешимая задача (за
исключением случаев, когда с этой задачей сталкивается такой
же специалист), так как прочитать эти программы и понять их
суть крайне тяжело, например, нелегко обычному программисту
прочитать программу на Ассемблере, в которой все числа - деся-
тичные.
Программист, изучавший таким способом Ассемблер, наверня-
ка знает коды всех мнемоник в восьмеричной, десятичной и шес-
тнадцатиричной системе счисления и может писать программы ем-
костью до нескольких килобайт непосредственно в машинном коде,
вводя программу десятичными или шестнадцатиричными числами.
Вообще говоря, программистов, подготовленных таким обра-
зом, можно и должно называть хакерами.
В слово хакер вложен отрицательный смысл (почему - объяс-
ню ниже), но каждый из них гордо носит свое имя.
Хакера не волнует сложность поставленной задачи, но зани-
маться ею он будет только в том случае, если она ему интерес-
на. Заставить хакера работать вне его интересов доступно лишь
исключительно талантливым организаторам.
Наиболее интересная область для хакера - это программы с
защитами. Снятие защит - это одна из сложнейших задач, с кото-
рой может столкнуться программист. Любому понятно, что ни од-
ному сосунку, ратующему за структурное программирование, эта
проблема не по силам, для этого необходим талант.
В советских условиях хакер необходим по той простой при-
чине, что пойти в магазин и купить дискету с пакетом P-CAD для
IBM PC весьма затруднительно, поэтому приходится его воровать.
Своровать программу без хакера невозможно, так как практичес-
ки любая фирменная дискета или кассета защищена от копирования.
Загнивающих предпринимателей слово хакер приводит в ужас,
но я делаю различие между хакером и компьютерным пиратом (тер-
мин SOFTWARE PIRACY вполне официален и является предметом
пристального внимания ИТЕРПОЛА). е исключено, что хакер может
заниматься распространением программ, с которых снял защиты,
но это характеризует его как человека, но не как программиста.
Еще больше отрицательных эмоций (в основном у тех, кто
пользуется ворованными программами, т.е. у советских програм-
мистов) вызывают хакеры, занимающиеся изготовлением разного
рода вирусов.
Надо заметить, что для хакера не менее интересны и зада-
чи, обратные предыдущим, а именно, изобретение защит и написа-
ние антивирусов (то-есть программ, выслеживающих и уничтожаю-
щих вирусы), посему фирмы, производящие программный продукт,
не гнушаются ничем, чтобы получить хакера себе в сотрудники.
Вообще говоря, любая фирма, занимающаяся программными разра-
ботками, развалится, если на нее не будет работать несколько
хакеров.
Теперь ряд штрихов, характеризующих хакера:
- как уже говорилось, хакера трудно заставить работать, но ес-
ли его заинтересовать, то результат почти всегда - шедевр;
- хакеру тяжело что-либо начать, но уйдя в работу, он потерян
для общества вплоть до завершения той или иной стадии;
- при выборе программных средств для своей деятельности хакер
часто удивляет других программистов. Как правило, это опре-
деляется не тем, что программа умеет, а тем, как она написа-
на (этот текст, например, набирается в текстовом редакторе,
никоим образом не связанным с русским языком, но уж очень
редактор хорош);
- все, что хакер делает, он не считает работой, и если фирма
платит ему деньги, то, вероятно, только для того, чтобы он
иногда произносил фразу: "Я работаю на фирме ...";
- хакер часто смеется, когда читает литературу по программиро-
ванию (особенно советскую);
- лучшая литература для хакера - распечатка программы;
- хакер не всегда знает язык программирования, с которым он в
данный момент работает;
- хакер способен объяснять по телефону способ, которым можно
найти ячейку памяти, определяющую количество жизней в игре
SABOTEUR, одновременно восстанавливая содержимое диска с
полностью испорченной директорией, используя DISC DOCTOR
фирмы Technology Research (программу, написанную либо пья-
ным, либо сумасшедшим);
- хакер предпочитает работать ночью, так как в это время су-
ток закрыты пивные заведения, а телефон почти не звонит.
Если он зазвонил, то это звонок другого хакера;
- музыка может быть помехой во время чтения художественной ли-
тературы, но не во время работы (работы?!);
- как правило, критику хакер воспринимает без мордобития,
всегда находит оправдание, но указанную ошибку исправляет
(если ее не исправил другой хакер);
- хакер может страдать тяжелой формой мании величия, но всег-
да об этом предупреждает;
- мыслительный процесс идет у хакера подсознательно. Это иног-
да приводит к тому, что ложась с женщиной в постель, хакер
вскакивает, осознав, что в пятисотой строке его программы
стоит неправильное условие перехода на метку QWERTASDF (та-
кая метка также в порядке вещей, так как хакеру не хватает
энергии не только на написание комментариев, но и на приду-
мывание удобочитаемых меток - гораздо проще провести кула-
ком по клавиатуре).
Внешний вид хакера может шокировать непривычного челове-
ка. Советский программист обычно представляется слегка лысова-
тым, с 8-килограммовой фортрановской распечаткой в коричневом
портфеле и колодой перфокарт под мышкой. Хакер же может отпус-
тить волосы до пояса, слушать тяжелый рок и носить в портфеле
школьные учебники.
Интереснее всего хакерам живется в Советском Союзе.
Во-первых, они вольны в своих действиях, так как здесь хаке-
ров в тюрьму не сажают и штрафам не подвергают; во-вторых, до-
кументация на программу или язык программирования появляется у
хакера уже после того, как он окончательно разобрался с инте-
ресующим его вопросом (я, например, получил описание процессо-
ра Z80 сразу, как только понял использование регистра I, то
есть самое сложное, что в этом процессоре есть). Если же ха-
кер решил изучить язык программирования и купил о нем книжку в
киоске Союзпечать, это еще больше активизирует процесс интел-
лектуальной деятельности. Я готов пожать руку даже программис-
ту на Паскале, если он смог разобраться в книге "Начала прог-
раммирования на языке Паскаль" (С.А. Абрамов, Е.В. Зима, Мос-
ква <<Наука>>, 1987) до того, как научился писать комментарии
и выделять двумя пробелами конструкцию REPEAT ... UNTIL. Он
скорее всего хакер и Паскаль забросит довольно скоро.
Поскольку сейчас в советских магазинах нельзя купить не
только пакет P-CAD для IBM PC, но и колбасу, хакер часто начи-
нает с того, что собственными силами собирает компьютер.
Естественно, что это игрушка для дома и семьи с восьмиразряд-
ным процессором и памятью в пределах 64К, но именно на таком
аппарате хакер начинает воистину вытворять чудеса. Описать
ощущения, вызываемые сообщением языка Си "Числа с плавающей
запятой не поддерживаются" после 3-х минутной подгрузки биб-
лиотеки stdio.h с магнитофона, невозможно, это надо прочуство-
вать. Тем не менее, даже в таких условиях хакеру удается напи-
сать самообучающуюся программу игры в дурака, не используя
библиотеки вообще.
Интересные ситуации возникают при встрече двух или более
хакеров. и один структурный программист не поймет сути вопро-
са, обсуждаемого хакерами, так как один хакер может изъяс-
няться в шестнадцатиричной системе, другой - в десятичной,
третий не изъясняться вообще, и все будут прекрасно понимать
друг друга.
Первый раз в своей жизни встретив другого хакера, я был
немало удивлен тем, что меня понимали с полуслова и мне не
приходилось все разжевывать и повторять по пять-шесть раз в
размеренном темпе. Меня не переспрашивали, какую систему счис-
ления я употребил в данный момент времени и задавали вопросы,
на которые можно было дать ответ. Судя по удивлению в глазах
моего коллеги, он, как и я, никогда прежде не сталкивался с
другими хакерами.
Беседы между хакерами приносят весьма ощутимую пользу,
однако подпускать к одной ЭВМ двух хакеров одновременно недо-
пустимо. К положительным результатам это не приведет, более
того, может закончиться кровопролитием. При всем том, не ис-
ключается, что разняв двух дерущихся хакеров и посадив их в
разные комнаты, можно получить абсолютно идентичные программы.
Хакер - человек спокойный, но и его можно вывести из се-
бя вопросом "Какой командой процессора колобок ест черта?" или
"Каким образом снять защиту от копирования с программы
Infiltrator?".
Работа хакера напоминает работу столяра, забивающего
гвоздь одним ударом молотка. Хакер некоторое время ходит вок-
руг машины (радиус хождения может составлять до нескольких ты-
сяч километров), затем садится за клавиатуру и делает за один
вечер то, на что было выделено 15 дней. Не надо думать, что
четырнадцать дней, которые хакер потратил на хождение вокруг
машины пропали даром: все это время хакер подсознательно обду-
мывал поставленную задачу. Другое дело, была ли необходимость
в этих раздумьях.
Когда хакер заканчивает какую-либо работу, он твердо уве-
рен: все, что он сделал - хлам, однако вслух это мнение не
высказывает, так как заказчик всегда остается доволен. Хакер,
конечно, расстроится, если случайно уничтожит шестимесячную
работу, но глубоко в душе он будет рад тому, что, расставшись
с хламом, он сможет решить задачу гораздо красивее. Однако...
смотри начало абзаца.
Н. Родионов
07.1990
P.S. Написать этот опус меня побудила статья "Настоящие прог-
раммисты не используют Паскаль" в журнале "Datamation".
Автор этой статьи - настоящий хакер, и мне не хотелось
бы, чтобы "мое" сравнивали с "его", поскольку его уро-
вень на несколько порядков выше.
──────────────────────────────────────────────────────────────
Исходный текст предоставлен:
BBS 454-6696;00:00/09:00
Стас @ sts.msk.ru
Восстановлен после некорректной перекачки с IBM, сформа-
тирован и отредактирован:
BBS 164-1684;22:45/07:20
Алексей @ alex.msk.ru
On: ГРАФИК (на BBS)
Читалку пришил:
MDM 496-8508;12:00/21:00
Дмитрий @ oldman.msk.ru
Other articles:
|
|
Similar articles:
В этот день... 17 December