Научитесь программировать.

Это, конечно же, фундаментальный хакерский навык. Если вы не знаете ни одного компьютерного языка, я рекомендовал бы начать с языка Python ещё есть Русскоязычный сайт. Он аккуратно разработан, хорошо документирован и сравнительно доброжелателен к новичкам. Несмотря на то, что он хорош как первый язык, это не просто игрушка. Это очень мощный и гибкий язык, хорошо подходящий для больших проектов.

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

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

Если соберётесь заниматься серьёзным программированием, то вам придется выучить Си, основной язык операционной системы Unix. C++ также родственен Си. Хотя ни то ни другой не являются языками, с которых стоит начинать.

Другие языки первостепенной важности для хакеров — это Perl и LISP. Язык Perl имеет смысл выучить из практических соображений: он очень широко используется для активных web-страниц и системного администрирования, так что даже если вам никогда не придется писать на Perl, вы должны научиться его читать. LISP стоит выучить хотя бы ради тех глубоких познаний, которые вы обретете, когда наконец поймёте его. Эти познания сделают вас прекрасным программистом на всю оставшуюся жизнь, даже если вы никогда особо и не будете использовать сам LISP (Первоначальные навыки программирования на LISP можно достаточно легко получить, создавая и модифицируя расширения текстового редактора Emacs).

Лучше всего, на самом деле, выучить все четыре этих языка (Python, C/C++, Perl, и LISP). Помимо того, что это самые важные хакерские языки, они демонстрируют очень разные подходы к программированию и каждый из них научит вас ценным вещам.

Я не могу дать здесь развернутые инструкции относительно того, как научиться программировать, — это сложное искусство. Но я могу сказать вам, что книги и курсы этому не научат (многие, возможно, большинство лучших хакеров — это самоучки). Что на самом деле может научить программированию, так это (а) чтение исходного кода и (б) написание исходного кода .

Научиться программировать — это как научиться писать хорошим естественным языком. Самый лучший способ для этого — почитать что-то из написанного признанными мастерами литературы, затем написать немного самому; прочесть побольше, написать немного побольше; прочитать еще больше, написать еще побольше… И повторять этот процесс до тех пор, пока ваши программы не разовьются в нечто мощное и экономичное.

Отыскать хорошие исходные тексты для изучения раньше было сложно, потому что было очень мало больших программ, доступных в исходных текстах и пригодных для изучения и экспериментов юных хакеров. Теперь ситуация кардинально изменилась: программы в исходных текстах, средства разработки и целые операционные системы (всё это создано хакерами) теперь широко доступны. Что подводит меня прямо к следующему разделу…

2. Достаньте один из вариантов Unix в исходных текстах, научитесь его использовать и с ним работать.

Я полагаю, что вы имеете персональный компьютер или можете получить к нему доступ (сегодня этим ребятам всё достается так легко :-)). Единственный и самый важный шаг, который любой из новичков может предпринять для приобретения хакерских навыков, — это раздобыть копию Linux или одной из версий BSD-Unix, установить ее на своём компьютере, и использовать её.

Да, в мире есть и другие операционные системы помимо Unix. Но их распространяют в скомпилированных машинных кодах — вы не сможете легко изучать эти коды, и тем более не сможете их модифицировать. Учиться хакерству на машинах, работающих под DOS, Windows или MacOS — это все равно что учиться танцевать, будучи полностью загипсованным.

Правда, под MacOS/X это возможно, но в исходных текстах доступна только часть системы, так что вполне возможно, что вы наткнётесь на много стен, и вам придётся выработать в себе неприятную зависимость от пропритарного кода Apple. Хотя, если вы сконцентрируете своё внимание на Unix, лежащей в её основе, вы сможете кое чему научится.

Кроме того, Unix — это операционная система Интернета. Хотя вы можете научиться использовать Интернет и не зная Unix, вы не сможете быть Интернет-хакером, не понимая Unix. По этой самой причине сегодняшняя хакерская культура является весьма сильно Unix-сконцентрированной. (Это не всегда было так, и некоторым из прежних хакеров такое положение дел не очень нравиться, но симбиоз между Unix и Интернетом стал настолько прочен, что даже сил Microsoft не хватает, чтобы серьезно на это влиять.)

Так что установите себе Unix — мне самому нравится Linux, но есть и другие варианты (тем более, что вы можете работать как под Linux, так и под DOS/Windows на одной и той же машине). Выучите эту ОС. Работайте с ней. Экспериментируйте с ней. Общайтесь через неё с Интернетом. Читайте исходные тексты. Модифицируйте их. Вы получите такой богатый программистский инструментарий (включая Python, C, Lisp и Perl), о котором любая из ОС фирмы Microsoft и не мечтала. Вы получите массу удовольствия, и усвоите гораздо больше знаний, чем предполагали в процессе обучения, и поймёте это, когда взгянете на вась этот процесс уже будучи мастером-хакером.

Для дополнительной информации об изучении Unix см. The Loginataka.

Чтобы заполучить в свои Linux, см. Where can I get Linux (Где мне взять Linux).

Как научиться программировать С НУЛЯ?!


Похожие статьи.

Понравилась статья? Поделиться с друзьями: