To Eric's FAQs Page

Оригінал англійською мовою: How To Become A Hacker.


Table of Contents

Навіщо потрібен цей документ?
Що таке хакер?
Хакерский підхід
1. Світ повний привабливих проблем, що чекають свого рішення.
2. Ніхто і ніколи не повинен вирішувати проблему двічі.
3. Нудьга і рутина - це зло.
4. Свобода - це благо.
5. Позиція не замінить компетентність.
Основні навики хакера
1. Навчитеся програмувати.
2. Дістаньте один з варіантів Unix в початкових кодах, навчіться його використовувати і з ним працювати.
3. Навчитеся використовувати World Wide Web і писати на HTML.
4. Якщо ви не знаєте Англійської мови - вивчіть її.
Статус в хакерськой культурі
1. Пишіть програми з відкритим початковим кодом.
2. Допомагайте тестувати і відлагоджувати програми з відкритим початковим кодом
3. Публікуйте корисну інформацію.
4. Допомагайте підтримувати роботу інфраструктури.
5. Підкоряйтеся самій хакерській культурі.
Зв'язок між хакером і дурнем
Риси способу життя
Інші ресурси
Питання, що часто ставляться

Як стати хакером

Эрик С. Рэймонд
Eric S. Raymond <esr@snark.thyrsus.com>

Навіщо потрібен цей документ?

Як редактор "Сленг-файлу" (Jargon File), я досить часто отримую електронну пошту від своїх новачків-ентузіастів з питаннями, які в кінцевому випадку зводилися до одного: "Як же мені навчитися, аби стати хакером?". Досить дивно, що наскільки можна побачити, не існує ніяких FAQs або Web-документів, які б мали в собі відповідь на це життєво важливе питання. Тому я вирішив написати власний документ. Якщо вам не подобається те що тут написано - напишіть власний документ.

Якщо ви читаєте копію цього документу офф-лайн, то остання версія оригіналу (на англійській мові) живе за адресою http://catb.org/~esr/faqs/hacker-howto.html.

Зауваження: Перелік частих запитань знаходиться знизу. Перечитайте його -двічі-, перш ніж слати будь якого листа із запитаннями.

Що таке хакер?

"Сленг-файл" має досить велику кількість визначень для терміну "хакер", більшість з яких пов’язані з технічною компетентністю та задоволенням, яке отримується від рішення проблем та подолання перешкод. Але, якщо ви бажаєте знати, як стати хакером, то дійсно важливими є два аспекти.

Існую певна спільнота, деяка спільна культура, яка складається із досвідчених програмістів та мережених чаклунів, яка веде свої коріння від прадавніх перших мікрокомп’ютерів з розподіленим часом та від самих початкових дослідів з мережею ARPAnet. Саме вони і дали народження терміну "хакер". Хакери побудували Інтернет. Хакери зробили першу операційну систему Unix тим, чим вона є сьогодні. Хакери ведуть Usenet. Хакери забезпечують роботу World Wide Web. Якщо ви є часткою цієї культури, якщо ви зробили в неї свій внесок, і інші представники цієї культури знають хто ви і називають вас хакером – тоді ви хакер.

Хакерский погляд на світ не обмежується лише культурою хакерів-програмістів. Є люди, які застосовують хакерський підхід стосовно інших речей, наприклад електроніки або музики. В дійсності, ви можете зустріти їх на найвищих рівнях науки та мистецтва. Софтварні хакери визнають таких, близьких за духом, людей і так само можуть називати їх «хакерами», деякі навіть стверджують що хакерська сутність насправді не залежить від середовища, в якому працює хакер. Але в подальшому ми сконцентруємося на навичках та методах софтверних хакерів, а також на традиціях тої загальної культури, наслідком якої став термін «хакер».

Існує і інша група людей, яка називає себе хакерами, але насправді ними не є. Це ті люди (головним чином молодики чоловічої статі), яких шукають за втручання у комп’ютерні та телефонні системи. Справжні хакери називають таких людей «крекерами» і не бажають мати з ними нічого спільного. Справжні хакери, в більшості, вважають крекерів лінивими, безвідповідальними і не дуже розумними. То, що людина здатна зламати систему безпеки, не робить його хакером, так само як уміння викрадати машини не робить вас автомобільним майстром. На жаль, багато журналістів і письменників введені в оману і використовують слово "хакер" для опису крекерів, і це нескінченно дратує справжніх хакерів.

Головна різниця в наступному: хакери роблять речі, а крекери їх зламують.

Якщо ви бажаєте стати хакером, то можете продовжувати читати далі. А якщо ви бажаєте стати крекером, то вам необхідно читати групу новин alt.2600 і приготуватись відсидіти до десяти років у в’язниці, коли виявите, що не настільки майстерні, як гадали. Це все, що я наміряний сказати о крекерах.

Хакерский підхід

1. Світ повний привабливих проблем, що чекають свого рішення.
2. Ніхто і ніколи не повинен вирішувати проблему двічі.
3. Нудьга і рутина - це зло.
4. Свобода - це благо.
5. Позиція не замінить компетентність.

Хакери вирішують проблеми і будують речі, вони вірять в свободу і в добровільну взаємодопомогу. Для того, щоб вас сприймали як хакера, ви повинні поводитися так, як якби це була ваша власна позиція. А для того, щоб поводитися так, ніби це ваша позиція, ви повинні дійсно вірити в цю позицію.

Але якщо ви розраховуєте культивувати хакерськи підходи лише для отримання визнання в культурі, то ви упустили суть. Стати такою людиною, хто вірить в подібні речі - це важливо для вас, тому що це допоможе вам навчитися і підтримає прагнення. Як і в будь-якій творчості, найефективніший спосіб стати майстром - це наслідувати світогляду майстрів, не тільки інтелектуально, але також і емоційно.

Отже якщо ви хочете стати хакером, то повторюйте наступні речі, поки не повірите в них:

1. Світ повний привабливих проблем, що чекають свого рішення.

Бути хакером - це величезне задоволення, але це задоволення такого роду, яке вимагає маси зусиль. Для таких зусиль потрібна мотивація. Атлети-чемпіони черпають мотивацію з свого роду фізичного задоволення, що отримується від доведення власного тіла до досконалості, від подолання власних фізичних меж. Подібно до цього, щоб бути хакером ви повинні отримувати максимум задоволення від рішення проблем, від відточування своїх навиків, від тренування свого інтелекту.

Якщо ж ви не з тих, хто відчуває подібні речі природним чином, то вам знадобиться стати таким, щоб зробитися хакером. Інакше ви виявите, що вся ваша хакерськая енергія вичерпана такими подразниками, як секс, гроші і успіх в суспільстві.

(Ви також повинні розвинути щось подібне до віри у ваші власні здібності до навчання. Віра в те, що навіть якщо ви можливо і не знаєте всього, що необхідне для вирішення проблеми, але якщо ви освоїли лише шматочок і на цьому навчилися, то вже знаєте достатньо, щоб вирішити і наступний шматок - і так далі, поки все не буде зроблено.)

2. Ніхто і ніколи не повинен вирішувати проблему двічі.

Творчі мізки - це цінний і обмежений ресурс. Не слід розтрачувати їх на повторний винахід колеса, коли навколо чекає так багато чудових нових проблем.

Щоб поводитися як хакер, ви повинні вірити, що час роздумів інших хакерів - дорогоцінне, причому настільки, що майже моральним боргом для вас є поділитися інформацією. Вирішити проблеми, а потім просто роздати рішення, щоб інші хакери могли вирішувати нові проблеми замість того, щоб безупинно повертатися до старих.

(Від вас не потрібно вірити, що ви зобов'язані роздати всі плоди своєї творчості, хоча ті хакери, хто так робить, - найбільш поважані серед інших хакеров. З цінностями хакеров цілком узгоджується продаж плодів творчості, достатній для забезпечення вас їжею, дахом і комп'ютерами. Узгоджується це і з використанням ваших хакерських навиків для підтримки сім'ї і навіть для того, щоб розбагатіти, поки займаючись цим ви не забуваєте, що є хакером.)

3. Нудьга і рутина - це зло.

Хакери (і взагалі творчі люди) ніколи не повинні займатися нудними речами або грузнути в рутині монотонної роботи, тому що коли це відбувається, то це означає, що вони не роблять того, що можуть робити лише вони - вирішувати нові проблеми. Подібне марнотратство шкодить кожному. Тому нудьга і рутина - це не просто неприємні речі, це зло.

Щоб поводитися як хакер, ви повинні вірити в це так, щоб бажати автоматизації всіх нудних дрібниць настільки, наскільки можливо, і не тільки для себе, але і для всіх інших (особливо, для інших хакеров).

(Є одне явне виключення. Іноді хакери займаються речами, які можуть показатися монотонними або нудними сторонньому спостерігачеві, як вправа для прочищення мізків або ж для вироблення навику. Або ж для придбання особливого роду досвіду, який неможливо отримати іншим шляхом. Але все це робиться по власному вибору, ніхто з тих, що уміють думати ніколи не повинен примушуватися до нудної роботи.)

4. Свобода - це благо.

Хакери по самій своїй природі анті-авторитарни. Будь-який, хто може віддавати вам накази, може зупинити рішення вами будь-якій з проблем, що вас зачарували. І, враховуючи образ мислення авторитарних мізків, знайдуться які-небудь приголомшливо ідіотські причини, щоб це зробити. Отже з авторитарним підходом слід битися усюди, де ви його зустрінете, щоб він не душив вас і інших хакеров.

(Це не те ж саме, що битися зі всіма властями. Дітям потрібне керівництво, злочинність необхідно стримувати. Хакер може погоджуватися на ухвалення якогось роду керівництва, коли є можливість отримати те, що потрібне і не особливо багато часу витрачається на виконання наказів. Але це обмежена розумна операція, щось подібне до особистої поступки.)

Авторитаризм процвітає в умовах цензури і секретності. Його адепти не вірять в добровільну співпрацю і в ділення інформацією, їм подобається тільки така "співпраця", якою керують вони. Тому, щоб поводитися як хакер, ви повинні виробити в собі інстинктивне неприйняття цензури, секретності, а також застосування сили або брехні для примушення відповідальних дорослих людей. І діяти необхідно виходячи з такої віри.

5. Позиція не замінить компетентність.

Для того, щоб бути хакером, ви повинні розвинути в собі деякі з перерахованих підходів. Але схопивши лише підхід ви зробитеся хакером не більшою мірою, чим спортсменом-рекордсменом або рок-зіркою. Для того, щоб стати хакером, потрібні інтелект, практика, самовідданість і тяжка праця.

Тому вам доведеться навчитися з недовір'ям відноситься до позиції, але з повагою до компетентності будь-якого роду. Хакери не дозволять позерам тринькати їх час, але вони поклоняються компетентності, особливо - хакерській компетентності, але компетентність хороша в чому завгодно. Особливо цінується володіння такими необхідними навиками, які мало у кого є. А найкраще - це компетентність в таких навиках, які вимагають проникливого розуму, вправності і концентрації.

Якщо ви обожнюєте компетентність, то ви отримуєте насолоду, розвиваючи її в собі. Тяжка праця і відданість справі стануть для вас захоплюючою грою, а не рутиною. І це життєво необхідно для того, щоб стати хакером.

Основні навики хакера

1. Навчитеся програмувати.
2. Дістаньте один з варіантів Unix в початкових кодах, навчіться його використовувати і з ним працювати.
3. Навчитеся використовувати World Wide Web і писати на HTML.
4. Якщо ви не знаєте Англійської мови - вивчіть її.

Хакерський погляд на життя - це важливо, але майстерність - багато разів важливіше. Позиція не замінить компетентності, і існує певний набір базових навиків, якими вам необхідно володіти, перш ніж будь-який з хакерів помислить назвати хакером і вас.

Цей базовий набір з часом потихеньку змінюється у міру того, як технологія породжує нові навики і робить непотрібними застарілі. Наприклад, зазвичай згадувалося програмування на машинній мові, але, аж до недавнього часу, в набір не включали мову HTML. Проте, в сьогоднішній комплект цілком безумовно входять наступні компоненти:

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

Це, звичайно ж, фундаментальний хакерський навик. Якщо ви не знаєте жодної комп'ютерної мови, я рекомендував би почати з мови Python. Він зрозуміло розроблений, добре документований і відносно доброзичливий до новачків. Не дивлячись на те, що він хороший для першої мови, це не просто іграшка. Це дуже могутня і гнучка мова, добре відповідна для великих проектів. Я написав більш докладне пояснення evaluation of Python. Непогане пояснення на Python web site

Java так самое э непоганою мовою програмування. Вона э трохи важча за Python але програми працюють швидше. Як не мене че чудова друга мова. Але знайте, що ви не досягнете хакерського рівня майстерності (або навіть просто рівня хорошого програміста), якщо знатимете лише одну мову. Вам необхідно навчитися мислити про проблеми програмування взагалі, незалежно від будь-якої конкретної мови. Щоб бути сьогоденням хакером, вам треба досягти рівня, на якому ви зможете вивчити нову мову за декілька днів, співвідносивши положення керівництва з тим, що вам вже відомо. Це означає, що вам слід вивчити декілька дуже різних мов.

Якщо ви займаєтеся серйозним програмуванням, то вам доведеться вивчити Сі, основну мову операційної системи Unix (хоча це і не та мова, яка слід намагатися вивчити першим). Інші мови першорядної ваги для хакерів - це Perl і LISP. Мову Perl має сенс вивчити з практичних міркувань: вона дуже широко використовується для активних web-сторінок і системного адміністрування, так що навіть якщо вам ніколи не доведеться писати на Perl, ви повинні навчитися його читати. LISP варто вивчити ради тих глибоких освічених пізнань, які ви знайдете, коли нарешті його освоїте. Ці пізнання зроблять вас прекрасним програмістом на все життя, що залишилося, навіть якщо ви ніколи особливо і не використовуватимете сам LISP.

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

Я не можу дати тут розгорнені інструкції щодо того, як навчитися програмувати, - це складне мистецтво. Але я можу сказати вам, що книги і курси цьому не навчать (багато, можливо, більшість кращих хакерів - це самоучки). Що цьому учить, так це (а) читання кодів і (б) писання кодів .

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

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

2. Дістаньте один з варіантів Unix в початкових кодах, навчіться його використовувати і з ним працювати.

Я вважаю, що ви маєте персональний комп'ютер або можете дістати до нього доступ (сьогодні цим хлоп'ятам все дістається так легко :-)). Єдиний і найважливіший крок, який будь-який з новачків може зробити для придбання хакерських навиків, - це роздобути копію Linux або одній з версій BSD-Unix, встановити її на персональній машині і запустити.

Так, в світі є і інші операційні системи крім Unix. Але їх поширюють в двійковому вигляді - ви не зможете читати коди і не зможете їх модифікувати. Вчитися хакерству на машинах, що працюють під DOS, Windows або MACOS - це все одно що вчитися танцювати повністю загіпсованим.

Крім того, Unix - це операційна система Інтернету. Хоча ви можете навчитися використовувати Інтернет і не знаючи Unix, але ви не можете бути Інтернет-хакером, не розуміючи Unix. З цієї самої причини сьогоднішня хакерська культура є вельми сильно Unix-сконцентрованою. (Це не завжди було так, і деяким з колишніх хакерів таке положення справ не дуже до вподоби, але симбіоз між Unix і Інтернетом настільки сильний, що навіть сил Microsoft не вистачає, щоб серйозно на це впливати.)

Отже заводите собі Unix, мені самому подобається Linux, але є і інші варіанти (і так-так, ви можете працювати як під Linux, так і під DOS/Windows на одній і тій же машині). Вивчите цю ОС. Працюйте з нею. Возитеся з нею. Спілкуйтеся через неї з Інтернетом. Читайте коди. Модифікуйте їх. Ви отримаєте такий інструментарій (включаючи C, Lisp і Perl) програміста, про який будь-яка з ОС Microsoft і не мріяла. Ви отримаєте задоволення, і ви засвоїте більше знань, чим припускали в процесі навчання, коли озирнетеся на цей процес вже будучи майстром-хакером.

Для додаткової інформації про вивчення Unix див. The Loginataka.

Щоб дістати в свої руки Linux, див. Where can I get Linux ("Де мені узяти Linux").

3. Навчитеся використовувати World Wide Web і писати на HTML.

Більшість з тих речей, що створені хакерською культурою, роблять свою справу невидимо, допомагаючи працювати фабрикам, установам і університетам без скільки-небудь помітного впливу на життя не-хакерів. WWW - це одне велике виключення, гігантська блискуча хакерська іграшка, яка навіть по визнанню політиків змінює мир. Лише по одній цій причині (а також і безлічі інших приємних причин) вам слід навчитися працювати з Web.

Це не означає, що потрібно просто навчитися управлятися з браузером (це будь-хто уміє), але навчитися писати на HTML, мові розмітки документів Web. Якщо ви ще не умієте програмувати, то писання на HTML навчить ваше мислення деяким корисним звичкам, які стануть в нагоді при освоєнні мов програмування. Отже робіть домашню сторіночку.

Але просте володіння домашньою сторіночкою навіть і близько не підведе вас до того, щоб стати хакером. У Web повним-повнісінько домашніх сторіночок. Більшість з них - це безглуздий, даремний непотріб. Украй помітно і привабливо оформлений непотріб, не сперечаюся, але все одно непотріб (докладніше про цьому див. сторіночку "Пекло HTML" -The HTML HellPage).

Щоб бути такою, що стоїть, ваша сторіночка повинна мати "контент" - зміст. Вона повинна бути цікавою і / або корисною для інших хакерів. А це підводить нас до наступного розділу...

4. Якщо ви не знаєте Англійської мови - вивчіть її.

Як для Американця, англійська мова є рідною для мене. Прохання не звинувачувати мене в культурному імперіалізмі. Але багато іншомовних людей вказали мені на те, що англійська мова є робочою в хакерьскій культурі та інтернеті, і ви повинні досконало володіти нею, для функціонування в хакерьскій спільноті. Лінус Торвальд, Фін, коментував код використовуючи англійську мову. Його добра англійська мова була одним з важливих чинників, завдяки якому набралася велика кількість розробників Лінукс зі всієї мережі. Але добре знання Англійської мови не гарантує добрі навички як для хакера. Якщо ви пишете з помилками, багато хакерів (в тому числі і я), будуть ігнорувати вас.

Статус у хакерській культурі

1. Пишіть програми з відкритим початковим кодом.
2. Допомагайте тестувати і відлагоджувати програми з відкритим початковим кодом
3. Публікуйте корисну інформацію.
4. Допомагайте підтримувати роботу інфраструктури
5. Служіть самій хакерській культурі.

Як і більшість культур без грошової економіки, Хакерландія будується на репутації. Ви намагаєтеся вирішити цікаві проблеми, але наскільки вони цікаві, і наскільки насправді хороші ваші рішення, - це щось таке, про що зазвичай можуть судити тільки (у технічному сенсі) рівні вам або що перевершують вас.

Таким чином, коли ви граєте в хакерські ігри, ви вчитеся вести рахунок головним чином по тому, що думають про вашу майстерність інші (саме тому ви не будете хакером до тих пір, поки вас не стануть так називати інші хакери). Даний факт затінюють як образ хакера-одинака, так і певні табу хакерської культури (що нині істотно ослабіли, але все ще могутні), що не допускають, щоб чиєсь зовнішнє визнання взагалі могли б бути мотивацією для хакера.

Зокрема, Хакерландія - це те, що антропологи іменують "культурою подарунків". Ви заробляєте статус і репутацію не тим, що керуєте іншими людьми, і не тим що прекрасні, і не тим що маєте речі, які є предметом жадання інших. Але швидше тим, що роздаєте речі. Зокрема, одаровувавши своїм часом, своєю майстерністю і результатами своєї творчості.

Є п'ять основних типів речей, які ви можете робити, щоб вас поважали хакери:

1. Пишіть програми з відкритим початковим кодом.

Перше (найголовніше і саме традиційне) - це писати програми, які інші хакери вважають забавними або корисними, і роздавати початкові коди програм для використання всією хакерською культурою.

Ми звикли називати таку роботу "вільно-доступним програмним забезпеченням" (free software), але це привело в замішання дуже багатьох людей, що точно не розуміли, що малося на увазі під словом "вільно-доступне". Тепер для такого програмного забезпечення багато хто з нас вважає за краще використовувати термін "з відкритим початковим кодом" або "open-source software".

Найбільш шанобливі напівбоги Хакерландії - це люди, які написали великі і талановиті програми, що відповідають найширшим потребам, і які роздали їх всім, так що кожен тепер їх використовує.

2. Допомагайте тестувати і відлагоджувати програми з відкритим початковим кодом

Шанобливі також ті, хто тестує і відлагоджує програми з відкритим кодом. У цьому недосконалому світі ми неминуче витрачаємо найбільшу частину часу розробки програми на фазу відладки. Саме тому будь-який думаючий автор програм з відкритим кодом скаже вам, що хороші бета-тестери (що знають, як виразно описати симптоми, добре локалізуючі проблеми, здатні виправляти друкарські помилки і що застосовують декілька простих діагностичних підпрограм) цінуються на вагу золота. Всього один така людина може перетворити фазу відладки із затягнутого кошмару, що виснажує, в просто корисну затримку.

Якщо ви новачок, то спробуйте знайти програму, що розробляється, яка вам цікава, і станьте хорошим бета-тестером. Існує цілком природний шлях просування від допомоги в тестуванні програм до допомоги в їх відладці і далі, до допомоги в їх модифікації. Ви багато чому навчитеся у такий спосіб і породите добру карму у відносинах з людьми, які допоможуть вам згодом.

3. Публікуйте корисну інформацію.

Ще одна хороша річ - відбирати і накопичувати корисну і цікаву інформацію на Web-сторінках або документах типу ЧАВО (FAQ або питання, що "часто ставляться, і відповіді"), і робити їх загальнодоступними.

Ведучі основних технічних ЧАВО майже такі ж поважані, як і автори програм з відкритим початковим кодом.

4. Допомагайте підтримувати роботу інфраструктури.

Хакерська культура (і інженерна розробка Інтернет, доречно зауважити) заснована на добровольцях. Є маса необхідної, але не особливо ефектної роботи, яку потрібно робити, щоб підтримувати процес: адміністрування розсильних листів, модерування груп новин, управління великими архівами програмного забезпечення, розробка RFC і інших технічних стандартів.

Люди, речі, що добре роблять такого роду, глибоко поважані, оскільки кожен знає, що подібна робота вимагає купу часу і не так забавна як ігри з кодами. Ця робота свідчить про самовідданість.

5. Служите самій хакерській культурі.

Нарешті, ви можете служити і поширювати саму культуру (наприклад, складаючи скрупульозне керівництво "як стати хакером" :-)). Але цим не варто займатися до тих пір, поки ви не поваритеся в цьому достатній час і не станете добре відомі завдяки одній з чотирьох перших речей.

У хакерськой культурі немає явних лідерів, але тут є "культурні герої", "племінні старійшини", історики і оратори. Коли ви достатньо довго поживете в цих траншеях, то зможете вирости в одну з таких людей. Але остерігайтеся: хакери насторожено відносяться до своїх галасливих племінних старійшин, так що видиме досягнення такого роду слави таїть в собі небезпеку. Замість того, щоб прагнути до цього, вам краще як би не піклуватися про це і тоді це само впаде на коліна, а вже потім можна бути скромним і милостивим в своєму статусі.

Зв'язок між хакером і дурнем

Всупереч розхожому міфу, вам не обов'язково бути дурнем, щоб бути хакером. Це, проте, допомагає, і багато хакерів дійсно "дурні". Статус ізгоя суспільства допомагає вам залишатися зосередженими на дійсно важливих речах, таких як роздуми і хакерство.

Саме з цієї причини багато хакерів носять ярлик "дурень" і навіть використовують як знак доблесті грубіший термін "кретин" - це їх спосіб декларації своєї незалежності від загальноприйнятих в суспільстві оцінок. З розгорненою дискусією із цього приводу можна познайомитися на "сторінці дурнів".

Якщо ви здатні достатньою мірою зосередитися на хакерстві, досягати тут помітних результатів і при цьому мати особисте життя - що ж, чудово. Сьогодні це набагато легко, ніж в 1970-х, коли був новачком я. Культурний мейнстрім став тепер набагато доброзичливіший до техно-дурнів. Є кількість людей, що виявляють, що навіть росте, що хакери часто можуть бути цілком якісними коханцями і подружжям.

Якщо ж вас вабить до хакерства з тієї причини, що у вас немає особистого життя, що ж, і це непогано. Принаймні, у вас не буде проблем з концентрацією. А особисте життя - звідки знати, може вона прийде пізніше.

Риси способу життя

Ще раз, щоб бути хакером, ви повинні знайти світогляд хакера. Є декілька речей, які можуть допомогти в ті моменти, коли ви не знаходитеся поряд з комп'ютером. Вони не замінюють хакерство (його ніщо не замінить), але багато хакерів ними займаються і, по їх відчуттях, це на якомусь фундаментальному рівні об'єднує їх з суттю хакерства.

  • Читайте наукову фантастику. Ходите на зустрічі любителів фантастики (це хороший спосіб познайомитися з хакерами і "прото-хакерамі").
  • Вивчайте Дзен-буддизм і/або східні мистецтва бою. (Їх ментальна дисципліна має, схоже, важливі риси схожості).
  • Виробляйте в собі аналітичний музичний слух. Вчитеся розуміти специфічні види музики. Вчитеся непогано грати на якому-небудь музичному інструменті або грамотно співати.
  • Виробляйте в собі розуміння каламбурів і ігор в слова.
  • Вчитеся добре писати на своїй рідній мові. (Дивно багато хто з хакерів, включаючи всіх відомих мені кращих хакерів, є якісними письменниками.)
Чим більше з цих речей ви вже робите, тим більше вірогідність того, що ви є природним хакерським матеріалом. Чому перераховані саме ці речі - не цілком ясно, але вони пов'язані із змішуванням навиків лівої і правої півкуль мозку, а це представляється важливим (для хакеров необхідно уміти як вибудовувати стрункі логічні обгрунтування, так і час від часу оцінювати проблему поза зв'язком з очевидною логікою).

І, нарешті, декілька речей, які робити не слід .

  • Не використовуйте дурні і пихаті призначені для користувача імена або клички.
  • Не залучайтеся до сварок і суперечок в Usenet (або де-небудь ще).
  • Не називайте себе "кибер-панком" і не витрачайте свій час на тих, хто це робить.
  • Не відправляйте листи або електронну пошту, переповнені помилками правопису.
Єдина репутація, яку ви собі створите, займаючись будь-якою з цих речей - це сміховисько. У хакерів довга пам'ять, і вам можуть знадобитися роки життя, щоб про це забули.

Інші ресурси

Пітер Сибак веде чудову сторінку "Хакер-чаво" - Hacker FAQ для менеджерів, що не уявляють собі як мати діла з хакерами.

Мною написана також "Коротка історія Хакерландії" - A Brief History Of Hackerdom.

Я написав статтю "Храм і Базар" - The Cathedral and the Bazaar, в якій роз'яснюється, як працюють проект Linux і культура відкритих початкових кодів. Ще більш безпосередньо ця ж тема розглянута в статті-продовженні "Розділ Ноосфери" - Homesteading the Noosphere.

Питання, що часто ставляться

П: Як я можу визначити що я вже хакер?
П: Ви навчите мене хакерству?
П: Як і коли я можу почати?
П: Коли ви почали? Чи не є вже запізно для мене?
П: Скільки часу необхідно для навчання на хакера?
П: Чи можна почати з Visual Basic?
П: Чи не допоможете ви мені крекнуть систему, або може навчите, як їх розкривати?
П: Як я можу взнати паролі до чужого акаунту?
П: Як я можу читати/слідкувати за чужою поштою?
П: Як я можу отримати анонімний канал чи привілеї на IRC?
П: Мене крекнули, ви мені допоможете?
П: В мене проблеми з моїм Windows. Ви допоможете мені?
П: Де мені знайти сьогоденню хакеров, щоб з ними поговорити?
П: Яку мову слід вивчити першою?
П: А не чи стане так, що із-за програм з відкритим початковим кодом програмістам небуде на що жити?
П: Де можна дістати безкоштовний Unix?

П:

Як я можу визначити що я вже хакер?

В:

Задайте самі собі наступні три питання

Ви добре розумієте код?

Чи добре ви розумієте цілі та задачі хакерів?

Добре відомі члени товариства хакерів називають вас хакером?

Якщо ваша відповідь так на всі три запитання - ви вже є хакером.

Спочатку випробуйте свої навички. Скорш за все ви пройдете випробування, якщо маєте хоч мінімум з перелічених вище навичок. Друга важлива річ - це підхід. Якщо ви дотримуєтеся пяти принципів хакерів ви вже наполовину пройшли шлях. Інша половина шляху - як ви зарекомендуєте себе у хакерьському середовищі довготерміновими проектами.

Є цілий ряд цікавих і важливих довготермінових проектів: покращення роботи Лінукс, бороться за незалежне програмне забезпечення, пекло монополій та інше.

П:

Ви навчите мене хакерству?

В:

З моменту першої публікації цієї сторінки я отримував від людей по декілька запитів в тиждень з проханням "навчити всьому хакерському". На жаль, я не маю в своєму розпорядженні ні часу, ні енергії цим займатися. Мої власні хакерські проекти займають 110% мого часу.

І навіть якщо б вони у мене були, хакерство - це світогляд і майстерність, якою ви повинні навчитися в основному самі. Ви виявите, що хоча сьогодення хакери і бажають вам допомогти, але вони вас не поважатимуть, якщо ви станете просити нагодувати вас з ложечки всім, що їм відоме.

Спочатку навчитеся декільком речам самі. Покажіть, що стараєтеся, що здібні до самостійного навчання. І вже потім відправляйтеся до знайомих хакерів з питаннями.

П:

Як і коли я можу почати?

В:

Один з найкращих шляхів для початківців - приєднатися до групи Лінукс LUG (Linux user group), інформацію о цих групах ви можете знайти на LDP Головні інформаційні сторінки про Лінукс ; скорш за все одна з них буде біля вас, можливо в інституті або університеті. Члени LUG скорш за все дадуть вам Лінукс, якщо ви їх попросите, та допоможуть з інсталяцією та першими кроками.

П:

Коли ви почали? Чи не є вже запізно для мене?

В:

В незалежності від віку, бажання є достатньою мотивацією. Більшість людей починали у віці від 15 до 20, але я знаю багато виключень.

П:

Скільки часу необхідно для навчання на хакера?

В:

В першу чергу це залежить від вашої обдарованості та наполегливості. Більшість людей досягають добрих навичок за один два роки, якщо вони наполегливі. Але це не кінець. Якщо ви справжній хакер то ви до кіньця життя будете відточувати свою майстерність та поглиблювати знання.

П:

Чи можна почати з Visual Basic?

В:

Якщо ви задаєте це питання, ви намагаєтеся бути хакером під Microsoft Windows. Це погана ідея сама по собі. Якщо порівняти хакерство під Windows з танцями, от це буде подібне до навчанню на постійно розгойдуваній і нерівній підлозі. Нажаль, це дуже погана ідея. З Visual Basic є дуже специфічна проблема - він не піддається портування. Якщо ви будете дуже обережними в програмуванні, в найкращому випадку ваша програма буде працювати лише в середовищі Windows - на єдиній платформі яку підтримує Microsoft. Якщо ви починаєте на Unix, вам будуть доступні набагато кращі мови з більшими бібліотеками. Наприклад Python. Знов ж таки, як і всі решта Basics, Visual Basic погано сконструйована система, яка навчить вас поганому стилю програмування. Ні, не питайте мене описати детально чому саме це стається, про це можна написати цілу книгу. Вивчайте добре структуровані мови програмування. Одна з причин - залежніть бібліотек та інструментів від одного виробника. І в загальному, люба мова програмування, яку не підтримує Linux чи BSDs та декілька розробників операційних систем не заслуговує уваги хакера.

П:

Чи не допоможете ви мені крекнуть систему, або може навчите, як їх розкривати?

В:

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

П:

Як я можу взнати паролі до чужого акаунту?

В:

Ні, це крекінг, ідіотам тут не місце.

П:

Як я можу читати/слідкувати за чужою поштою?

В:

Ні, це крекінг, ідіотам тут не місце.

П:

Як я можу отримати анонімний канал чи привілеї на IRC?

В:

Ні, це крекінг, ідіотам тут не місце.

П:

Мене крекнули, ви мені допоможете?

В:

Ні, Мені постійно задають і будуть задавати це питання, то тих пір поки існує Microsoft Windows. Не існує захисної системи під Windows, яка б допомогла захиститись від всіх атак. Єдиний розумний вихід - перейти на Linux або іншу довільну систему, яка створена з вбудованими можливостями захисту.

П:

В мене проблеми з моїм Windows. Ви допоможете мені?

В:

Так. Запустіть командну стрічку DOS та наберіть "format c:". Всі негаразди які у вас були зникнуть за пару хвилин.

П:

Де мені знайти сьогоденню хакерів, щоб з ними поговорити?

В:

Самий кращий спосіб - знайти вашу місцеву групу користувачів Unix або Linux і сходити на їх зустрічі (посилання на декілька списків груп користувачів можна знайти на сторінці <а href="http://sunsite.unc.edu/LDP"> LDP на Sunsite).

(Якось раніше я сказав, що вам не знайти жодного хакера в чатах, але мені дали зрозуміти, що ситуація міняється. Очевидно, деякі із співтовариств хакеров, пов'язаних з такими речами як GIMP і Perl, тепер мають свої IRC-канали.)

П:

Яку мову слід вивчити першим?

В:

HTML, якщо ви його ще не знаєте. Є маса виряджених і приголомшливо бездарних книг по HTML, але бентежить мало хороших. Мені більше всього подобається HTML: The Definitive Guide.

Але HTML - це не повноцінна мова програмування. Коли ви відчуєте, що готові почати програмувати, я б порекомендував почати з мови <а href="http://www.python.org">Python. Багато людей рекомендуватимуть вам починати з Perl, і ця мова популярніша чим Python, але його складніше вивчити.

Сі - дійсно важлива мова, але він і набагато складніше, ніж Python або Perl. Не намагайтеся вивчити його першим.

П:

А не чи стане так, що через програми з відкритим початковим кодом програмістам не буде на що жити?

В:

Ну, це навряд чи. Поки що, схоже, індустрія програмного забезпечення з відкритим початковим кодом швидше створює робочі місця, ніж їх скорочує. Якщо економічно більш прибутково мати написану програму, чим такої програми не мати, то програмістові платитимуть незалежно від того, чи стане ця програма безкоштовною після її створення. І, незалежно від того, як багато буде написано "безкоштовних" програм, завжди ще більше буде запитів на нові і спеціалізовані застосування. Детальніше я написав про це на сторінках Open Source.

П:

Де можна дістати безкоштовний Unix?

В:

Всюди на цій сторінці я вставив покажчики на ті місця, де можна узяти найбільш широко використовувані безкоштовні версії Unix. Щоб бути хакером, вам потрібні мотивація і ініціатива, а також здібність до самоосвіти. Починайте прямо зараз...