Система Аттестаций

Равнение на толпу, на компьютерную «тусовку», теперь приводит не к росту квалификации хэкера, а, скорее, к ее падению. Недаром слово «фидошник» ныне превратилось в ругательное, а признаком моды стало не умение разбираться в компьютерных тонкостях, а старинная русская мужицкая любовь к пиву.

Хэкеры никогда не судили друг о друге по дипломам или другим бумажкам, но мир состоит не из одних хэкеров. Более того, даже среди «компьютерщиков» хэкеров ныне — меньшинство. С другой стороны, экспоненциальный рост сложности компьютеров и ПО приводит к тому, что для воспитания хэкера нужно прилагать все больше усилий. Программы, «купившие бы бессмертие и билет в рай» хэкеру 80-х, на современной технике пишутся в один присест. Создание современных хитов требует, помимо наработки сильных технических навыков, и владения организационными методами, и способности объединить и возглавить сообщество талантливых программистов-энтузиастов со всего мира, привести к созданию конкурентоспособного программного продукта.

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

Хэкерские уровни, начиная с седьмого и заканчивая нулевым, соответствуют белому, красному, зеленому, синему и черному хэкерским браслетам. Ниже приводится табличка соответствия. Аттестации проводятся два раза в год, поэтому время роста с одного уровня до следующего – от полугода до полутора лет, в зависимости от усердия и индивидуальных качеств.

Подробные требования к хэкерским уровням можно узнать на нашем сайте hscool.netculb.ru/levels.html.

Циклы Гражданской Школы Хэкеров

Конечно же, в Гражданской Школе Хэкеров есть и обычные семинары «западного» типа. Тематически они объединены в циклы. Первый, самый важный цикл, называется «БАЗА». Шутя, его многие называют «хэкерским кихоном». Из-за своей важности цикл «БАЗА» детально разработан, читался более двадцати раз в четырех различных странах людям различных языков, традиций и взглядов на жизнь. Сейчас практически весь цикл «БАЗА» удалось сжать до трех несложных упражнений, которые ниже будут представлены на суд читателя.

Циклы рассматриваются как более низкая, черновая и устаревшаялая форма методики. Использование учителей и технических специалистов в виде живого видеомагнитофона – неразумная трата их сил и времени. (Следует помнить, что в слова Учитель, Мастер, специалист в Школе вкладывается больше смысла, чем в обычной «советской» педагогической практике.) Если не хватает интеллектуальных сил разработать эффективные упражнения, выполнения которых способен проконтролировать каждый, можно использовать замечательные программированные пособия. В качестве примера можно привести замечательный тьютор Emacs’а, разработанный Ричардом Столлменом, автором Emacs’а. Без сомнения, использование авторского тьютора намного эффективнее, чем если бы на каждое занятие по Emacs’у пришлось бы приглашать самого Ричарда. И уж куда эффективнее «западных» семинаров с плохо подготовленными «учителями».

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

Хэкинг-раны

По словарю хэкера [esr], хэкинг-раном (hacking run) называется усиленная практика, при которой компьютеру уделяется внимание более чем 12 часов в сутки. Разумеется, хэкинг-раны «по старинке», наряду с быстрым продвижением хэкера, имели ряд существенных недостатков. Нарушался суточный режим сна и питания, портилось здоровье, осанка.

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

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

В обычной жизни нас постоянно что-то отвлекает и не дает до конца отдаваться любимому делу. У кого-то проблемы на работе, у кого-то родители или дети, другим нужно готовить пищу и поддерживать быт. На хэкинг-ране можно временно оторваться от бытовых проблем и посвятить 1-7 дней своей жизни интенсивным практикам. Поэтому я рассматриваю хэкинг-ран как довольно перспективную форму практик. Физические надобности человека на хэкинг-ране сведены к необходимому минимуму, а совместные трапезы по красивому восточному ритуалу существенно экономят время, освобождая его для личного роста.

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

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

Хэкинг-ран проходит хорошо, если:

  • Люди заранее распланировали свои дела так, чтобы посвятить все время хэкинг-рана практике.
  • Все продукты предусмотрительно куплены заранее.
  • Хэкеры молча и сосредоточенно практикуют.
  • Все сидят неподвижно, с хорошей осанкой.
  • Все бодры и заряжены энтузиазмом к работе.
  • Хэкеры рассчитывают свои силы и заранее выходят по надобности на перерывах.
  • До начала практики все подготовили необходимую литературу, бумагу для записей, ручки, калькуляторы.
  • Курящие (или имеющие другие дурные привычки) заранее смирились с мыслью расстаться со своими дурными пристрастиями хотя бы на время хэкинг-рана.
  • После хэкинг-рана даже люди с нарушенным суточным режимом начинают ложиться спать и вставать вовремя, перестают испытывать зависимость от курева (алкоголя, наркотиков).

И наоборот, хэкинг-ран не удается, если:

  • Постоянно кому-нибудь надо куда-нибудь позвонить, съездить, встретиться с кем-либо или ответить на телефонные звонок.
  • Постоянно кому-нибудь из практикующих приходится бегать по магазинам.
  • Люди пытаются разговаривать друг с другом при каждом удобном для этого случае. Или другим образом (жестами, покашливаниями, шмыганьем...) отвлекают друг друга.
  • Практикующие все время зевают, глаза закрываются.
  • Практики то и дело прерываются из-за того, что кому-то нужно выйти.
  • На практике кто-нибудь то и дело встает взять нужную книгу, заменить закончившуюся ручку...
  • Постоянно кто-нибудь выходит покурить, попить пива и т. д.
  • У людей полностью нарушается режим дня, они заражаются друг от друга вредными привычками.

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

Три упражнения Гражданской Школы Хэкеров

Когда я был подростком, знающим лишь пару диалектов Бейсика, и начинал изучать ассемблер, я начал догадываться, что за наивными операциями AND, OR, NOT и XOR, (которые я к тому времени использовал лишь в операторах IF) стоит целая вселенная, неизвестная мне. Общеобразовательная школа только намекает на этот мир, и даже университеты подробно на нем не останавливаются. Тем не менее, трудно представить себе хорошего хэкера, не владеющего в совершенстве математической логикой и арифметикой различных систем счисления. Мне казалось, что для того, чтобы овладеть черной магией битиков и байтиков, нужно выполнить много сложных упражнений. Но я не знал, где их найти. Мне потребовались годы, чтобы самостоятельно научиться складывать и «ксорить» (XOR — полезная логическая операция, см. далее) шестнадцатеричные и другие числа в уме. Когда я понял, что нигде не существует хорошо разработанных упражнений на эту необходимую тему, я решил разработать их сам.

Описываемые три легких в объяснении упражнения конденсируют пятнадцатилетий опыт низкоуровневого программирования. Разработка каждого из них заняла у меня около года. Но, начав практиковать эти упражнения, вы поймете, что дело того стоило. Три упражнения БАЗЫ покрывают все области компьютерной арифметики, которая активно используется практикующим хэкером.

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

Поначалу упражнения кажутся трудными, но, выполнив каждое хотя бы сотню раз, вы обнаружите, что идеи, заложенные в них, очень просты. Выполнив каждое из них по тридцать тысяч раз, вы станете владеть «компьютерной» арифметикой так же свободно, как обычной.

Лучше всего переходить к следующему упражнению уже после того, как вы в совершенстве овладели предыдущим. Но возможен и вариант параллельного изучения разных сторон БАЗЫ.

1. Фыва-повелитель драконов завязывает огненный браслет.

Упражнение развивает точность и самоконтроль.

Вам дается (или вы выбираете) десятичное число. Начиная с него по кругу, по часовой стрелке, вы пишете три других записи этого числа последовательно в шестнадцатеричной, двоичной и восьмеричной системах счисления. Последний этап упражнения («завязывание браслета», «Укрощение Дракона») это перевод числа из «компьютерной» восьмеричной системы счисления в обычную, десятичную. Должно получиться такое же число, которое вы взяли в начале.

2. Ядерные четки сурового монаха из Йцуке.

Упражнение развивает внимательность и настойчивость.

Берутся два числа («левое» и «правое»), обычно шестнадцатеричные и одинакового размера (ниббл, байт или слово). Начинающие могут взять двоичные числа. Также задается начальное значение одного бита, который мы будем называть Carry Flag’ом. Одно перекладывание четки соответствует двум последовательным циклическим сдвигам через Carry Flag – «левое» число сдвигается на один бит вправо, а «правое» – на один бит влево. (RCR-RCL)

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

3. Тигр Олждэ мягко беседует с юнгой.

Упражнение развивает логику.

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

Советы тем, кто решил сделать хэкерство делом своей жизни

  1. Чистота. Не употребляйте спиртные напитки, наркотики и не курите. Оградите себя от бестолковой и пустой литературы, ненужных электронных конференций. Это только ворует ваше время, деньги, и вредит вашему мозгу.
  2. Цените знания, а не вещи. Не гоняйтесь за большими деньгами. Довольствуйтесь тем, что вам есть, где жить, что есть и на чем практиковать. Помните – деньги и вещи всегда можно потерять, знания и опыт же останутся с вами навсегда, всегда вас прокормят.
  3. Любовь к людям. Будьте добры к людям, помогайте им бескорыстно. Ваше искусство должно нести людям пользу, а не вред. Разрушая чужую работу, вы наживаете себе врагов, а не друзей, вредите доброму имени Школы. Недаром представители всех великих Школ мира повторяли «We exist only to serve» - «Мы существуем для того, чтобы служить.»
  4. Креативность. День, который вы провели, потребляя чужую информацию (из книг, журналов, телевизора, Интернет), и не написав ни строчки кода – пустой день.


Литература

[esr] Eric S. Raymond. New Hackers Dictionary. (Есть русский перевод: Эрик С. Рэймонд. Новый словарь хакера.)

[ken] Thompson, Ken, Reflections on Trusting Trust, Communications of the ACM 27 (8), 1984. (Есть русский перевод)

[C++] Bjarn Straustroup. C++ Programming Language. (Есть русский перевод)

[hack1] Bruce Sterling. Hackers’ Crackdown: Law and Disorder of the Electronic Frontier. (Есть русский перевод)

[hack2] Steve Levy Hackers, Heroes of the Computer Revolution. (Есть русский перевод)