piątek, 23 marca 2007

Jak zostać hakerem wg Erica Raymonda.

Polskie tłumaczenie znanego tekstu Erica Raymonda

Hacker - kto to taki?

"Słownik żargonu hackerskiego" określa hackera jako kogoś biegłego w zagadnieniach technicznych, znajdującego upodobania w rozwiązywaniu problemów i przekraczaniu ograniczeń. Jeśli jednak chcesz zostać hackerem, tylko dwie definicje można uznać za najbliższe prawdy.

Istnieje społeczność o specyficznej kulturze, której początki działalności sięgają pierwszych wielodostępnych minikomputerów z podziałem czasu i najwcześniejszych eksperymentów z siecią ARPAnet. To właśnie członkowie tej kultury po raz pierwszy użyli terminu "hacker". Hackerzy zbudowali Internet. Hackerzy uczynili z Uniksa system operacyjny w kształcie, w jakim istnieje dzisiaj. Hackerzy zapoczątkowali Usenet. Hackerzy sprawili, że Światowa Pajęczyna (World Wide Web) zaczęła działać. Jeśli więc jesteś częścią tej kultury i bierzesz w niej aktywny udział, możesz nazwać siebie hackerem.

Filozofia hackera nie ogranicza się tylko do kultury softwarowo-hackerskiej, jest obecna także m.in. w elektronice, muzyce - a tak naprawdę możesz ją znaleźć we wszystkich dyscyplinach nauki czy sztuki. Softwarowi hackerzy rozpoznają bratnie dusze gdziekolwiek się pojawią - są tacy, którzy twierdzą, że natura hackera jest naprawdę niezależna od konkretnego medium, nad którym on pracuje. Niemniej w dalszej części skupię się na umiejętnościach i postawach hackerów softwarowych oraz na tradycjach kultury społecznej, która zapoczątkowała termin "hacker".

Istnieje także druga grupa ludzi, którzy nazywają siebie hackerami, ale nimi nie są. W większości są to nastoletni osobnicy płci męskiej znajdujący 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. Uważają ich za leniwych, nieodpowiedzialnych i niezbyt błyskotliwych, a to, że są w stanie przełamać system ochrony, nie czyni ich hackerem bardziej niż człowieka umiejącego uruchomić samochód inżynierem. Niestety, wielu dziennikarzy i autorów publikacji dało się oszukać i aby określić ludzi tego typu używają słowa "hacker". A to bezgranicznie irytuje prawdziwych hackerów.

Jaka jest podstawowa różnica między tymi dwiema grupami? Otóż, zasadnicza: 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 5-10 lat odsiadki, kiedy okaże się, że nie jesteś tak bystry, jak myślałeś. I to wszystko co mam do powiedzenia o crackerach.

Postawa hackera.

Hackerzy rozwiązują problemy i tworzą różne rzeczy, wierząc w wolność i wzajemną pomoc. Aby zostać zaakceptowany w środowisku hackerów, musisz przyjąć ich filozofię. Jednak żeby tak się stało, musisz w nią naprawdę uwierzyć.

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.

Jeśli chcesz być hackerem, powtarzaj następujące słowa do chwili, aż w nie uwierzysz:

1. Świat jest pełen fascynujących problemów, czekających na rozwiązanie.

Być hackerem to świetna zabawa, ale taka, która pochłania mnóstwo wysiłku. Wysiłek natomiast wymaga motywacji. Atleci odnoszący sukcesy sportowe czerpią ją z umiejętności nakłonienia własnego ciała, aby działało tak, jak sobie tego życzą, z przełamywania fizycznych ograniczeń, jakim podlega człowiek. Podobnie, aby być hackerem, musisz odczuwać satysfakcję z rozwiązywania problemów, podwyższania swoich umiejętności i ćwiczenia inteligencji.

Jeśli nie jesteś z natury tego typu człowiekiem, to musisz się takim stać. W przeciwnym razie szybko się zorientujesz, ż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 - wiary, że poradzisz sobie ze wszystkim, postępując w sposób następujący: jeśli nie umiesz rozwiązać jakiegoś problemu, nie rezygnuj - zmierz się z nim, idąc krok po kroku do celu. Najpierw rozgryź niewielką część problemu, wskutek czego zdobędziesz wystarczającą wiedzę, żeby zmierzyć się z następnym i tak dalej, aż rozwiążesz całe zagadnienie.

2. Nigdy nie należy rozwiązywać problemu dwa razy.

Twórcze umysły są na tyle wartościowe, że nie powinny być marnotrawione na powtórne wynajdywanie koła. Dlatego jako hacker musisz podporządkować się zasadzie, że czas hackerów jest tak bardzo cenny, że masz moralny obowiązek dzielić się wszystkimi informacjami czy rozwiązanymi problemami, aby inni hackerzy mogli skoncentrować się na czymś nowym, zamiast trawić wysiłek na coś, co już zostało rozwiązane.

(Nie musisz wierzyć, że masz obowiązek rozdawać za darmo całą swoją twórczą działalność, choć hackerzy, którzy tak czynią, zyskują ogromny szacunek. Nie jest sprzeczne z zasadami hackera, że sprzedaje on swoją pracę - muszą przecież mieć pieniądze na jedzenie, dach nad głową i coraz nowocześniejsze narzędzie pracy, czyli komputer. Jest logiczne, że używasz swoich hackerskich umiejętności, aby utrzymać rodzinę, a nawet bogacić się, nie zapominając jednak, że jesteś hackerem.)

3. Znudzenie i harówka są złe.

Hackerzy (i twórcy w ogóle) nigdy nie powinni nużyć się swoją pracą czy też być zmuszonymi do zaharowywania się przy głupiej i mechanicznej robocie. To marnotrawienie czasu na sprawy ważne szkodzi wszystkim.

Prawdziwy hacker powinien zautomatyzować nudne fragmenty pracy, oczywiście w miarę możliwości i podzielić się tymi innowacjami z innymi hackerami.

(Jak wszędzie, tak i tu jest wyjątek od reguły. Hackerzy robią czasem rzeczy, które postronnemu obserwatorowi mogą wydawać się mechaniczne lub nudne. W rzeczywistości są to ćwiczenia oczyszczające umysł lub gdy w celu osiągnięcia konkretnego rodzaju doświadczenia nie można tego zrobić inaczej. Ale przecież nikogo nie można zmusić do nudzenia się!)

4. Wolność jest dobra.

Hackerzy z natury są ludźmi wolnymi, nie znoszącymi żadnego przymusu. Każdy, kto może wydawać polecenia, może powstrzymać Cię od pracy, niezależnie jak bardzo byłbyś nią zafascynowany. Powinienieś zwalczać wszelkie przejawy autokratyzmu, gdziekolwiek by się pojawił, w przeciwnym razie stłamsi Ciebie i innych hackerów.

(Nie jest to 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. Aby zachowywać się jak hacker, musisz zatem 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.

5. Postawa nie zastąpi kompetencji.

Aby być hackerem, musisz wytworzyć w sobie niektóre z tych postaw. Ale kopiowanie postawy samej dla siebie nie uczyni z Ciebie hackera, tak samo jak postawa nie uczyni z Ciebie mistrza w sporcie lub gwiazdy rocka. Żeby zostać hackerem, potrzeba inteligencji, ćwiczeń, poświęcenia i ciężkiej pracy.

W związku z tym musisz nauczyć się niedowierzania oraz szacunku dla kompetencji pod każdą postacią. Hackerzy nie pozwolą pozerom marnować ich czasu, ale cenią sobie kompetencję - szczególnie kompetencję w hackerstwie. 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.
    Podstawowe umiejętności hackera.

    Postawa hackera jest istotna, ale umiejętności znaczą jeszcze więcej. Postawa nie zastąpi kompetencji i można wyróżnić pewien konkretny zestaw umiejętności, które będziesz musiał posiąść, zanim hackerom przyśni się nazwać Ciebie jednym z nich.

    Ten zestaw zmienia się powoli wraz z techniką wytwarzającą nowe zdolności i czyniące inne z nich przestarzałymi. Np. kiedyś do zasobu zdolności hackera zaliczało się programowanie w języku maszynowym, natomiast do niedawna nie należała do nich znajomość HTML-a. Obecnie w miarę jasno można zaliczyć do nich takie wymagania:

    1. Naucz się programowania.

    To jest oczywiście fundamentalna umiejętność hackera. Jeśli nie znasz żadnego języka programowania komputerów, polecam rozpoczęcie od Pythona. Jest zaprojektowany w czysty sposób, dobrze udokumentowany i stosunkowo przyjazny dla początkujących. Pomimo dobrego spełniania roli pierwszego języka programowania, nie jest on po prostu zabawką: jest potężnym i elastycznym narzędziem, świetnie dopasowanym do dużych projektów.

    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 uniksowego 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 LISP-a 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). Może być 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 upieczonych 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 doprowadza mnie do następnego tematu...

    2. Weź jeden z Uniksów dostępnych z kodem źródłowym i naucz się go używać i zarządzać nim.

    Zakładam, że masz komputer lub możesz uzyskać dostęp do takowego (ta dzisiejsza młodzież ma dużo lżej :-)). Jednym z najważniejszych kroków, które musi postawić nowicjusz, by posiąść umiejętności hackera, jest zdobycie kopii Linuksa lub jednego z BSD-Uniksów, zainstalowanie go na komputerze i uruchomienie.

    Tak, są systemy operacyjne na tym świecie poza Uniksem. Ale są udostępniane w kodzie binarnym - nie możesz poczytać kodu i nie możesz go zmienić. Próbowanie nauki hackerstwa w DOS-ie, Windowsach 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 Uniksa, lecz bez zrozumienia go nie nauczysz się internetowego hackerstwa. Z tej przyczyny kultura hackerów jest silnie scentralizowana wokół Uniksa. (To nie zawsze była prawda i niektórzy hackerzy starej daty nie są z tego powodu szczęśliwi. Symbioza pomiędzy Uniksem i Internetem stała się jednak tak silna, że nawet potęga Microsoftu nie jest w stanie zadać jej poważnego ciosu).

    Postaw Uniksa - osobiście lubię Linuksa, ale są inne drogi (no i oczywiście możesz używać Linuksa i DOS/Windows na tej samej maszynie). Naucz się go. Zarządzaj nim. Baw się nim. Nawiąż z jego pomocą kontakt Internetem. 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.

    Aby nauczyć się więcej o Uniksie, zobacz The Loginataka.

    3. Naucz się używać World Wide Web i pisać w HTML-u.

    Większość rzeczy, które zostały zbudowane przez kulturę hackerską, jest ukrytych przed wzrokiem. Pozwalają kierować fabrykami, biurami i uniwersytetami bez widocznego piętna na stylu życia nie-hackerów. Web jest jednym wielkim wyjątkiem, wielką błyszcącą zabawką hackerów, która, co potwierdzają nawet politycy, zmienia świat. Z tego jedynego powodu (i wielu innych równie dobrych) powinieneś nauczyć się, jak działa sieć.

    Nie oznacza to po prostu nauki posługiwania się browserem (każdy to może zrobić), ale nauczyć się pisania w HTML-u, języku Webu. Jeśli nie umiesz programować, pisanie w HTML-u nauczy Cię paru umysłowych przyzwyczajeń, które pomogą Ci to opanować. Zbuduj 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 bezcelowym, pozbawionym zawartości szlamem* - bardzo wymyślnie wyglądającym, ale szlamem bez dwóch zdań (dla dalszych informacji zobacz The HTML Hell Page).

    Aby Twoja strona była wartościowa, musi zawierać treść, tzn. musi być interesująca i/lub użyteczna dla innych hackerów. A to przenosi nas do następnego tematu...

    Status w kulturze hackerskiej.

    Hackerstwo opiera się na pojęciu reputacji. Starasz się rozwiązać interesujące problemy, ale na ile są one interesujące oraz na ile Twoje rozwiązania są dobre, jest zagadnieniem, które potrafią osądzic tylko podobni Tobie lub lepsi od Ciebie.

    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 dominację 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 robisz to, rozdając swój czas, swoją kreatywność, wyniki swoich umiejętności.

    Ogólnie wyróżnia się 5 rzeczy, które można robić dla zdobycia respektu przez hackerów:

    1. Pisz oprogramowanie z udostępnionym kodem źródłowym.

    Pierwszym (centralnym i najbardziej tradycyjnym) elementem jest tworzenie programów, które są odbierane przez innych hackerów jako zabawne lub użyteczne oraz udostępnianie kodów źródłowych do użytku dla całej kultury hackerskiej.

    (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, dla wszystkich zainteresowanych.

    2. Pomagaj testować i usuwać błędy w programach z udostępnionym kodem źródłowym.

    Hackerzy pomagają testować i usuwać błędy w oprogramowaniu z dostępnym kodem źródłowym. W tym niedoskonałym świecie nieuniknione jest, że większość naszego czasu przy tworzeniu oprogramowania poświęcamy na usuwanie błędów. Dlatego każdy autor programów powie Ci, że dobry beta-tester (taki, który potrafi opisać symptomy, dobrze zlokalizować problemy, toleruje błędy we wczesnych wersjach i umie zastosować kilka prostych procedur diagnostycznych) jest na wagę złota. Nawet jeden taki człowiek jest w stanie pokazać różnicę pomiędzy procesem debugowania, wydającym się czasochłonnym, wyczerpującym koszmarem, a takim, który jest wręcz dobroczynną uciążliwością.

    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 więzy z ludźmi, którzy później pomogą i Tobie.

    3. Publikuj użyteczne informacje.

    Inną użyteczną działalnością jest gromadzenie i filtrowanie użytecznych informacji i umieszczanie ich na stronach internetowych i w dokumentach typu FAQ (Frequently Asked Questions - "często zadawane pytania") oraz udostępnianie ich dla szerokiego forum.

    Osoby zarządzające dokumentami technicznymi typu FAQ są szanowane prawie tak, jak autorzy oprogramowania.

    4. Pomóż działać infrastrukturze.

    Kultura hackerska (i techniczny rozwój Internetu, jeśli o tym mowa) jest napędzana przez ochotników. Jest wiele koniecznej, ale niezbyt widowiskowej roboty, którą trzeba wykonać, aby wszystko działało tak, jak należy - administracja e-mailowymi listami dyskusyjnymi, filtrowanie grup dyskusyjnych (moderowanie), zarządzanie dużymi archiwami oprogramowania, rozwijanie różnych standardów technicznych.

    Ludzie, wykonujący dobrze ten rodzaj pracy są bardzo szanowani, bo każdy wie, że ta robota pochłania mnóstwo czasu i nie jest tak ciekawa jak zabawa z kodem.

    5. Służ samej kulturze hackerskiej.

    W końcu, możesz służyć samej kulturze oraz szerzyć jej ideologię (chociażby za pośrednictwem napisania niezłej rozprawy na temat: "Jak zostać hackerem" :-)). Inni nie będą tego od Ciebie oczekiwać, o ile nie kręciłeś się w tym temacie od jakiegoś czasu i nie zostałeś postacią dobrze znaną z któregoś z pierwszych 4 zagadnień.

    Kultura hackerów nie ma 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.

    Związek pomiędzy pojęciem "hacker" a pojęciem  "dziwak".

    Wbrew popularnemu mitowi nie musisz być dziwakiem, aby móc zostać hackerem. To niewątpliwie pomaga i wielu hackerów jest odludkami. Bycie wyrzutkiem społecznym pomaga skupić się na ważnych rzeczach, takich jak myślenie i grzebanie w kodzie.

    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 70., 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 liczba 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.

    Punkty za styl.

    Aby być hackerem, musisz wejść w styl myślenia hackera. Jest kilka rzeczy, które możesz robić, jeśli nie siedzisz za komputerem. Nie są one substytutami hackerstwa (nic nie jest), ale wielu hackerów to robi, czując, że w pewien sposób wiążą się w swych podstawach z duchem hackerstwa.

    1. Czytaj science-fiction. Odwiedzaj konwenty science-fiction (świetny sposób, aby spotkać hackerów lub osoby dobrze rokujące, aby nimi zostać).
    2. Studiuj Zen i/lub trenuj sztuki walki (tu dyscyplina psychiczna wydaje się podobna do hackerskiej).
    3. Rozwijaj w sobie analityczny słuch do muzyki. Naucz się cenić specyficzne gatunki muzyki. Naucz się dobrze grać na jakimś instrumencie lub dobrze śpiewać.
    4. Rozwiń w sobie szacunek dla gier umysłowych i zabawy słownej.
    5. Naucz się dobrze pisać w swoim języku narodowym. (Zdumiewająco dużo hackerów, włączając w to tych najlepszych, jakich znam, jest doskonałymi pisarzami).

    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ę ważne (hackerzy muszą zarówno myśleć logicznie, jak również 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ć.

    1. Nie używaj głupich, górnolotnych pseudonimów.
    2. Nie wdawaj się w święte wojny na Usenecie (lub gdziekolwiek indziej).
    3. Nie nazywaj siebie "cyberpunkiem" i nie marnuj czasu na kogokolwiek, kto określa siebie kimś takim.
    4. Nie wysyłaj poczty lub ogłoszeń na grupach dyskusyjnych, które będą pełne błędów ortograficznych lub gramatycznych.

    Reputacja, jaką zdobędziesz, jest niewiele warta. Hackerzy mają dobrą pamięć - może upłynąć wiele lat Twojego życia, zanim zostaniesz zaakceptowany.

    Inne źródła:

      Peter Seebach zarządza świetnym Hacker FAQ dla menedżerów, którzy nie wiedzą, jak postępować z hackerami.

      Loginataka zawiera kilka rzeczy dotyczących właściwego treningu i postawy hackerów Uniksowych.

      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łają kultury hackerskie wokół Linuksa 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.


Często zadawane pytania.

Pytanie: Nauczysz mnie hackerstwa?

Od pierwszej publikacji tego dokumentu otrzymuję kilka próśb tygodniowo o to, żebym kogoś "nauczył wszystkiego o hackerstwie". Niestety, nie mam ani czasu ani energii, aby to uczynić. Moje własne projekty hackerskie zajmują mi 110% czasu.

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.

P: Pomożesz mi włamać się do systemu lub nauczysz mnie crackerstwa?

Nie. Każdy, kto ciągle zadaje takie pytanie, po przeczytaniu tego dokumentu jest zbyt głupi, by go czegoś nauczyć, nawet gdybym miał na to czas. Jakiekolwiek podobne prośby wysłane e-mailem zostaną zignorowane lub odpowiem na nie ze skrajną nieuprzejmością.

P: Gdzie mogę znaleźć prawdziwych hackerów do rozmowy?

Najlepszą metodą jest odnaleźć grupę użytkowników Uniksa lub Linuksa w pobliżu i udać się na ich spotkanie (możesz znaleźć linki do kilku list takich grup na stronie LDP).

(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.)

P: Jakiego języka powinienem nauczyć się na początku?

HTML-a, jeśli jeszcze go nie znasz. Jest pełno widowiskowych, przeładowanych formą, złych książek o HTML-u na rynku i załamująco niewiele dobrych. Tą, którą lubię, najbardziej jest "HTML: The Definitive Guide".

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. Jest on popularniejszy od Pythona, ale 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.

P: Czy rynek oprogramowania z dostępnym kodem źródłowym nie uniemożliwi programistom zarobienia na życie?

To wydaje się nieprawdopodobne - ale na razie przemysł oprogramowania z dostępnym kodem źródłowym stwarza nowe stanowiska pracy zamiast je odbierać. Jeśli zrealizowanie programu jest korzystniejsze ekonomicznie niż niestworzenie go, programista otrzyma zapłatę niezależnie od tego, czy program będzie darmowy. Niezależnie od ilości "darmowego" oprogramowania popyt na nowe i specjalizowane oprogramowanie zawsze wydaje się większy. Napisałem więcej na ten temat na stronach Open Source.

P: Jak mogę zacząć? Gdzie zdobędę darmowy UNIX?

Zawarłem tam wskazówki, gdzie znaleźć najpowszechniej stosowany darmowy UNIX. Żeby być hackerem, potrzebujesz motywacji, inicjatywy i umiejętności samodzielnej nauki. Zacznij teraz...


Od tłumacza:
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...

phreaking - w uproszczeniu oznacza to korzystanie z usług telefonicznych "na lewo", czyli bez opłaty. U nas objawiało się to np. przez wykorzystanie zapalniczki piezoelektrycznej do nabijania impulsów w aparatach publicznych na żetony... (dzięki Zain... ;-)

sludge - szlam to dokładne tłumaczenie tego słowa. Jednak niezbyt dobrze brzmi po polsku... Na pewno jest lepsze słowo na określenie bezwartościowego śmiecia, czegoś stworzonego dla samego tworzenia, bez wartości dla innych, prócz twórcy...

open source software - właściwie to się czepiam, ale warto wreszcie przyjąć jakąś polską wersję tego określenia do naszego języka. "Oprogramowanie z dostępnym kodem źródłowym" brzmi zbyt opisowo. Dowodzi to tylko, że język polski jest ubogi w określenia. Dla opisania zjawisk musimy używać więcej słów (moje tłumaczenie jest w ok. 20% dłuższe od oryginału...)

nerdgeek - moje tłumaczenia "dziwak" oraz "świr&;quot; oddają raczej nastrój emocjonalny określeń użytych przez Erica (tak sądzę ;-), niż rzeczywiste znaczenie tych slangowych sformułowań. FIXME please...

Brak komentarzy: