взгляд на жизнь — это важно, но мастерство — много¬кратно важнее. Позиция не заменит компетентности, и существует опре¬деленный набор базовых навыков, которыми вам необходимо обладать, прежде чем любой из хакеров помыслит назвать хакером и вас.
Этот базовый набор со временем потихоньку изменяется по мере того, как технология порождает новые навыки и делает ненужными уста¬ревшие. Например, обычно упоминалось программирование на машин¬ном языке, но, вплоть до недавнего времени, в набор не включали язык HTML. Однако в сегодняшний комплект вполне определенно входят следующие компоненты:
? Научитесь программировать.
Это, конечно же, фундаментальный хакерский навык. Если вы не знаете ни одного компьютерного языка, рекомендуем начать с языка Python. Он понятно разработан, хорошо документирован и относительно доброжелателен к новичкам. Несмотря на то, что он хорош для первого языка, это не просто игрушка. Это очень мощный и гибкий язык, хоро¬шо подходящий для больших проектов.
Но знайте, что вы не достигнете хакерского уровня мастерства (или даже просто уровня хорошего программиста), если будете знать лишь один язык. Вам необходимо научиться мыслить о проблемах про¬граммирования вообще, независимо от любого конкретного языка. Что¬бы быть настоящим хакером, вам надо достичь уровня, на котором вы сможете выучить новый язык за несколько дней, соотнося положения руководства с тем, что вам уже известно. Это означает, что вам следует выучить несколько очень разных языков.
Если вы занимаетесь серьезным программированием, то вам при¬дется выучить Си, основной язык операционной системы Unix (хотя это и не тот язык, который следует пытаться выучить первым). Другие языки первостепенной важности для хакеров — это Perl и LISP. Язык Perl име¬ет смысл выучить из практических соображений: он очень широко ис¬пользуется для активных web-страниц и системного администрирова¬ния, так что даже если вам никогда не придется писать на Perl, вы должны научиться его читать. LISP стоит выучить ради тех глубоких про¬свещенных познаний, которые вы обретете, когда наконец его освоите. Эти познания сделают вас прекрасным программистом на всю оставшу¬юся жизнь, даже если вы никогда особо и не будете использовать сам
LISP.
Лучше всего, на самом деле, выучить все четыре этих языка (Py¬thon, C, Perl, и LISP). Помимо того, что это самые важные хакерские языки, они демонстрируют очень разные подходы к программированию, и каждый из них научит вас ценным вещам.
Мы не можем дать здесь развернутые инструкции относительно того, как научиться программировать, — это сложное искусство. Но мо¬жем сказать вам, что книги и курсы этому не научат (многие, возможно, большинство лучших хакеров — это самоучки). Что этому учит, так это чтение кодов и написание кодов.
Научиться программировать — это как научиться писать хорошим естественным языком. Самый лучший способ для этого — почитать что-то из написанного мастерами, затем написать немного самому; про¬честь побольше, написать немного побольше; прочитать еще больше, на¬писать еще побольше... И повторять этот процесс до тех пор, пока ваши программы не разовьются в нечто мощное и экономичное.
Отыскать хорошие коды для чтения раньше было сложно, потому что было очень мало больших программ, доступных в исходных кодах и пригодных для изучения и возни юных хакеров. Ныне ситуация карди¬нально изменилась: программы в исходных кодах, программистский ин¬струментарий и операционные системы (все это создано хакерами) те¬перь широко доступны. Поэтому...
? Достаньте один из вариантов Unix в исходных кодах, научитесь его использовать и с ним работать.
Полагаем, что вы имеете персональный компьютер или можете получить к нему доступ. Единственный и самый важный шаг, который любой из новичков может предпринять для приобретения хакерских на¬выков, — это раздобыть копию Linux или одной из версий BSD-Unix, ус¬тановить ее на персональной машине и запустить.
Да, в мире есть и другие операционные системы, помимо Unix. Но их распространяют в двоичном виде — вы не сможете читать коды и не сможете их модифицировать. Учиться хакерству на машинах, работа¬ющих под DOS, Windows или MacOS — это все равно, что учиться танце¬вать полностью загипсованным.
Кроме того, Unix — это операционная система Internet. Хотя вы можете научиться использовать Internet и не зная Unix, но вы не можете быть Internet-хакером, не понимая Unix. По этой самой причине сего¬дняшняя хакерская культура является весьма сильно Unix-сконцентри-рованной. (Это не всегда было так, и некоторым из прежних хакеров та¬кое положение дел не очень по нраву, но симбиоз между Unix и Internet стал настолько прочен, что даже сил Microsoft не хватает, чтобы серьезно на это влиять.)
Так что заводите себе Unix, лучше всего Linux, но есть и другие ва¬рианты (и да-да, вы можете работать как под Linux, так и под DOS/
Windows на одной и той же машине). Выучите эту ОС. Работайте с ней. Возитесь с ней. Общайтесь через нее с Internet. Читайте коды. Модифи¬цируйте их. Вы получите такой программистский инструментарий (включая C, Lisp и Perl), о котором любая из ОС Microsoft и не мечтала. Вы получите удовольствие, и вы усвоите больше знаний, чем предпола¬гали в процессе обучения, когда оглянетесь на этот процесс уже будучи мастером-хакером.
? Научитесь использовать World Wide Web и писать на
HTML.
Большинство из тех вещей, что созданы хакерской культурой, де¬лают свое дело невидимо, помогая работать фабрикам, учреждениям и университетам без сколько-нибудь заметного влияния на жизнь не-хаке-ров. WWW — это одно большое исключение, гигантская блестящая ха-керская игрушка, которая даже по признанию политиков изменяет мир. Лишь по одной этой причине (а также и множеству других приятных причин) вам следует научиться работать с Web.
Это не означает, что нужно просто научиться управляться с брау¬зером (это любой умеет), но научиться писать на HTML, языке разметки документов Web. Если вы еще не умеете программировать, то писание на HTML обучит ваше мышление некоторым полезным привычкам, кото¬рые пригодятся при освоении языков программирования. Так что делай¬те домашнюю страничку.
Но простое обладание домашней страничкой даже и близко не подведет вас к тому, чтобы стать хакером. В Web полным-полно домаш¬них страничек. Большинство из них — это бессмысленный, бесполезный хлам. Крайне броско и привлекательно оформленный хлам, бесспорно, но все равно хлам.
Чтобы быть стоящей, ваша страничка должна иметь «контент» — содержание. Она должна быть интересной и/или полезной для других ха¬керов.