Как стать хэкером?
Быть хэкером - это огромное удовольствие, но это удовольствие такого рода, которое требует массы усилий. Для таких усилий нужна мотивация. Атлеты-чемпионы черпают мотивацию из своего рода физического удовольствия, получаемого от доведения собственного тела до совершенства, от преодоления собственных физических пределов. Подобно этому, чтобы быть хэкером вы должны получать максимум удовольствия от решения проблем, от оттачивания своих навыков, от тренировки своего интеллекта.
Если же вы не из тех, кто ощущает подобные вещи естественным образом, то вам понадобится стать таким, чтобы сделаться хэкером.
Вы также должны развить что-то вроде веры в ваши собственные способности к обучению. Веры в то, что даже если вы возможно и не знаете всего, что необходимо для решения проблемы, но если вы освоили лишь кусочек и на этом научились, то уже знаете достаточно, чтобы решить и следующий кусок - и так далее, пока все не будет сделано.
Статус в хэкерской культуре
Как и большинство культур без денежной экономики, Хэкерландия строится на репутации. Вы пытаетесь решить интересные проблемы, но вот насколько они интересны, и насколько в действительности хороши ваши решения, - это нечто такое, о чем обычно могут судить только (в техническом смысле) равные вам или превосходящие вас.
Таким образом, когда вы играете в хэкерские игры, вы учитесь вести счет главным образом по тому, что думают о вашем мастерстве другие (именно поэтому вы не будете хэкером до тех пор, пока вас не станут так называть другие хэкеры). Данный факт затеняют как образ хэкера-одиночки, так и определенные табу хэкерской культуры (ныне существенно ослабевшие, но все еще мощные), не допускающие, чтобы чье-то эго или внешнее признание вообще могли бы быть мотивацией для хэкера.
В частности, Хэкерландия - это то, что антропологи именуют “культурой даров”. Вы зарабатываете статус и репутацию не тем, что руководите другими людьми, и не тем что прекрасны, и не тем что имеете вещи, которые являются предметом вожделения других. Но скорее тем, что раздаете вещи. В частности, одаривая своим временем, своим мастерством и результатами своего творчества.
Научитесь программировать
Это, конечно же, фундаментальный хэкерский навык. Если вы не знаете ни одного компьютерного языка, я рекомендовал бы начать с языка Python. Он понятно разработан, хорошо документирован и относительно доброжелателен к новичкам. Несмотря на то, что он хорош для первого языка, это не просто игрушка. Это очень мощный и гибкий язык, хорошо подходящий для больших проектов.
Но знайте, что вы не достигнете хэкерского уровня мастерства (или даже просто уровня хорошего программиста), если будете знать лишь один язык. Вам необходимо научиться мыслить о проблемах программирования вообще, независимо от любого конкретного языка. Чтобы быть настоящим хэкером, вам надо достичь уровня, на котором вы сможете выучить новый язык за несколько дней, соотнося положения руководства с тем, что вам уже известно. Это означает, что вам следует выучить несколько очень разных языков.
Какой язык следует выучить первым?
HTML, если вы его еще не знаете. Есть масса расфуфыренных и потрясающе бездарных книг по HTML, но обескураживающе мало хороших.
Но HTML - это не полноценный язык программирования. Когда вы почувствуете, что готовы начать программировать, я бы порекомендовал начать с языка Python. Многие люди будут рекомендовать вам начинать с Perl, и этот язык более популярен чем Python, но его сложнее выучить.
Си - действительно важный язык, но он и намного сложнее, нежели Python или Perl. Не пытайтесь выучить его первым.
Достаньте один из вариантов Unix в исходных кодах, научитесь его использовать и с ним работать
Я полагаю, что вы имеете персональный компьютер или можете получить к нему доступ. Единственный и самый важный шаг, который любой из новичков может предпринять для приобретения хэкерских навыков, - это раздобыть копию Linux или одной из версий BSD-Unix, установить ее на персональной машине и запустить.
Да, в мире есть и другие операционные системы помимо Unix. Но их распространяют в двоичном виде - вы не сможете читать коды и не сможете их модифицировать. Учиться хэкерству на машинах, работающих под DOS, Windows или MacOS - это все равно что учиться танцевать полностью загипсованным.
Кроме того, Unix - это операционная система Интернета. Хотя вы можете научиться использовать Интернет и не зная Unix, но вы не можете быть Интернет-хэкером, не понимая Unix. По этой самой причине сегодняшняя хэкерская культура является весьма сильно Unix-сконцентрированной. (Это не всегда было так, и некоторым из прежних хэкеров такое положение дел не очень по нраву, но симбиоз между Unix и Интернетом стал настолько прочен, что даже сил Microsoft не хватает, чтобы серьезно на это влиять.)
Так что заводите себе Unix, мне самому нравится Linux, но есть и другие варианты (и да-да, вы можете работать как под Linux, так и под DOS/Windows на одной и той же машине). Выучите эту ОС. Работайте с ней. Возитесь с ней. Общайтесь через нее с Интернетом. Читайте коды. Модифицируйте их. Вы получите такой программистский инструментарий (включая C, Lisp и Perl), о котором любая из ОС Microsoft и не мечтала. Вы получите удовольствие, и вы усвоите больше знаний, чем предполагали в процессе обучения, когда оглянетесь на этот процесс уже будучи мастером-хэкером.
Эрик С. Рэймонд
Eric S. Raymond <esr@snark.thyrsus.com>
Текущая версия оригинала (на английском языке) живет по адресу http://www.ccil.org/~esr/faqs/hacker-howto.html.
Полная версия перевода статьи на русский язык живёт здесь: http://www.catb.org/~esr/faqs/hacker-howto.ru.htm.
Если же вы не из тех, кто ощущает подобные вещи естественным образом, то вам понадобится стать таким, чтобы сделаться хэкером.
Вы также должны развить что-то вроде веры в ваши собственные способности к обучению. Веры в то, что даже если вы возможно и не знаете всего, что необходимо для решения проблемы, но если вы освоили лишь кусочек и на этом научились, то уже знаете достаточно, чтобы решить и следующий кусок - и так далее, пока все не будет сделано.
Статус в хэкерской культуре
Как и большинство культур без денежной экономики, Хэкерландия строится на репутации. Вы пытаетесь решить интересные проблемы, но вот насколько они интересны, и насколько в действительности хороши ваши решения, - это нечто такое, о чем обычно могут судить только (в техническом смысле) равные вам или превосходящие вас.
Таким образом, когда вы играете в хэкерские игры, вы учитесь вести счет главным образом по тому, что думают о вашем мастерстве другие (именно поэтому вы не будете хэкером до тех пор, пока вас не станут так называть другие хэкеры). Данный факт затеняют как образ хэкера-одиночки, так и определенные табу хэкерской культуры (ныне существенно ослабевшие, но все еще мощные), не допускающие, чтобы чье-то эго или внешнее признание вообще могли бы быть мотивацией для хэкера.
В частности, Хэкерландия - это то, что антропологи именуют “культурой даров”. Вы зарабатываете статус и репутацию не тем, что руководите другими людьми, и не тем что прекрасны, и не тем что имеете вещи, которые являются предметом вожделения других. Но скорее тем, что раздаете вещи. В частности, одаривая своим временем, своим мастерством и результатами своего творчества.
Научитесь программировать
Это, конечно же, фундаментальный хэкерский навык. Если вы не знаете ни одного компьютерного языка, я рекомендовал бы начать с языка Python. Он понятно разработан, хорошо документирован и относительно доброжелателен к новичкам. Несмотря на то, что он хорош для первого языка, это не просто игрушка. Это очень мощный и гибкий язык, хорошо подходящий для больших проектов.
Но знайте, что вы не достигнете хэкерского уровня мастерства (или даже просто уровня хорошего программиста), если будете знать лишь один язык. Вам необходимо научиться мыслить о проблемах программирования вообще, независимо от любого конкретного языка. Чтобы быть настоящим хэкером, вам надо достичь уровня, на котором вы сможете выучить новый язык за несколько дней, соотнося положения руководства с тем, что вам уже известно. Это означает, что вам следует выучить несколько очень разных языков.
Какой язык следует выучить первым?
HTML, если вы его еще не знаете. Есть масса расфуфыренных и потрясающе бездарных книг по HTML, но обескураживающе мало хороших.
Но HTML - это не полноценный язык программирования. Когда вы почувствуете, что готовы начать программировать, я бы порекомендовал начать с языка Python. Многие люди будут рекомендовать вам начинать с Perl, и этот язык более популярен чем Python, но его сложнее выучить.
Си - действительно важный язык, но он и намного сложнее, нежели Python или Perl. Не пытайтесь выучить его первым.
Достаньте один из вариантов Unix в исходных кодах, научитесь его использовать и с ним работать
Я полагаю, что вы имеете персональный компьютер или можете получить к нему доступ. Единственный и самый важный шаг, который любой из новичков может предпринять для приобретения хэкерских навыков, - это раздобыть копию Linux или одной из версий BSD-Unix, установить ее на персональной машине и запустить.
Да, в мире есть и другие операционные системы помимо Unix. Но их распространяют в двоичном виде - вы не сможете читать коды и не сможете их модифицировать. Учиться хэкерству на машинах, работающих под DOS, Windows или MacOS - это все равно что учиться танцевать полностью загипсованным.
Кроме того, Unix - это операционная система Интернета. Хотя вы можете научиться использовать Интернет и не зная Unix, но вы не можете быть Интернет-хэкером, не понимая Unix. По этой самой причине сегодняшняя хэкерская культура является весьма сильно Unix-сконцентрированной. (Это не всегда было так, и некоторым из прежних хэкеров такое положение дел не очень по нраву, но симбиоз между Unix и Интернетом стал настолько прочен, что даже сил Microsoft не хватает, чтобы серьезно на это влиять.)
Так что заводите себе Unix, мне самому нравится Linux, но есть и другие варианты (и да-да, вы можете работать как под Linux, так и под DOS/Windows на одной и той же машине). Выучите эту ОС. Работайте с ней. Возитесь с ней. Общайтесь через нее с Интернетом. Читайте коды. Модифицируйте их. Вы получите такой программистский инструментарий (включая C, Lisp и Perl), о котором любая из ОС Microsoft и не мечтала. Вы получите удовольствие, и вы усвоите больше знаний, чем предполагали в процессе обучения, когда оглянетесь на этот процесс уже будучи мастером-хэкером.
Эрик С. Рэймонд
Eric S. Raymond <esr@snark.thyrsus.com>
Текущая версия оригинала (на английском языке) живет по адресу http://www.ccil.org/~esr/faqs/hacker-howto.html.
Полная версия перевода статьи на русский язык живёт здесь: http://www.catb.org/~esr/faqs/hacker-howto.ru.htm.
