Tłumaczenia: francuski hiszpański włoski niemiecki japoński koreański szwedzki portugalski
Jeśli czytasz zrzut tego dokumentu offline, bieżąca wersja znajduje się na www.jtz.org.pl/hacker-howto-pl.htmlWersja oryginalna (angielska) jest do przeczytania na http://www.tuxedo.org/~esr/faqs/hacker-howto.html
Istnieje społeczność, kultura grupowa, złożona z ekspertów w dziedzinie programowania i magików sieciowych, której historia sięga wstecz poprzez dziesięciolecia do pierwszych wielodostępnych minikomputerów z podziałem czasu i najwcześniejszych eksperymentów z siecią ARPAnet. Członkowie tej kultury zapoczątkowali termin "hacker". Hackerzy zbudowali Internet. Hackerzy uczynili z UNIXa system operayjny, jakim jest dzisiaj. Hackerzy zapoczątkowali Usenet. Hackerzy sprawili, że Światowa Pajęczyna (World Wide Web) zaczęła działać. Jeśli jesteś częścią tej kultury, jeśli bierzesz w niej czynny udział i inni ludzie z tej grupy Ciebie znają i nazywają Cię hackerem - wtedy jesteś hackerem.
Filozofia hackera nie jest ograniczona do tej kultury software'owo-hackerskiej. Są ludzie, którzy stosują postawę hackera w innych zagadnieniach, jak elektronika czy muzyka - w rzeczywistości możesz znaleźć ją na najwyższym poziomie we wszystkich dyscyplinach nauki czy sztuki. Software'owi hackerzy rozpoznają te bratnie dusze gdziekolwiek się pojawią i mogą ich również nazywać hackerami - są tacy, którzy twierdzą, że natura hackera jest naprawdę niezależna od konkretnego medium, nad którym on pracuje. Niemniej jednak w dalszej części tego dokumentu skupię się na umiejętnościach i postawach hackerów software'owych, oraz na tradycjach kultury społecznej, która zapoczątkowała termin "hacker".
Jest druga grupa ludzi, którzy głośno nazywają siebie hackerami, ale nimi nie są. Wspomniani ludzie (w większości niedorosłe osobniki płci męskiej) znajdują podnietę we włamywaniu się do komputerów i robieniu zamieszania* w systemie telefonicznym. Prawdziwi hackerzy nazywają takich ludzi "crackerami" i nie chcą mieć z nimi nic wspólnego. Prawdziwi hackerzy uważają w większości, że crackerzy są leniwi, nieodpowiedzialni i niezbyt błyskotliwi, a fakt, że jesteś w stanie przełamać system ochrony nie czyni Cię hackerem bardziej niż umiejętność uruchamiania samochodu "na krótko" robi z kogoś inżyniera w dziedzinie motoryzacji. Niestety, wielu dziennikarzy i autorów publikacji dało się oszukać i używają słowa "hacker" na określenie crackera. A to bezgranicznie irytuje hackerów z prawdziwego zdarzenia.
Podstawowa różnica jest następująca: hackerzy coś tworzą, a crackerzy to niszczą.
Jeśli chcesz być hackerem, czytaj dalej. Jeśli masz ambicję zostać crackerem, przeczytaj grupę dyskusyjną alt.2600 i przygotuj się na pięć do dziesięciu lat odsiadki po tym, jak okaże się, że nie jesteś tak bystry, jak myślałeś. I to wszystko co mam do powiedzenia o crackerach.
Jednakże jeśli myślisz o rozwijaniu postaw hackerskich jedynie jak o metodzie uzyskania akceptacji wewnątrz kultury, zmierzasz w złym kierunku. Bardzo ważne jest, abyś stał się takim typem człowieka, który wierzy w te rzeczy - po to, byś łatwiej uczył się i zachował motywację. Jak we wszystkich dziedzinach twórczej sztuki, najefektywniejszą metodą zostania mistrzem jest naśladowanie stylu myślenia mistrzów - nie tylko intelektualnie, lecz również emocjonalnie.
Więc, jeśli chcesz być hackerem, powtarzaj następujące rzeczy do chwili, kiedy w nie uwierzysz:
Jeśli nie jesteś osobą myślącą tak w sposób naturalny, musisz takim zostać, jeśli chcesz być hackerem. W przeciwnym razie zorientujesz się, że twoja hackerska energia jest uszczuplana przez zagadnienia takie jak seks, pieniądze i społeczna akceptacja.
(Musisz również rozwinąć w sobie rodzaj wiary we własne możliwości uczenia się - wiary, że możesz nie wiedzieć wszystkiego, czego potrzebujesz do rozwiązania problemu, ale jeśli zmierzysz się z nim choć trochę i wskutek tego nauczysz się czegoś, umiesz już wystarczająco, żeby ugryźć następny kawałek i tak dalej, aż będzie po wszystkim.)
Aby zachowywać się jak hacker musisz wierzyć, że myślowy czas innych hackerów jest cenny - tak bardzo, że niemal moralnym obowiązkiem jest, abyś dzielił się informacjami, rozwiązywał problemy i rozdawał rozwiązania tak, aby inni hackerzy mogli rozwiązywać nowe problemy zamiast konieczności ciągłego przetwarzania starych.
(Nie musisz wierzyć, że masz obowiązek rozdawać za darmo całą swoją twórczą działalność, choć hackerzy, którzy tak czynią uzyskują najwięcej szacunku od innych. Nie jest sprzeczne z wartościami hackera, żebyś mógł sprzedać wystarczająco dużo, aby mieć dostęp do pożywienia, dachu nad głową i komputerów. Jest logiczne, że używasz swoich hackerskich umiejętności aby utrzymać rodzinę lub wręcz wzbogacić się, tak długo, dopóki robiąc to nie zapomnisz, że jesteś hackerem.)
Aby zachowywać się tak, jak hacker, musisz uwierzyć w to wystarczająco mocno, aby zautomatyzować nudne fragmenty tak bardzo, jak to możliwe, nie tylko dla siebie, ale i dla innych (w szczególności innych hackerów).
(Jest jednak pewien oczywisty wyjątek od tej reguły. Hackerzy czasem robią rzeczy, które mogą wydawać się powtarzalnymi lub nudnymi dla obserwatora jako ćwiczenia oczyszczające umysł, lub, gdy w celu osiągnięcia konkretnego rodzaju doświadczenia nie można inaczej. Ale jest to wybór - nikt, kto jest istotą myślącą nie powinien być zmuszany do nudy.)
(To nie jest wszakże to samo, co zwalczanie wszelkich form władzy. Dzieci muszą być wychowywane a przestępcy izolowani. Hacker może zgodzić się na zaakceptowanie pewnych form władzy w celu osiągnięcia czegoś co ceni bardziej niż czas, który poświęci spełniając rozkazy. Ale to jest ograniczona i świadoma transakcja, nikt nie oferuje takiej formy uległości, jakiej oczekiwaliby ludzie o autokratycznym nastawieniu).
Autokratom służy cenzura i utajnienie. Nie ufają oni dobrowolnej współpracy i chęci dzielenia się informacjami - jedyną współpracą, którą lubią jest ta kontrolowana przez nich. Więc aby zachowywać się jak hacker, musisz wytworzyć w sobie instynktowną wrogość wobec cenzury, utajnienia i używania siły lub podstępu do wywierania przymusu na odpowiedzialnych za swoje czyny dorosłych ludziach. I musisz być gotów do działania zgodnie z tymi przekonaniami.
W związku z tym musisz nauczyć się niedowierzania dla postawy oraz szacunku dla kompetencji pod każdą postacią. Hackerzy nie pozwolą pozerom marnować ich czasu, ale cenią sobie kompetencję - szczególnie kompetencję w hackerstwie, ale każda inna jest też dobra. Kompetencja w dziedzinach, które niewielu potrafi opanować jest szczególnie ceniona, a kompetencja w dziedzinach, które wymagają umysłowej dokładności, wysiłku i koncentracji jest ze wszystkich najlepsza.
Jeśli jesteś czcicielem kompetencji, będziesz z przyjemnością rozwijać je w sobie - ciężka praca i poświęcenie staną się formą intensywnej zabawy, nie zaś harówką. A to jest szczególnie istotne w procesie stawania się hackerem.
Ten zestaw zmienia się powoli w czasie wraz z techniką wytwarzającą nowe zdolności i czyniące inne z nich przestarzałymi. Na przykład kiedyś do zasobu zdolności hackera zaliczało się programowanie w języku maszynowym, natomiast do niedawna nie należała do nich znajomość HTMLa. W chwili obecnej w miarę jasno można zaliczyć do nich co następuje:
Bądź jednak świadom, że nie osiągniesz poziomu umiejętności hackera, a nawet zwykłego programisty, jeśli będziesz znać zaledwie jeden język - musisz nauczyć się myśleć o problemie programistycznym w sposób ogólny, niezależny od jakiegokolwiek języka. Aby być prawdziwym hackerem, potrzebujesz osiągnąć poziom, na którym możesz nauczyć się nowego języka w ciągu dni poprzez porównanie tego, co wyczytasz w podręczniku z tym, co już umiesz. Oznacza to, że powinienieś nauczyć się kilku bardzo różniących się od siebie języków.
Jeśli zajmiesz się poważnym programowaniem, będziesz musiał nauczyć się C, rdzennego UNIXowego języka (choć nie powinieneś uczyć się go w pierwszej kolejności). Inne języki o szczególnej wartości dla hackerów to Perl i LISP. Perl jest wart nauczenia z przyczyn praktycznych: jest bardzo szeroko wykorzystywany do tworzenia aktywnych stron WWW i administracji systemem, więc nawet jeśli nie piszesz programów w Perlu powinieneś nauczyć się go czytać. LISP jest wart nauki dla głębokiego uczucia oświecenia, kiedy go wreszcie zrozumiesz. To doświadczenie uczyni z ciebie o wiele lepszego programistę, nawet jeśli nie używasz LISPa zbyt często.
Najlepiej jednak nauczyć się wszystkich czterech (Pythona, C, Perla, LISPa). Poza faktem, że są najważniejszymi hackerskimi językami programowania, reprezentują bardzo różne podejścia do programowania, a każdy z nich nauczy Cię innych wartościowych rzeczy.
Nie mogę dać tu kompletnych instrukcji jak nauczyć się programowania - to skomplikowana umiejętność. Ale mogę powiedzieć, że książki i kursy tego nie zrobią (wielu, może większość najlepszych hackerów to samouki). Co Ci pomoże to: (a) czytanie kodu, (b) pisanie kodu.
Nauka programowania jest jak nauka doskonałego pisania w języku naturalnym. Najlepszą metodą jest czytanie rzeczy pisanych przez mistrzów formy, pisanie samemu, czytanie dużo więcej, pisanie nieco więcej, czytanie jeszcze więcej, pisanie jeszcze trochę więcej ... powtarzaj aż Twoje pisanie zacznie rozwijać się do siły i wydajności, którą obserwujesz w swoich wzorcach.
Kiedyś znalezienie dobrego kodu było zadaniem trudnym, ponieważ mało było dużych programów dostępnych w kodzie źródłowym do czytania i zabawy dla świeżo opierzonych hackerów. To zmieniło się znacząco. Oprogramowanie z udostępnionym kodem źródłowym, narzędzia programistyczne, systemy operacyjne (wszystkie zbudowane przez hackerów) są dziś szeroko dostępne. I to pięknie doprowadza mnie do następnego tematu...
Tak, są systemy operacyjne na tym świecie poza UNIXem. Ale są udostępniane w kodzie binarnym - nie możesz poczytać kodu i nie możesz go zmienić. Próbowanie nauki hackerstwa w DOSie, Windows lub pod MacOS jest jak nauka tańca z gipsem na całym ciele.
Poza tym UNIX jest systemem operacyjnym Internetu. Chociaż możesz nauczyć się posługiwania Internetem bez znajomości UNIXa, lecz bez zrozumienia go nie nauczysz się internetowego hackerstwa. Z tej przyczyny kultura hackerów jest silnie scentralizowana wokół UNIXa. (To nie zawsze była prawda i niektórzy hackerzy starej daty nie są z tego powodu szczęśliwi, ale symbioza pomiędzy UNIXem i Internetem stała się tak silna, że nawet potęga Microsoftu nie jest w stanie zadać jej poważnego ciosu).
Więc postaw UNIXa - osobiście lubię Linuxa, ale są inne drogi (no i oczywiście możesz używać Linuxa i DOS/Windows na tej samej maszynie). Naucz się go. Zarządzaj nim. Baw się nim. Nawiąż kontakt z Internetem za jego pomocą. Czytaj jego kod źródłowy. Modyfikuj kod. Otrzymasz lepsze narzędzia programistyczne (włączając C, Lisp, Python, i Perl) niż system operacyjny Microsoftu mógłby marzyć, będziesz miał kupę frajdy i wsiąkniesz więcej wiedzy niż się zorientujesz zanim nie spojrzysz na to później z perspektywy hackerskiego mistrza.
Aby nauczyć się więcej o UNIXie, zobacz The Loginataka.
Aby dopaść w swoje ręce Linuxa zobacz Where can I get Linux.
Nie oznacza to po prostu nauki posługiwania się browserem (każdy to może zrobić), ale nauczyć się pisania w HTML, języku Webu. Jeśli nie umiesz programować, pisanie w HTMLu nauczy Cię paru umysłowych przyzwyczajeń, które pomogą Ci to opanować. A więc: zbuduj sobie home page.
Jednakże posiadanie samej strony domowej nie jest jeszcze wystarczające do uczynienia Cię hackerem Sieć jest pełna stron domowych. Większość z nich jest bezcelowyn, pozbawionym zawartości szlamem* - bardzo wymyślnie wyglądającym, trzeba zauważyć, ale szlamem bez dwóch zdań (dla dalszych informacji zobacz The HTML Hell Page).
Aby Twoja strona posiadała wartość musi zawierać treść - musi być interesująca i/lub użyteczna dla innych hackerów. A to przenosi nas do następnego tematu...
W związku z tym, jeśli bierzesz udział w tej hackerskiej zabawie uczysz się oceniać własne wyniki tylko na podstawie tego, co inni sądzą o Twoich umiejętnościach (stąd właśnie bierze się stwierdzenie, że nie jesteś hackerem dopóki inni hackerzy uparcie nie nazywają Cię hackerem). Ten fakt jest nieco stłumiony przez wizerunek hackera jako samotnika. Podobnie działa tabu kultury hackerskiej (stopniowo zanikające, ale ciągle obecne) sprzeciwiające się wyznaniu, że ego lub zewnętrzne uznanie mogą być w ogóle czyimkolwiek czynnikiem motywującym.
Z pewnego punktu widzenia hackerstwo jest czymś, co antropologia nazywa kulturą darów. Zdobywasz w niej status i reputację nie poprzez dominacje nad innymi ludźmi, nie za swoją urodę, nie dlatego, że posiadasz to, co inni chcą mieć, ale dlatego, że dajesz coś innym za darmo. W szczególności rozdając swój czas, swoją kreatywność, wyniki swoich umiejętności.
Ogólnie wyróżnia się pięć rzeczy, które można robić dla zdobycia respektu przez hackerów:
(Zwyczajowo nazywało się te prace "oprogramowaniem darmowym", ale zbyt wielu ludzi nie wiedziało do końca co miałoby znaczyć pojęcie "darmowy". Wielu z nas woli teraz określenie "oprogramowanie z dostępnym kodem źródłowym"* - "open source" software).
"Półbogami" hackerstwa są ludzie, którzy napisali duże, użyteczne programy, stanowiące odpowiedź na szerokie zapotrzebowanie, a teraz udostępniają je za darmo, do użytku dla wszystkich zainteresowanych.
Jeśli jesteś nowicjuszem, spróbuj znaleźć program w trakcie procesu tworzenia, który Cię zainteresuje i bądź dobrym beta-testerem. Istnieje naturalny postęp od pomagania przy testowaniu, poprzez pomoc przy usuwaniu błędów aż do pomocy przy tworzeniu programu. W ten sposób nauczysz się wiele i wytworzysz dobre fluidy z ludźmi, którzy później pomogą i Tobie.
Osoby zarządzające dokumentami technicznymi typu FAQ są szanowane prawie tak, jak autorzy oprogramowania.
Ludzie wykonujący dobrze ten rodzaj pracy uzyskują dużo szacunku, bo każdy wie, że ta robota pochłania mnóstwo czasu i nie jest tak ciekawa, jak zabawa z kodem. Robienie tego pokazuje poświęcenie.
Kultura hackerów nie posiada przywódców w typowym rozumieniu tego słowa, ale posiada kulturowych bohaterów, starszyznę "plemienną", historyków i rzeczników. Jeśli wystarczająco długo przebywałeś w obozie, możesz w końcu wyrosnąć na jednego z nich. Strzeż się jednak: hackerzy nie ufają wybujałym osobowościom swojej "starszyzny", więc sięganie po tego typu zaszczyty może być niebezpieczne. Zamiast walki o nie powinieneś raczej ustawić się odpowiednio, aby same upadły do Twoich stóp, a wtedy bądź skromny i wdzięczny za swoją pozycję w grupie.
Z tego powodu wielu hackerów zaadoptowało sobie etykietę "dziwak"*, a nawet używają ostrzejszego terminu "świr"* jako oznaki własnej dumy - jest to forma zadeklarowania ich niezależności od normalnych społecznych oczekiwań. Zobacz The Geek Page dla dalszej dyskusji.
Jeśli potrafisz skoncentrować się na hackerstwie wystarczająco, aby być w tym dobrym i wciąż posiadasz własne życie - w porządku. Dziś jest dużo łatwiej niż w latach siedemdziesiątych, kiedy byłem nowicjuszem. Główny nurt kultury społeczeństwa jest dziś dużo bardziej przyjacielsko nastawiony wobec techno-dziwaków. Zwiększa się nawet ilość ludzi zdających sobie sprawę z faktu, że hackerzy są często świetnym materiałem na partnerów i małżonków. Więcej na ten temat w Girl's Guide to Geek Guys (Przewodniku dla dziewcząt po dziwnych facetach).
Jeśli pasjonujesz się hackerstwem, bo nie posiadasz własnego życia, to też w porządku - przynajmniej nie będziesz miał problemów z koncentracją. Może później rozpoczniesz prywatne życie.
Im więcej z tych rzeczy robisz, tym bardziej prawdopodobne, że jesteś dobrym materiałem na hackera. Nie wiadomo do końca, dlaczego akurat te rzeczy kojarzą się ze zdolnościami hackerskimi, ale są one związane z jednoczesnym wykorzystywaniem zdolności prawej i lewej półkuli mózgowej, a to wydaje się być ważne (hackerzy muszą zarówno myśleć logicznie jak i być w stanie wyjść poza zakres pozornej logiki, by móc przekroczyć barierę swoich wyobrażeń w danej chwili).
W końcu kilka rzeczy, których nie należy robić.
Loginataka zawiera kilka rzeczy dotyczących właściwego treningu i postawy hackerów UNIXowych.
Napisałem również A Brief History Of Hackerdom (krótką historię hackerstwa).
Jestem autorem artykułu The Cathedral and the Bazaar, który wyjaśnia, w jaki sposób działąją kultury hackerskie wokół Linuxa i oprogramowania z dostępnym kodem źródłowym. W dalszej części Homesteading the Noosphere treści te znalazły jeszcze bardziej bezpośredni opis.
Nawet gdybym miał czas, hackerstwo jest postawą i umiejętnością, których musisz po prostu nauczyć się sam. Przekonasz się, że chociaż prawdziwi hackerzy chcą Ci pomóc, nie uszanują Cię, jeśli będziesz ich błagać, żeby karmili Cię swoją wiedzą jak łyżeczką.
Naucz się na początku kilku rzeczy. Pokaż, że się starasz, że potrafisz uczyć się samodzielnie. Potem zwróć się do znajomych hackerów ze szczegółowymi pytaniami.
(Kiedyś uważałem, że nie spotkasz prawdziwych hackerów na IRC, ale miałem okazję przekonać się, że to się zmienia. Okazuje się, że niektóre społeczności hackerskie, związane z takimi rzeczami jak GIMP czy Perl mają własne kanały IRC.)
Ale HTML nie jest pełnym językiem programowania. Kiedy będziesz gotowy zacząć programować, polecam rozpoczęcie od Pythona. Spotkasz wiele osób polecających Perla i Perl jest popularniejszy od Pythona, ale jest trudniejszy do nauki.
C jest naprawdę ważne, ale jest też dużo trudniejsze od Perla i Pythona. Nie próbuj uczyć się go na początku.
Tu znajdują się oryginalne sformułowania, które dla mnie stanowią elementy kontrowersyjne. Jeśli ktoś pokusi się o próbę poprawienia mnie w tłumaczeniu - bardzo proszę. Wszak na tym polega esencja hackerstwa...
Te strony znajdują się na serwerze darmowych kont PromaiL (http://www.promail.pl) |