glider

Zašto ovaj dokument?

Kao editor Žargon fajla (eng. Jargon File) i autor nekoliko drugih dobro poznatih dokumenata slične prirode, obično dobijam mejl zahteve od entuzijastičnih mrežnih početnika (eng. network newbies) sa pitanjem "kako da naučim da budem haker čarobnjak?". Nazad u 1996., primetio sam da ne postoji ni jedan drugi dokument sa često postavljenim pitanjima (eng. FAQ) ili web dokument koji se odnosi na ovo vitalno pitanje, pa sam startovao ovaj. Dosta hakera ga sada smatra definitivnim, i pretpostavljam da to znači da jeste. Opet, ne tvrdim da sam ekskluzivni autoritet na ovu temu; ako ti se ne sviđa šta čitaš ovde, napiši svoj.

Ako čitaš snimak ovog dokumenta oflajn, aktuelna verzija se nalazi na https://hacker.lugons.org.

Napomena: postoji lista često postavljenih pitanja (eng. Frequently Asked Questions) na kraju ovog dokumenta. Molim te da pročitaš ta pitanja dva puta pre nego što mi pošalješ mejl sa pitanjima o ovom dokumentu.

Mnogi prevodi ovog dokumenta su dostupni: Arapski Beloruski Bugarski Kineski, Češki. Danski Holandski Estonski Francuski Nemački, Grčki Mađarski, Italijanski Hebrejski, Japanski Litvanski Norveški, Persijski Poljski Portugalski (Brazilski), Rumunski Španski, Turski, i Švedski. Postoji mogućnost da su prevodi zastareli, u manjoj ili većoj meri, jer se ovaj dokument često menja.

Dijagram sa pet-tačaka-u-devet-kvadrata koji ukrašava ovaj dokument se zove glider. To je jednostavan simbol sa iznenađujućim odlikama u matematičkoj simulaciji pod nazivom Life, koji je fascinirao hakere dugi niz godina. Mišljenja sam da je dobar vizuelni emblem koji oslikava ono što hakeri jesu, apstraktni, na prvi pogled deluju misteriozno, ali su kapija u jedan svet koji ima zasebnu i kompleksnu logiku. Pročitaj više o glider emblemu na ovom linku.

Ako ti je ovaj dokument koristan i od vrednosti, molim te da me podržiš na Patreon.. I takođe razmotri slanje napojnica drugim hakerima koji su proizveli kod koji koristiš i vrednuješ. Dosta malih ali kontinuitetnih donacija se nagomila brzo, i može da osobodi ljude koji su ti dali poklone njihovog rada da bi stvorili još vrednosti.

Šta je haker?

Žargon fajl (eng. Jargon File) sadrži pregršt definicija termina haker i većina ima veze sa tehničkom naprednošću i zadovoljstvom u rešavanju problema i prevazilaženju granica. Ako želiš da znaš kako da postaneš haker, međutim, samo dva su zaista relevantna.

Postoji zajednica, zajednička kultura, eksperata programera i čarobnjaka za mrežu koja datira još iz vremena prvih time-sharing mini kompjutera i najranijih ARPAnet eksperimenata. Članovi ove kulture su začeli termin haker. Hakeri su izgradili internet. Hakeri su napravili Unix operativni sistem onim što je danas. Hakeri održavaju Usenet. Hakeri čine da World Wide Web radi. Ako si deo ove kulture, ako si joj doprineo i drugi ljudi u njoj znaju ko si i zovu te hakerom, ti si haker.

Stanje svesti hakera nije ograničeno samo na softver-haker kulturu. Postoje ljudi koji primenjuju hakerski stav na druge stvari, poput elektronike ili muzike. Ustvari, možete da ga pronađete na najvišim nivoima bilo koje nauke ili umetnosti. Softverski hakeri prepoznaju ove srodne duše na drugim mestima i obično ih nazivaju hakerima, dok neki tvrde da je hakerska priroda nezavisna od određenog medijuma u kom haker radi. Međutim, mi ćemo se u ostatku ovog dokumenta fokusirati na veštine i stavove softverskih hakera i tradiciju zajedničke kulture u kojoj je nastao termin haker.

Postoji druga grupa ljudi koja na sav glas sebe naziva hakerima, ali nisu. To su ljudi (većinom muški adolescenti) koji razvaljuju u računare i uništavaju telefonski sistem. Pravi hakeri nazivaju ove ljude krekerima (eng. crackers) i ne žele ništa da imaju sa njima. Pravi hakeri većinom misle da su krekeri lenji, neodgovorni, i ne previše bistri, i tvrde da činjenica da je neko sposoban da razbije sigurnost ga ne čini hakerom ništa više nego što te mogućnost da upališ automobil na žice ne čini automobilskim inženjerom. Nažalost, mnogi novinari i pisci su bili obmanuti da koriste reč haker za opis krekera; što beskrajno iritira prave hakere.

Osnovna razlika je sledeća: hakeri grade stvari, krekeri ih uništavaju.

Ako želiš da budeš haker, nastavi sa čitanjem. Ako želiš da budeš kreker, idi čitaj alt.2600 grupu za vesti i spremi se na pet do deset godina u zatvoru nakon što shvatiš da nisi toliko pametan kao što misliš. I to je sve što ću reći o krekerima.

glider

Stav hakera

Hakeri rešavaju probleme i grade stvari, i oni veruju u slobodu i dobrovoljnu uzajamnu pomoć. Da budeš prihvaćen kao haker, moraš da se ponašaš kao da i sam imaš ovu vrstu stava. A da bi se ponašao kao da imaš stav, moraš zaista da veruješ u taj stav.

Ali ako misliš da kultivišeš hakerski stav samo da bi bio prihvaćen u kulturi, promašićeš poentu. Bitno je da postaneš osoba koja će verovati u te stvari jer će ti to pomoći da učiš i držaće te motivisanim. Kao sa svim kreativnim umetnostima, najefikasniji način da postaneš majstor je da imitiraš stanje uma majstora, ne samo intelektualno, već i na emotivnom nivou.

Ili, kao što moderna Zen pesma kaže:

Dakle, ako želiš da budeš haker, ponavljaj sledeće stvari dok ne kreneš da veruješ u njih:

1. Svet je pun fascinantnih problema koji čekaju da budu rešeni

Biti haker je vrlo zabavno, ali to je vrsta zabave koja zahteva dosta napora. Napor zahteva motivaciju. Uspešni sportisti crpe motivaciju iz fizičkog zadovoljstva, kroz performanse svog tela i prevazilaženja sopstvenih fizičkih granica. Slično tome, da budeš haker moraš da osećaš zadovoljstvo nakon rešavanja problema, izoštravanja veština i vežbanja inteligencije.

Ako nisi tip osobe koja se ovako po prirodi oseća, moraćeš da postaneš jedna od njih da bi uspeo kao haker. U suprotnom, tvoja energija za hakerisanje će odlaziti na ometanja kao što su seks, novac i društveno odobravanje.

(Takođe moraš da razvijaš veru u svoje kapacitete za učenje i verovanje da čak i ako ne znaš sve što je potrebno da rešiš problem, ako napadneš jedan njegov deo i učiš iz toga, naučićeš da rešiš sledeći deo i tako dalje, sve dok ne završiš.)

2. Ni jedan problem nikada ne bi trebalo rešavati dva puta.

Kreativni mozgovi su vredan i ograničen resurs. Ne treba ih traćiti na ponovno izmišljanje točka kada već postoji veliki broj novih fascinantnih problema koji čekaju.

Da bi se ponašao kao haker, moraš da veruješ u to da je vreme za razmišljanje drugih hakera vredno u tolikoj meri da je gotovo tvoja moralna dužnost da deliš informacije, rešavaš probleme, a zatim daješ rešenja drugima da bi i drugi hakeri mogli da rešavaju nove probleme umesto da moraju iznova da se vraćaju na one stare.

Međutim, "Ni jedan problem nikada ne bi trebalo rešavati dva puta." ne znači da treba sve postojeće probleme da smatraš svetim, ili da postoji samo jedno pravo rešenje za svaki problem. Mi obično mnogo naučimo o problemu o kom nismo pre znali tako što proučavamo njegovu prvu verziju rešenja. Uredu je, i obično neophodno da odlučimo da možemo bolje. Ono što nije dobro su veštačke tehničke, legalne, ili institucionalne prepreke (poput softvera sa zatvorenim kodom) koji sprečavaju da dobra rešenja budu ponovo upotrebljena i primoravaju ljude da ponovo izmišljaju točak.

(Ne treba da živiš u uverenju da si u obavezi da daš sve tvoje kreativne proizvode, mada oni hakeri koji to čine su oni koji dobijaju najviše poštovanja od drugih hakera. U saglasnosti sa hakerskim vrednostima je to da prodaš dovoljno da platiš svoju hranu, stanarinu i kompjutere. Sasvim je uredu da koristiš tvoje hakerske veštine da podržiš porodicu ili čak i da se obogatiš, sve dok ne zaboraviš na lojalnost tvojoj umetnosti i tvojim drugarima hakerima dok to radiš.)

3. Dosada i naporan posao su zlo.

Hakeri (i generalno kreativni ljudi) nikad ne bi trebali da se dosađuju ili da rade naporno na glupom poslu koji se stalno ponavlja, jer kad do toga dođe to znači da oni ne rade ono što jedino oni mogu da rade - da rešavaju nove probleme. Ovo rasipništvo svakoga boli. Zato dosada i naporan posao nisu samo neprijatni, već su zli.

Da bi se ponašao kao haker, moraš da veruješ u to dovoljno jako da bi imao želju da automatizuješ dosadne poslove što je više moguće, ne samo za tebe, već za sve druge (posebno druge hakere).

(Postoji jedan očigledan izuzetak. Hakeri ponekad rade stvari koje deluju da se ponavljaju ili su dosadne nekom ko posmatra, kao vežba za pročišćavanje uma, ili da bi stekli veštinu ili neko određeno iskustvo koje ne može da se stekne drugačije. Ali to je po izboru. Niko, ko ume da misli, nikad ne bi trebao da bude primoran da dođe u situaciju koja ga dosađuje.)

4. Sloboda je dobra.

Hakeri su po prirodi anti-autoritativni. Bilo ko, ko može da ti izdaje naređenja može da te spreči da rešavaš bilo koji problem sa kojim si fasciniran i, s obzirom na to kako mozak autoritativnih ljudi radi, obično će naći neki užasno glup razlog da to učine. Protiv autoritativnog stava se moraš boriti gde god ga sretneš, da te ne bi davio, tebe i druge hakere.

(Ovo nije isto kao borba protiv svakog autoriteta. Deca moraju biti vođena, a kriminalci zauzdani. Haker se može složiti da prihvati neku vrstu autoriteta da bi uzeo nešto što želi više od vremena koje provodi prateći naređenja. Ali to je ograničena, svesna pogodba; lična predaja koju autoritativni ljudi žele nije u ponudi.)

Autoritativni ljudi se bogate na cenzuri i tajnosti. Oni ne veruju u dobrovoljnu saradnju i deljenje informacija, već veruju samo u onu saradnju koju oni kontrolišu. Dakle, da bi se ponašao kao haker, moraš da razviješ instinktivno neprijateljstvo prema cenzuri, tajnosti, i upotrebi sile ili obmane za potčinjavanje odgovornih odraslih osoba. Takođe, moraš da budeš voljan da deluješ na osnovu tog uverenja.

5. Stav nije zamena za kompetentnost.

Da bi bio haker, moraš da razviješ neki od ovih stavova. Ali posedovanje samo stava te neće učiniti hakerom, ništa više nego što ćete učiniti sportskim šampionom ili rok zvezdom. Da bi postao haker, neophodna je inteligencija, vežba, posvećenost i težak rad.

Dakle, moraš da naučiš da ne veruješ stavu i da poštuješ kompetentnost svake vrste. Hakeri ne dozvoljavaju da pozeri traće njihovo vreme, ali oni obožavaju kompetentnost, pogotovo kompetentnost u hakerisanju, ali kompetentnost u bilo čemu se vrednuje. Kompetentnost u zahtevnim veštinama koje malo ko može da savlada je posebno dobra, a kompetentnost u zahtevnim veštinama koje uključuju mentalnu oštrinu, znanje i koncentraciju je najbolja.

Ako poštuješ kompetentnost, uživaćeš u njenom razvijanju u sebi. Težak rad i posvećenost će postati neka vrsta intenzivne igre pre nego naporan posao. Taj stav je ključan da bi postao haker.

glider

Osnovne veštine hakerisanja

Hakerski stav je od velikog značaja, ali su veštine od mnogo većeg. Stav nije zamena za sposobnost, i postoji određen osnovni skup veština pre nego što neki haker krene da sanja o tome da te zove jednim od njih.

Ovaj skup se polako menja vremenom kako tehnologija pravi nove veštine i ostavlja one stare iza sebe. Na primer, obično je programiranje obuhvatalo mašinski jezik, i do nedavno nije obuhvatalo HTML. Ali sada je prilično jasno da uključuje sledeće:

1. Nauči kako da programiraš.

Ovo je, naravno, osnovna hakerska veština. Ako ne znaš neki kompjuterski jezik, preporučujem da počneš sa Python-om. On je elegantno dizajniran, dobro dokumentovan, i relativno ljubazan prema početnicima. Uprkos tome što ti je prvi jezik, on nije samo igračka; on je veoma moćan, fleksibilan i dobar za velike projekte. Napisao sam detaljniju procenu Python-a. Dobri tutoriali su dostupni na Python zvaničnoj stranici.

Obično sam preporučivao Java-u kao dobar jezik za početak, ali ova kritika je promenila moja mišljenje (Pronađite "The Pitfalls of Java as a First Programming Language" u okviru kritike). Hakeri ne mogu da, kao što to oni poražavajuće kažu, pristupe rešavanju problema kao vodoinstalater u prodavnici hardvera; moraju da znaju kako komponente stvarno rade. Sada preporučujem C i LISP pre Java-e.

Postoji još generalnije pravilo. Ako jezik radi puno toga umesto tebe onda je odličan za produktivnost ali loš za učenje. Nemaju samo jezici ovaj problem; framework-ovi kao što su RubyOnRails, CakePHP, Django su jako jednostavni za dostizanje površnog razumevanje koje će te ostaviti bez resursa kada budeš morao da se pozabaviš teškim problemom ili samo da debugujes rešenje u jednostavnom.

Ako želiš da uđeš u ozbiljno programiranje, moraš dа nаučiš C, glavni UNIX jezik. C++ je u suštini veoma sličan C-u; ako znaš jedan, nije teško da naučiš i drugi. Nijedan jezik od ova 2 nisu dobri za početak. Zapravo, što više budeš izbegavao programiranje u C-u u toj meri ćeš biti produktivniji.

C je veoma efikasan i štedi resurse mašine. Nažalost, C dobija onoliku efikasnost koliko uložiš resursa u low-level programiranje (kao npr baratanje sa memorijom ručno). Ceo low-level kod je kompleksan i sklon bugovima, i zahteva dosta vremena zа debugovanje. Sa moćnim mašinama kakve su danas, ovo je obično loša ideja pa je pametnije koristiti jezike koji manje efikasno koriste mašinsko vreme ali više tvoje. Dakle, Python.

Ostali jezici od velikog znаčаjа za hakere su Perl i LISP. Perl je bitan za učenje iz praktičnih razloga; on se dostа koristi u web aplikacijama i administraciji sistema, pa ako nikad nisi naučio Perl, nauči da čitaš njegov kod. Mnogi ljudi koriste Perl za stvari za koje preporučujem Python, da izbegnu programiranje u C-u u stvarima koje ne zahtevaju njegovu mašinsku efikasnost.

LISP je jako važan da se nauči zbog iskustva duboke prosvetljenosti koje ćeš dobiti kada ga savladaš. To iskustvo će te učiniti boljim programerom do kraja života, čak i ako nikad ne koristiš LISP mnogo. (Možeš da dobiješ početno iskustvo sa LISP-om vrlo lako kroz uređivаnje i prаvljenje modovа za Emacs uređivač teksta, ili Script-Fu pluginovа za GIMP.)

Najbolje je da naučiš svih 5 jezika; Python, C/C++, Java, Perl, i LISP. Uostalom svi su jako bitni hakerski programski jezici, oni pokrivaju različite aspekte programiranja i svaki će te naučiti korisne stvari.

Ali budi svestan da nećeš obogatiti svoje iskustvo hakera ili programera samim učenjem jezika, trebaš da naučiš da razmišljaš o programerskim problemima u opštem smislu, nezavisno od određenog jezika. Da bi bio pravi haker, trebaš doći do tačke gde možeš naučiti novi jezik tako što ćeš povezati ono iz priručnika sa onim što već znaš. Ovo znači da treba da naučiš više nekoliko vrlo različitih jezika.

Ja ti ne mogu dati potpuno uputstvo kako da naučiš da programiraš • to je kompleksna veština. Mogu da ti kažem da knjige i kursevi nisu dovoljni • mnogi, možda i većina najboljih hakera su samouki. Možeš da naučiš karakteristike jezika, ili deliće znanja, iz knjiga, ali stanje uma, koje će učiniti to znanje živom veštinom, se jedino može naučiti vežbanjem i šegrtovanjem. Proverena metoda je (a) čitanje koda i (b) pisanje koda.

Peter Norvig, koji je jedan od Google-ovih glavnih hakera i koautor mnogih dosta korisćenih knjiga na AI, je napisao odličan esej zvani Teach Yourself Programming in Ten Years. Njegov "recept za uspešno programiranje" je vredan pažnje.

Više o ovome možeš pogledati na Kako da naučiš da hakujes. Ovo je jednostvan sku instrukcija ali ne lakih.

Traženje dobrog koda za čitanje je nekada bilo teško, zato što je postojalo malo programa kod kojih je kod bio dostupan i gde su hakeri mogli da ga čitaju i razmišljaju o njemu. Ovo se dramatično promenilo; softver otvorenog koda, programerski alati, i operativni sistemi (celi pravljeni od strane hakera) su sada primetno dostupni. Što me dovodi na sledeću temu...

2. Uzmi neki open source UNIX, nauči da ga pokreneš i koristiš.

Pretpostaviću da imaš lični kompjuter ili da imaš pristup jednom. (Odvojite trenutak da razmislite o tome koliko to zapravo znači. Hakerska kultura je začeta u vreme kada su kompjuteri bili toliko skupi da pojedinci nisu mogli da ih poseduju). Najvažniji korak koji neki početnik može da uradi da unapredi svoje hakerske veštine jeste da uzme neki Linux, BSD ili OpenSolaris, instalira na ličnom kompjuteru, i pokrene ga.

Da, postoje i drugi operativni sistemi na svetu osim UNIX-a. Ali oni su distribuirani binarno tako da ne možeš pročitati njihov kod, i ne možeš ih promeniti. Pokušaj da naučiš kako da hakerišeš na Microsoft Windows-u ili na bilo kom drugom sistemu zatvorenog koda (eng. closed-source) je isto kao da pokušaš da naučiš ples dok si umotan u gips.

Pod Mac OSX je moguće, ali samo deo operativnog sistema je open source tako da ćeš udariti u dosta zidova, i moraš biti pažljiv da ne razviješ lošu naviku zavisnosti od Apple-ovog vlasničkog koda. Ako se koncentrišeš na Unix ispod haube možeš puno toga naučiti.

Unix je operativni sistem Interneta. Dok možeš naučiti koristiti Internet bez Unixa, ne možeš biti Internet haker bez razumevanja Unixa. Zbog tog razloga, haker kultura je danas strogo orijentisana na Unix. (Ovo nije uvek bio slučaj, i neki stari hakeri još uvek nisu srećni zbog toga, ali simbioza između Unixa i Interneta je toliko jaka da ni moćan Microsoft ne može da je razbije.)

Dakle, uzmite Unix. Meni lično se sviđa Linux ali postoje i drugi načini (i da, možeš pokrenuti i Linux i Microsoft Windows na istoj mašini). Nauči ga. Koristi ga. Razmišljaj sa njim. Pričaj sa internetom preko njega. Čitaj kod. Menjaj kod. Dobićeš dosta programerskih alata (uključujući i C, Python, LISP, Perl) o kojima Microsoft može samo da sanja, zabavićeš se i upićeš mnogo znanja neshvatajući da učiš sve dok se jednog dana ne okreneš i ne pogledaš unazad kao majstor haker.

Za više o učenju Unixa , pogledaj Loginataka. Takođe pogledaj i The Art Of Unix Programming.

Blog Let's Go Larval! je dobar početak za početnike u Linuksu.

Da dobiješ Linux u svoje ruke , pogledaj Linux Online! sajt; možeš preuzeti odatle ili (bolje ideja) da pronađeš neku lokalnu grupu Linux korisnika (eng: Linux User Group (LUG)) da ti oni pomognu sa instalacijom.

Tokom prvih 10 godina života ovog uputstva, zapazio sam da sa početničke tačke gledišta, sve Linux distribucije su skoro jednake. Ali u 2006-2007, pojavio se najbolji izbor: Ubuntu. Dok druge distribucije imaju svoje prednosti, Ubuntu je u najvećoj meri dostupan za novajlije. Imaj na umu da je desktop interfejs "Unity", koji je Ubuntu uveo kao default pre nekoliko godina, skoro neupotrebljiv; Xubuntu ili Kubuntu varijacije su bolje.

Možeš pronaći BSD Unix resurse i pomoć na www.bsd.org

Dobar način da zaroniš u ove vode jeste da boot-uješ ono što se u Linux-u zove live CD, distribucija koja se u potpunosti pokreće sa CD-a ili USB-a bez potrebe da menja hard disk. Ovo će biti sporo, jer su CD-ovi spori, ali to je način da stekneš uvid u mogućnosti bez potrebe da uradiš išta drastično.

Napisao sam mali priručnik Osnove UNIX-a i Interneta.

Bio sam protiv sаmostаlnog instaliranja Linux-a ili BSD-a ukoliko ste početnik. Današnji instaleri su dovoljno dobri da je moguće da to uradiš sam, čak i аko si početnik. Mada, i dalje preporučujem kontakt sa lokalnom korisničkom grupom za pomoć oko instalacije. Ne može da škodi, а može da ubrza proces.

3. Nauči kako da koristiš World Wide Web i pišeš HTML.

Dosta stvari koje je hakerska kultura izgradila radi svoj posao bez vidokruga - pomaganje fabrikama, središtima , univerzitetima bez nekog očiglednog uticaja na ljude koji nisu hakeri. Web je jedan veliki izuzetak, velika sjajna igračka hakera za koju čak i političari priznaju da je promenila svet. Zbog toga (a i mnogih drugih razloga) trebaš da naučiš kako da koristiš Web.

To ne znači da samo učiš kako da koristiš browser (to može bilo ko), već kako da pišeš HTML, Web markerski jezik. Ako ne znaš kako da programiraš, HTML će te naučiti nekim mentalnim navikama koje će ti pomoći u učenju progrаmirаnjа.

Ali to što imаš početnu strаnicu te neće učiniti dobrim hаkerom. Web je pun home stranica. Mnoge od njih su besmislene, bez sadržaja i umrljane (više na ovu temu na HTML pakao od stranice).

Da bi imala vrednost, tvoja stranica mora imati sadržaj koji će biti interesantan i/ili koristan drugim hakerima. I to nas baca na sledeću temu...

4. Ako nemaš funkcionalan engleski, nauči ga

Kao Amerikanac i nativni govornik Engleskog, nerado sam ukazivao na ovo, da ne bi izgledalo kao neki kulturni imperijalizam. Ali nekoliko nativnih govornika drugih jezika su mi ukazali na to da je engleski jezik jezik hakerske kulture i Interneta i da je neophodno da ga znaš da bi funkcionisao u hakerskoj zajednici.

Oko 1991. sam naučio da mnogi hakeri kojima je engleski drugi jezik, koriste engleski jezik u tehničkim raspravama čak i kada imaju isti maternji jezik; prijavljivano mi je u to vreme da engleski ima bogatiji tehnički rečnik nego bilo koji drugi jezik i da je, shodno tome, jednostavno bolji alat za posao. Iz sličnih razloga, prevodi tehničkih knjiga napisanih na Engleskom su obično nezadovoljavajući (ako uopšte i bivaju urađeni).

Linus Torvalds, Finac, komentira njegov kod na engleskom (uvek je tako i radio). Njegovo tečno znanje engleskog je dovelo do toga da okupi zajednicu developera širom sveta za Linux. To je primer vredan praćenja.

Činjenica da ti je engleski jezik maternji jezik ne garantuje da su ti jezičke veštine dovoljno dobre da funkcionišeš kao haker. Ako pišeš kao da si polupismen, negramatički, prožeto sa lošim spelovanjem, mnogi hakeri (uključujući mene) će težiti da te ignorišu. Dok aljkavo pisanje ne mora uvek da znači i aljkavo razmišljanje, nalazimo da je korelacija generalno jaka i nemamo koristi od aljkavih mislilaca. Ako još uvek ne možeš da pišeš kompetentno, nauči.

glider

Status u hakerskoj zajednici

Kao i mnoge kulture bez ekonomije i novca, hakerska zajednica funkcioniše na osnovu reputacije. Pokušavaš da rešiš interesantan problema, koliko je on zaista interesantan, i da li je tvoje rešenje stvarno urađeno na dobar način, ocenjuju samo oni koji su na tvom nivou ili oni koji su tehnički bolji od tebe.

Prema tome ako igraš hakersku igru, imaćeš mogućnost da naučiš dosta o veštinama koje hakeri poseduju, kakav je njihov međusobni odnos, kao i kakav će oni imati odnos prema tvojim veštinama. (Haker tek možeš da postaneš kada zajednica počne tako da te zove). Ova činjenica je zaklonjena prikazom hakerisanja kao usamljeničkog rada; takođe i od strane tabua o hakerskoj kulturi (koji postepeno jenjava od sredine 1990-tih, ali je i dalje na snazi) protiv priznanja da su ego ili spoljašnja potvrda uopšte uključeni u motivaciju pojedinca.

Konkretno, hakerska zajednica je ono što antropolozi nazivaju poklon kultura (eng. gift culture). Status i poštovanje se ne dobijаju dominirаnjem drugih ljudi, lepotom, posedovаnjem stvаri koje drugi ljudi žele, već poklаnjаnjem stvаri. Ustvari vi delite vreme, kreativnost i rezultate svojih sposobnosti sa drugim ljudima.

Konkretno, hakerska zajednica je ono što antropolozi nazivaju poklon kultura (eng. gift culture). Status i poštovanje se ne dobijaju dominiranjem drugih ljudi, lepotom, posedovanjem stvari koje drugi ljudi žele, već poklanjanjem stvari. Ustvari vi delite vreme, kreativnost i reyultate svojih sposobnosti sa drugim ljudima.

Ovo je lista pet stvari koje treba da radiš, kako bi zaslužio poštovanje u hakerskoj zajednici:

1. Piši open-source softver

Prvo (centralno i tradicionalno) je da pišeš programe koji će drugi hakeri smatrati zanimljivim i korisnim, kao i da objaviš kompletan izvorni kod kako bi svima bio dostupan i kako bi kompletna hakerska zajednica mogla da ga koristi.

(Mi ovaj softver zovemo slobodan softver (eng. free software), ali ovo zbunjuje mnoge koji nisu sigurni šta tačno predstavlja reč slobodan. Većina nas danas preferira termin open-source softver.

Takozvani polu bogovi u hakerskoj zajednici su ljudi koji su napisali najveće i najmoćnije programe, a koji pokrivaju veliki deo potreba i onda ih pružili slobodno svima na korišćenje.

Ali i dalje postoji mali istorijski detalj. Dok su hakeri koji su uvek radili na open source razvoju i koji su činili najjače jezgro zajednice, pre 1990. godine većina tih hakera provodila je većinu svog vremena na pisanju zatvorenog softvera (closed source). Ovo je bilo tako i kada sam napisao prvu verziju ovog uputstva 1996. godine; zato sam i uzeo stvar u svoje ruke kako bi proširio open source posle 1997. godine. Danas su "hakerska zajednica" i "open source programeri" dva razlicita opisa koja su u suštini ista kultura i ista populacija, ali zapamtite, nikada ne treba zaboraviti da to nije bilo uvek tako. (Više na ovu temu u Istorijska napomena: Hakerisanje, otvoreni kod (eng. Open Source) i slobodan softver (eng. Free Software).)

2. Pomozi u testiranju i pronalaženju grešaka u open-source softveru

Oni poštuju osobe koje testiraju i pronalaze greške u otvorenom softveru. U ovom nesavršenom svetu najveći deo vremena provodi se u fazi traženja i otklanjanja grešaka u programu. To je i razlog zašto će svaki autor koji piše otvoren kod, a koji je još uvek pri zdravoj pameti da kaže da dobar beta tester (koji zna kako da jednostavno opiše simptome, dobro lokalizuje problem, toleriše greške u ranoj fazi softvera i spreman je da napravi nekoliko testova) više vredi nego kada bi se njegova težina merila u zlatu. Čak i jedan beta tester može napraviti razliku između faze traženja grešaka koja je dugotrajni, iscrpljujući košmar i one koja je samo blagotvorna smetnja.

Ako si novajlija, probaj da nađeš program koji se razvija, a da ti je interesantan, i budi dobar beta tester. Postoji prirodan proces od pomoći testiranja programa do pomoći u pronalaženju grešaka i pomoći u njegovom modifikovanju. Na ovaj način mnogo ćeš da naučiš i generisaćeš pozitivnu karmu kod ljudi kojima si pomogao, a koji će kasnije pomoći tebi.

3. Objavljuj korisne informacije

Još jedna dobra stvar je da skupljaš, obrađuješ i poboljšavaš interesantne informacije i objavljuješ ih u obliku web stranica ili često postavljenih pitanja (eng. FAQ-Frequently Asked Questions) čineći ih dostupnim svima.

Ljudi koji pišu i održavaju ovakav vid dokumentacije u zajednici imaju skoro isto poštovanje kao i sami autori otvorenog koda.

4. Pomozi da infrastruktura funkcioniše

Hakerska kultura (tehnički razvoj, a posebno razvoj Interneta) živi od rada volontera. Postoji dosta neophodnog posla, koji je dosadan ali mora da se uradi kako bi se dalje napredovalo - administriranje mailing lista, moderiranje grupa za diskusiju, održavanje velike arhive softvera, razvijanje RFC-a i drugih tehničkih standarda.

Ljudi koji dobro rade ovaj deo posla, uživaju u zajednici visoki stepen poštovanja, jer svi znaju da je ovo deo posla koji uzima ogromnu količinu vremena i ne predstavlja toliko zadovoljstvo kao igranje sa kodom.

5. Pomozi i budi na usluzi hakerskoj kulturi

U svakom slučaju možeš da pomogneš ako i sam propagiraš hakersku kulturu (možeš da slediš ovaj primer i da pišeš kako postati haker :o) ). Ovo je nešto što ćeš moći da uradiš samo ako si proveo određeno vreme u zajednici i poznat si po tome da si učestvovao u prve četiri gore nabrojane stavke.

Hakerska kultura ne poseduje vođu, ali postoje heroji kulture, plemenske starešine, istoričari i predavači. Ako ste ležali dovoljno dugo u rovovima, može biti da prerastete u jednu od ovih pozicija. Upozorenje: Hakeri sumnjaju u javno i preterano pokazivanje samopouzdanja njihovih pretpostavljenih. Zbog čega je veoma opasno nakon toga težiti ka javnoj slavi. Umesto da se boriš za nju, trebalo bi tako da se postaviš da ti oni sami padnu u naručje, a zatim da budeš skroman i zahvalan za status koji uživaš.

glider

Veza između hakera i nerdova

Uprkos popularnom mitu, ne morate biti nerd da biste bili haker. Pomaže, naravno, i mnogi hakeri su zapravo nerdovi. Biti neprihvaćen od strane društva pomaže da se usredsredite na zaista važne stvari, kao što su razmišljanje i hakerisanje.

Iz ovog razloga mnogi hakeri su prihvatili naziv gik (eng. geek) kao odlikovanje za njihov način nezavisnosti od uobičajenih društvenih šablona (takođe kao i sklonost ka naučnoj fantastici i strateškim igrama koji često idu uz hakere). Izraz nerd je tako korišćen '90-ih godina, kada je nerd imao blago uvredljivo značenje, a izraz gik (eng. geek) je imao mnogo uvredljivije značenje; u jednom trenutku posle 2000-te ta dva izraza su zamenila svoja mesta, barem u pop kulturi SAD-a, i trenutno čak postoji i značajan broj ljudi sa stavom „ponosan gik“ i među onima koji se ne bave tehnikom.

Ako možete da izvedete da se toliko koncentrišete na hakerisanje da budete dobar haker, a opet da imate i život, to je u redu. To je mnogo jednostavnije danas nego što je bilo kada sam bio početnik (eng. newbie) tokom '70-ih; danas je kultura mnogo više prijateljski nastrojena prema tehno-nerdovima. Čak je i sve više onih koji shvataju da su hakeri često izuzetno dobri kao ljubavnici i bračni drugovi.

Ako vas hakerisanje zanima zato što nemate život, to je takođe uredu, barem nećete imati problema sa koncentracijom. Možda ćete kasnije imati život.

glider

Poeni za stil

Opet, da bi bio haker, moraš da uđeš u hakersko stanje svesti. Postoje neke stvari koje možeš da radiš kada nisi za kompjuterom koje izgleda da pomažu. One nisu zamena za hakerisanje (ništa nije), ali mnogi hakeri ih rade i osećaju da su na neki osnovni način povezane sa suštinom hakerisanja.

Što više ovih stvari već radiš, veće su šanse da si prirodni hakerski materijal. Nije sasvim jasno zašto baš ove stvari, ali one su povezane sa mešanjem leve i desne moždane hemisfere što je izgleda važno; hakeri moraju da budu sposobni da rezonuju logički i da istupe iz očigledne logike problema u datom trenutku.

Radi intenzivno kao što se igraš i igraj se intenzivno kao što radiš. Za istinske hakere, granice između "igranja", "posla", "nauke" i "umetnosti" teže da nestanu, ili da se spoje u kreativnu razigranost visokog nivoa. Takođe, nemoj se zadovoljavati sa uskim rasponom veština. Iako većina hakera naziva sebe programerima, oni su vrlo često više nego kompetentni u nekoliko međusobno povezanih veština kao što su administracija sistema, web dizajn, rešavanje problema sa PC hardverom - ovo su neke od najazastupljenijih. Haker koji je sistem administrator, s druge strane, je vrlo verovatno prilično umešan u skriptualnom programiranju i web dizajnu. Hakeri ne rade stvari do polovine; ako uopšte ulažu u veštinu, teže da postanu veoma dobri u njoj.

Konačno, nekoliko stvari koje ne treba da radiš.

Jedina reputacija koju ćeš steći radeći neke od ovih stvari je da ćeš biti ismejan. Hakeri imaju dugo sećanje i vrlo je verovatno da će ti biti neophodne godine da prevaziđeš i ispraviš rane greške dovoljno da budeš prihvaćen.

Problem sa nickname-ovima zaslužuje malu razradu. Skrivanje identiteta iza nadimka je nezrelo i suludo ponašanje karakteristično za krekere, warez d00dz-ove i druge oblike nižeg života. Hakeri to ne čine; oni su ponosni nа ono što rade i žele da to bude asocirano sa njihovim pravim imenima. Tako da ako imaš nadimak, odbaci ga. To će te u haker kulturi obeležiti kao gubitnika.

glider

Istorijska napomena: Hakerisanje, otvoreni kod (eng. Open Source) i slobodan softver (eng. Free Software)

Kada sam isprva napisao ovo uputstvo na kraju 1996., neki od uslova su bili znatno drugačiji nego što je to danas. Nekoliko reči o ovim promenama će pomoći u raščišćavanju stvari kod ljudi koji su zbunjeni kada je u pitanju veza između open source-a, slobodnog softvera i Linux-a sa hakerskom zajednicom. Ako niste radoznali u vezi ovoga, možete preskočiti pravo na često postavljena pitanja (eng. FAQ) i bibliografiju.

Hakerski etos i zajednica, kao što sam je opisao ovde, dugo prethodi pojavi Linux-a nakon 1990.-te; Postao sam deo nje po prvi put oko 1976.-te, a njeni koreni su se mogli pratiti sve do ranih 1960-ih. Ali pre Linux-a, većina hakerisanja se radila ili na operativnim sistemima u vlasništvu ili na malom broju kvazi-eksperimentalnih sistema kućne proizvodnje poput MIT-ovog ITS-a koji nikad nije bio u upotrebi izvan originalnih akademskih krugova. I ako je bilo nekoliko ranijih pokušaja pre Linux-a da se promeni situacija, njihov uticaj je u najboljem slučaju bio vrlo marginalan i ograničen na zajednice istinskih posvećenih vernika koji su predstavljali male manjine čak i u okviru hakerske zajednice, a kamoli u odnosu na znatno veći svet softvera.

Ono sto se danas zove "open source" datira koliko i hakerska zajednica, ali sve do 1985. je bila bezimena praksa naroda pre nego svestan pokret sa teorijama i manifestoima koji idu uz njega. Ova praistorija se završila kada je 1985. arč-haker Richard Stallman ("RMS") pokušao da mu dodeli ime "Slobodan softver" (eng. Free Software). Ali njegov čin imenovanja je ujedno bio i čin prisvajanja; on je prikačio ideološki teret na "Slobodni softver" naziv, koji većina postojeće hakerske kulture nikad nije prihvatila. Kao rezultat, ime "Slobodan softver" je glasno odbačen od strane značajne manjine hakerske kulture (pogotovo od strane onih koji su povezani sa BSD Unix-om), i korišćen sa ozbiljnim ali tihim rezervacijama od strane većine preostalih (uključujući mene).

Uprkos ovim rezervisanostima, RMS-ov pokušaj da definiše i vodi hakersku zajednicu pod okriljem "Slobodnog softvera" se široko održao do sredine 1990-tih. Ozbiljno je uzdrman samo pojavom Linux-a. Linux je dao open-source razvoju prirodan dom. Mnogi projekti pokrenuti pod uslovima koje sada zovemo open-source su migrirali sa vlasničkih Unix-a na Linux. Zajednica oko Linux-a je eksplozivno rasla, postajući daleko veća i raznovrsnija nego u pre-Linux kulturi. RMS je odlučno pokušao da usmeri svu ovu aktivnost u svoj pokret "Slobodnog softvera", ali je osujećen eksplozijom raznolikosti Linux zajednice i javnim skepticizmom njegovog osnivača, Linus-a Torvalds-a. Torvalds je nastavio da koristi termin "Slobodan softver" zbog manjka alternative, ali je javno odbio RMS-ov ideološki teret. Mnogi mladi hakeri su sledili primer.

U 1996., kada sam prvi put objavio ovo uputstvo za Hakere, haker zajednica se ubrzano reorganizovala oko Linux-a i pregršta drugih open-source operativnih sistema (pre svega onih koji potiču od BSD Unix-a). Sećanje zajednice na činjenicu da je većina nas provela decenije u razvoju softvera zatvorenog koda na operativnim sistemima zatvorenog koda još nije počela da bledi, ali činjenica je već počela da deluje kao deo mrtve prošlosti; hakeri su se, sve u većoj meri, samodefinisali kao hakeri na osnovu njihove povezanosti sa open-source projektima poput Linux-a ili Apache-a.

Međutim, termin "open source" (otvoreni kod) se još uvek nije pojavio; i neće sve do početka 1998. Kad se pojavio, većina hakerske zajednice ga je prihvatila u narednih šest meseci; izuzeci su bili manjine ideološki privržene terminu "Slobodan softver" (eng. Free Software). od 1998., a pogotovo nakon 2003., identifikacija 'hakerisanja' sa 'open-source' (i free softvare) razvojem' je postala ekstremno bliska. Danas postoji malo razloga za pokušaje razlikovanja između ove dve kategorije i malo je verovatno da će se to promeniti u budućnosti.

Međutim, vredi zapamtiti da to nije uvek bio slučaj.

glider

Drugi izvori

Paul Graham je napisao esej pod nazivom Great Hackers, i još jedan, Undergraduation, u kom iznosi dosta mudrosti.

Koristan resurs za mlađe hakere bi bio Things Every Hacker Once Knew.

Takođe sam napisao A Brief History Of Hackerdom.

Napisao sam papir, The Cathedral and the Bazaar, koji opisuje dosta o tome kako Linux i open-source kultura radi. Obratio sam pažnju na ovu temu još direknije u njegovom nastavku Homesteading the Noosphere.

Rick Moen je napisao odličan dokument na temu kako da vodite Linux korisničku grupu (eng. how to run a Linux user group).

Rick Moen i ja smo u saradnji na još jednom dokumentu How To Ask Smart Questions. Ovo će ti pomoći da pronađeš pomoć na način koji će ti povećati šanse da je zaista i dobiješ.

Ako ti trebaju instrukcije u vezi osnova na temu kako lični kompjuteri, Unix i Internet rade, pogledaj The Unix and Internet Fundamentals HOWTO.

Kada objavljuješ softver ili pišeš zakrpe za softver, pokušaj da pratiš uputstvo u Software Release Practice HOWTO.

Ako si uživao u Zen pesmi, možda će ti se svideti i Rootless Root: The Unix Koans of Master Foo.

glider

Često postavljana pitanja

Q: Kako da znam jesam li već haker?

A: Postavi sebi sledeća tri pitanja:

Ako možeš da odgovoriš "da" na sva tri pitanja, ti si već haker. Samo dva nisu dovoljna.

Prvi test je u vezi veština. Verovatno prolaziš ako imaš minimum tehničkih veština opisanih ranije u ovom dokumentu. Sigurno prolaziš ako imaš značajnu količinu koda koja je prihvaćena od strane nekog open-source programerskog projekta.

Drugi test je u vezi stava. Ako ti pet principa hakerskog stanja svesti deluju očigledno, više kao opis načina na koji već živiš pre nego nešto novo, već si na pola puta da ga položiš. To je unutrašnja polovina; druga, spoljašnja polovina, je stepen po kom se identifikuješ sa dugotrajnim projektima hakerske zajednice.

Evo je nekompletna ali indikativna lista nekih od ovih projekata: Da li ti znači da se Linux unapredi i proširi? Da li si strastven u vezi slobode softvera? Neprijateljski nastrojen prema monopolima? Da li deluješ u skladu sa verovanjem da kompjuteri mogu da budu instrumenti osnaživanja koji čine svet bogatijim i humanijim mestom?

Vreme je za reč opreza. Hakerska zajednica ima neke specifične, primarno odbrambene političke interese. Dva od njih brane prava slobode govora i brane se od napada "intelektualne-svojine" koja bi učinila open source ilegalnim. Neki od dugoročnih projekata su organizacije za civilne slobode kao što je Electronic Frontier Foundation koja ima odličnu spoljnu podršku. Pored toga, većina hakera se odnosi sa sumnjom prema pokušajima da se sistematizuje hakerski stav u jasan politički program; svi smo na teži način naučili da ovi pokušaji samo stvaraju podele i smetnje. Ako neko pokuša da te regrutuje da marširaš na svoj glavni grad u ime hakerskog stava, promašio je poentu. Pravi odgovor je "Umukni i pokaži im kod".

Treći test ima element rekurzije u sebi. Posmatrao sam u sekciji pod imenom Šta je haker? da je biti haker delimično stvar pripadanja određenoj podkulturi ili društvenoj mreži sa zajedničkom istorijom, i spoljašnjom i unutrašnjom. U dalekoj prošlosti, hakeri su bili mnogo manje kohezivna i samosvesna grupa nego što su danas. Ali važnost aspekta društvene mreže se uvećao tokom zadnjih trideset godina jer je Internet učinio lakšim da veze između članova hakerske kulture nastanu i da se održe. Jedna značajna promena u ovom veku je da imamo naše majce.

Sociolozi koji izučavaju mreže kao što su one u haker kulturi pod generalnom rubrikom "nevidljivih koledža", primetili su da je jedna karakteristika takvih mreža da imaju takozvane čuvare vrata (eng. gatekeepers) koji poseduju socijalni autoritet da prihvate nove članove u mrežu. Iz razloga što je hakerska kultura "nevidljivi koledž" u neformalnom obliku, uloga čuvara vrata je takođe neformalna. Ali jedna stvar koju svi hakeri razumeju duboko u sebi je da nije svaki haker ujedno i čuvar vrata. Čuvari vrata imaju određeni nivo iskustva, godina i rezultata pre nego što steknu tu titulu. Koliko tačno je teško izmeriti, ali svaki haker to zna kada vidi.

Q: Hoćeš li me naučiti kako da hakerišem?

A: Od prvog objavljivanja ove stranice dobijam nekoliko mejlova nedeljno (često i nekoliko na dan) sa zahtevom "nauči me sve o hakerisanju". Nažalost nemam vremena i energije da to učinim; moji sopstveni hakerski projekti i posao open-source advokata mi oduzimaju 110% mog vremena.

Čak i da imam, hakerisanje je stav i veština koju moraš sam da naučiš. Shvatićeš da pravi hakeri žele da ti pomognu, ali neće poštovati ako budeš molio da te hrane na kašičicu sve što znaju.

Prvo nauči nekoliko stvari. Pokaži da ti je stalo i da pokušavaš, da si sposoban da samostalno učiš. Zatim idi kod hakera sa jasno određenim pitanjima.

Ako šalješ hakeru mejl sa pitanjem, dve stvari znaj unapred. Prvo, mišljenja smo da su ljudi koji su lenji i nemarljivi dok pišu obično vrlo lenji i nemarljivi u svom razmišljanju da bi bili dobri hakeri, zato povedi računa da speluješ kako treba i koristi ispravnu gramatiku i znake interpunkcije, jer u suprotnom su velike šanse da budeš ignorisan. Drugo, ne usuđuj se da tražiš odgovor na ISP nalog koji je drugačiji od onog sa kog si poslao; mišljenja smo da su ljudi koji to rade uglavnom lopovi koji koriste ukradene naloge, a mi nemamo koristi od nagrađivanja ili davanja pomoći lopovima.

Q: Kako da startujem?

A: Najbolji način da startuješ je da odeš na sastanak u LUG (Linux grupu korisnika). Možeš da nađeš takve grupe na LDP General Linux Information Page; verovatno postoji jedna u tvom okruženju, u sklopu fakulteta ili univerziteta. LUG članovi će ti dati Linux i sigurno će ti pomoći da ga instaliraš i startuješ.

Sledeći korak (ili prvi korak ukoliko ne možeš da nađeš LUG u blizini) je da nađeš open-source projekat koji te interesuje. Počni da čitaš kod i da vršiš pregled bagova. Nauči kako da doprineseš, i stvori svoj put unutra.

Jedini način koji postoji je da radiš na poboljšanju svojih sposobnosti. Ako me lično pitaš za savet na temu kako da startuješ, reći ću ti ove iste stvari, jer ne posedujem nikakve magične prečice za tebe. Takođe ću te otpisati na mentalnom nivou kao najverovatnijeg gubitnika - jer ukoliko nisi posedovao dovoljno izdržljivosti da pročitaš ovaj FAQ i inteligencije da shvatiš iz njega da je jedini način da uđeš unutra rad na unapređenju sopstvenih sposobnosti, ti si beznadežan.

Druga zanimljiva mogućnost jeste da posetiš hackerspace. Veliki pokret ljudi koji prave fizičke lokacije - klubove ljudi koji stvaraju- gde se mogu skupljati da zajedno prave hardverske i softverske projekte, ili da rade samostalno u atmosferi koja podstiče. Hackerspace-ovi često skupljaju alate i specijalnu opremu koja bi inače bila skupa ili nemoguća za osobe da ih imaju samostalno. Hackerspace-ove je lako pronaći na Internetu: jedan se možda nalazi u blizini tebe.

Q: Kada bi pojedinac trebao da startuje? Da li je suviše kasno za mene da učim?

A: Bilo koje doba u kom si motivisan da startuješ je dobro doba. Većina ljudi postane zainteresovana između 15. i 20. godine, ali znam za izuzetke u oba pravca.

Q: Koliko dugo će mi trebati da naučim da hakerišem?

A: To zavisi od tvog talenta i koliko uporno radiš na tome. Većina ljudi koja pokuša može da stekne zavidan skup veština za osamnaest meseci do dve godine, uz dobru koncentraciju. Nemoj da misliš da se tu završava; u hakerisanju (kao i u mnogim drugim oblastima) je neophodno oko deset godina da postaneš majstor. I ako si pravi haker, provešćeš ostatak svog života učeći i usavršavajući svoju veštinu.

Q: Da li je Visual Basic dobar jezik za početak?

A: Čim postavljaš ovo pitanje znači da razmišljaš o tome da probaš da hakerišeš pod Microsoft Windows-om. To je loša ideja. Kada sam poredio učenje hakerisanja pod Windows-om sa učenjem plesanja u gipsu, nisam se šalio. Ne idi tamo. Ružno je i ne prestaje biti ružno.

Postoji određeni problem sa Visual Basic-om; ono što je glavno je da nije portabilan. Iako postoje open-source implementacije Visual Basic-a, primenljivi ECMA standardi ne pokrivaju više od malog skupa njegovih programerskih interfejsa. Na Windows-u većina njegovih biblioteka je u vlasništvu Microsoft-a; ako nisi ekstremno pažljiv oko toga koje mogućnosti koristiš, kao što većina početnika nije, završićeš zarobljen na platformama koje Microsoft podržava. Ako startuješ na Unix-u, dostupni su mnogo bolji jezici sa boljim bibliotekama. Python naprimer.

Kao i drugi Basics-i, Visual Basic je loše dizajniran jezik koji će te naučiti lošim navikama programiranja. Ne pitaj me da ti objasnim u detalje; takvo objašnjenje bi napunilo knjigu. Nauči dobro dizajniran jezik umesto toga.

Jedna od loših navika je zavisnost od biblioteka, dodataka i programerskih alata koji su u vlasništvu jedne firme. Generalno, svaki jezik koji nije u potpunosti podržan bar pod Linux-om ili jednim od BSD-ova, i/ili od strane bar tri različita operativna sistema u vlasništvu kompanija, je loš za učenje i hakerisanje.

Q: Da li možeš da mi pomogneš da krekujem sistem ili da me naučiš kako da krekujem?

A: Ne. Svako ko postavi takvo pitanje posle čitanja ovog FAQ-a je previše glup za edukovanje čak i da imam vremena za podučavanje. Svi mejlovi ove vrste koje dobijem će biti ignorisani ili odgovoreni sa ekstremnom nepristojnošću.

Q: Kako da dođem do šifre tuđeg naloga?

A: To je krekovanje. Beži idiote.

Q: Kako da razbijem/pročitam/nadzirem tuđi mejl?

A: To je krekovanje. Gubi se moronu.

Q: Kako da ukradem op privilegije na IRC kanalu?

A: To je krekovanje. Beži kretenu.

Q: Krekovan sam. Da li ćeš mi pomoći da se odbranim od budućih napada?

A: Ne. Svaki put kad mi je neko postavio ovo pitanje, u pitanju je bio neki siromah koji koristi Microsoft Windows. Nemoguće je efikasno obezbediti Windows siteme protiv krekerskih napada; kod i arhitektura jednostavno imaju previše mana što čini pokušaj obezbeđivanja Windows-a isto kao da pokušavaš da izvučeš brod na sito. Jedina pouzdana prevencija počinje sa prelaskom na Linux ili neki drugi operativni sistem koji je dizajniran da bude sposoban za sigurnost.

Q: Imam probleme sa Windows softverom. Možeš li da mi pomogneš?

A: Da. Idi na DOS liniju i ukucaj "format c:". Svi problemi koje imaš će nestati za par minuta.

Q: Gde mogu da pronađem prave hakere da pričam sa njima?

A: Najbolji način je da nađeš Unix ili Linux grupu korisnika u tvom kraju i da ideš na njihove sastanke (linkovi sa listama Linux korisničkih grupa LDP).

(Govorio sam da ćeš teško pronaći prave hakere na IRC-u, ali shvatam da se to menja. Neke prave hakerske zajednice, formirane oko stvari kao što je GIMP ili Perl, sada imaju IRC kanale.)

Q: Možeš li da mi preporučiš neke korisne knjige o temama koje se odnose na hakerisanje?

A: Održavam Linux Reading List HOWTO koji može biti od pomoći. Loginataka isto može biti interesantna.

Za uvod u Python pogledaj tutorial na Python sajtu.

Q: Da li moram da budem dobar u matematici da postanem haker?

A: Ne. Hakerisanje koristi vrlo malo formalne matematike ili aritmetike. Obično ti neće trebati trigonometrija, kalkulus ili analiza (postoje izuzeci u malom broju oblasti aplikacija poput 3-D kompjuterska grafika). Znanje formalne logike Bulove algebre je dobro. Osnove u konačnoj matematici (uključujući teoriju konačnog skupa, kombinatoriku i teoriju grafova) mogu biti od pomoći.

Još važnije: moraš da budeš sposoban da misliš logički i da pratiš lanac ispravnog rezonovanja, kao što to matematičari rade. Dok ti većina matematike neće pomoći, biće ti neophodna disciplina i inteligencija koju zahteva matematika. Ako nisi inteligentan, male su nade za tebe kao hakera; ako nisi disciplinovan, bolje je izgradi.

Dobar način da otkriješ da li imaš ono što je potrebno je da uzmeš knjigu Raymond Smullyan-a "What Is The Name Of This Book?". Smullyan-ova zabavne logičke zagonetke su vrlo u hakerskom duhu. Ako si sposoban da ih rešiš, to je dobar znak; uživanje u njihovom rešavanju je još bolji znak.

Q: Koji bi jezik trebao prvo da naučim?

A: HTML, ako ga ne znaš. Postoji mnogo aljkavih i loših HTML knjiga i zastrašujuće malo dobrih. Ona koju najviše volim je HTML: The Definitive Guide.

HTML nije potpuni programerski jezik. Kada budeš spreman da startuješ sa programiranjem, preporučujem da startuješ sa Python. Mnogo njih preporučuje Perl, ali teži je za učenje i (po mom mišljenju) lošije dizajniran.

C je izuzetno važan, ali je i dosta komplikovaniji od Python-a i Perl-a. Ne pokušavaj da ga učiš kao prvog.

Windows korisnici, ne navikavajte se na Visual Basic. Naučiće vas lošim navikama i nije portabilan sa Windows-a. Izbegavajte.

Q: Koja vrsta hardvera mi treba?

A: U prošlosti su lični kompjuteri bili slabi i imali malo memorije u toj meri da su stavljali veštačka ograničenja na hakerov proces učenja. Ovo je prestalo da bude istina sredinom 1990-tih; svaka mašina od Intel 486DX50 pa na dalje je više nego dovoljna za razvojni rad, X i Internet komunikacije, a najmanji diskovi koje danas možeš da kupiš su dovoljno veliki.

Važna stvar, kada je izbor mašine u pitanju, je da li je hardver kompatibilan sa Linux-om (ili BSD kompatibilan, ukoliko izabereš da kreneš tim putem). Opet, ovo će biti slučaj za skoro sve moderne mašine. Oblast koja je najnezgodnija su modemi i bežične kartice; neke mašine imaju Windows-specifičan hardver koji ne radi na Linux-u.

Postoji FAQ za kompatibilnost hardvera; poslednja verzija je ovde.

Q: Želim da doprinesem. Možeš li da mi pomogneš u izboru problema na kom bih radio?

A: Ne, jer ne poznajem tvoje talente ili interesovanja. Moraš da budeš samomotivisan ili nećeš istrajati. To je razlog zašto biranje tvojih ciljeva od strane drugih ljudi gotovo nikad ne funkcioniše.

Q: Da li moram da mrzim i pričam loše o Microsoft-u?

A: Ne moraš. Ne da Microsoft nije odvratan, već je hakerska kultura postojala mnogo pre Microsofta i postojaće dugo nakon što Microsoft postane istorija. Energija koju potrošiš mrzeći Microsoft bi bila bolje upotrebljena na ljubav prema tvojoj veštini. Piši dobar kod koji će ugroziti Microsoft sasvim dovoljno bez zagađivanja tvoje karme.

Q: Ali zar open-source softver neće staviti programere u poziciju da ne mogu da zarade za život?

A: Deluje malo verovatno jer je open-source softverska industrija napravila dodatne poslove pre nego ih oduzela. Ako je napisani program mrežni ekonomski dobitak u odnosu na nenapisani program, programer će biti plaćen bez obzira da li će program biti open-source nakon što je završen ili ne. Bez obzira koliko slobodnog softvera se napiše, uvek se javlja još potražnje za nove i prilagođene aplikacije. Napisao sam više na ovu temu na Open Source.

Q: Gde mogu da pronađem besplatan Unix?

A: Ako još uvek nemaš instaliran Unix na mašini, na drugim delovima ove stranice su navedeni pokazivači gde da nabaviš načešće korišćeni besplatni Unix. Da bi postao haker, neophodna ti je motivacija, inicijativa i sposobnost da se samoedukuješ. Startuj odmah sada...

glider