Zakaj ta spis?
Kot urednik Žargonske datoteke pogosto dobivam e-pošto navdušenih omrežnih novincev, ki (v bistvu) sprašujejo “kako lahko tudi jaz postanem velik hekerski čarovnik?”. Nenavadno, a videti je, da ni nobenega FAQ ali spletne strani, ki bi se ukvarjala s tem pomembnim vprašanjem, zato je tu moja.
Če ta dokument bereš brez povezave, najnovejšo (angleško) različico najdeš na spletni strani http://www.tuxedo.org/~esr/faqs/hacker-howto.html.
Kaj je heker?
V Žargonski datoteki najdeš kup definicij izraza `heker’, v večini od njih nastopajo dober tehnični občutek, reševanje problemov in užitek v podiranju omejitev. Če pa te konkretno zanima, kako lahko tudi ti postaneš heker, sta pomembni le dve stvari. Obstaja kultura, skupna kultura odličnih programerjev in omrežnih čarovnikov, ki sega desetletja nazaj, v čas prvih miniračunalnikov z deljenjem časa in prvih poskusov z ARPAnetom. Ti ljudje so udomačili izraz `heker’. Hekerji so zgradili internet. Hekerji so iz operacijskega sistema Unix naredili to, kar je. Hekerji upravljajo novičarske skupine Usenet. Hekerji skrbijo, da svetovni splet deluje. Če si del te kulture, če si k njej nekaj prispeval in te drugi iz skupnosti poznajo in imenujejo heker, si heker.
Hekerska miselnost ni omejena na kulturo programskih hekerjev. Nekateri hekersko miselnost uporabljajo na drugih področjih, na primer v elektroniki ali glasbi – v resnici lahko ta način vedenja srečaš na najvišjih ravneh znanosti ali umetnosti. Programski hekerji priznavajo te sorodne duše in jih včasih odkrito imenujejo tudi “hekerji” – nekateri trdijo, da je hekerska narava pravzaprav neodvisna od tega, kaj posameznik heka. Kljub temu se v preostanku tega dokumenta ukvarjam s sposobnostmi in vedenjem programskih hekerjev ter s tradicijo skupne kulture, ki je ustvarila izraz `heker’.
Obstaja še ena skupina, ki o sebi trdi, da jo sestavljajo hekerji, vendar to ne drži. To so ljudje (predvsem najstniki), ki se jim zdi zabavno vdirati v računalnike ali se poigravati s telefonskim omrežjem. Pravi hekerji te ljudi imenujejo `krekerji’ in poudarjajo, da nimajo z njimi nič skupnega. Po mnenju pravih hekerjev so krekerji leni, neodgovorni in niso bleščeči umi, trdijo pa, da te kršenje varnostnih ukrepov ne naredi hekerja, prav tako kot te ne naredi prometnega inženirja to, da znaš ukrasti avto. Žal veliko piscev in novinarjev oba izraza zamenjuje in tudi krekerje opisuje z izrazom `heker’; to pravega hekerja neizrekljivo jezi.
Bistvena razlika: hekerji gradijo, krekerji pa rušijo.
Če želiš postati heker, beri naprej. Če želiš postati kreker, beri novičarsko skupino alt.2600 in se pripravi na pet do deset let zapora, ko se bo izkazalo, da nisi tako pameten, kot si mislil. Toliko o krekerjih.
Hekerska drža
Heker rešuje probleme in ustvarja stvari, verjame v svobodo in vzajemno prostovoljno pomoč. Da bi te hekerji sprejeli, moraš tudi ti pokazati podobno držo. Da bi se lahko vedel v skladu s tem pričakovanjem, moraš v to držo resnično verjeti.
Če misliš, da se vedeš kot hekerji le zato, da bi te sprejeli, si zgrešil bistvo. To, da verjameš v pravilnost tega vedenja, je zelo pomembno zate – pomaga ti pri učenju in te motivira. Kot pri vsaki ustvarjalni umetnosti ni dovolj, da mojstra posnemaš le z razumom, treba ga je tudi s srcem.
Če torej želiš postati heker, ponavljaj naslednje stvari, dokler jih ne verjameš:
1. Svet je poln fascinantnih problemov, ki čakajo na rešitev
Biti heker je zabavno, vendar je to vrsta zabave, ki zahteva trud. Velik del truda je motivacija. Uspešne atlete motivira fizično opojen občutek, da izpopolnjujejo svoje telo in s tem, da iz sebe iztisnejo najboljše, presegajo svoje fizične meje. Podobno lahko postaneš dober heker, če te problemi, ki čakajo na rešitev, navdušujejo, cilj in gonilna sila pa sta razvijanje tvojih sposobnosti in urjenje uma.
Če po naravi ne čutiš tako, se moraš spremeniti, da boš uspešen heker. Sicer boš hitro ugotovil, da tvoja energija, namenjena hekanju, odteka v druge smeri, na primer v pridobivanje seksa, denarja ali družbenega priznanja.
(Poleg tega se moraš naučiti verjeti v svojo sposobnost učenja – verjeti, da se boš, tudi če ne veš vsega, kar je potrebno za rešitev problema, ko začneš razčlenjevati del problema, med tem naučil toliko, kolikor je potrebno za rešitev naslednjega dela – in tako naprej, dokler ne rešiš celotnega problema.)
2. Nikomur nikoli ne bi bilo treba istega problema rešiti dvakrat
Ustvarjalni umi so dragocen in omejen vir. Ne smemo jih zapravljati za ponovno odkrivanje kolesa, ko na rešitev čaka toliko novih zanimivih problemov.
Za hekersko držo je značilno zavedanje, da je čas drugih hekerjev dragocen – zato deljenje informacij čuti skoraj kot moralno dolžnost. S tako deljenimi rešitvami se lahko drugi hekerji ukvarjajo z novimi problemi.
(Nikar ne misli, da moraš v skupno dati ves intelektualni izdelek svoje ustvarjalnosti, čeprav te bodo drugi hekerji bolj spoštovali, čim več boš dal. S hekerskimi vrednotami je združljivo, da prodaš toliko sebe, da plačaš najemnino ter si lahko kupiš hrano in računalnike. Sprejemljivo je, da s hekanjem preživljaš družino, celo da obogatiš, dokler ne pozabiš, da si heker.)
3. Dolgčas in garanje sta zlo
Hekerja (in ustvarjalnih ljudi nasploh) ne bi smeli obsoditi na dolgčas ali ga zaposliti z neumnim, mehaničnim delom; če se to vendarle zgodi, pomeni, da ne dela tega, za kar je usposobljen le on – iskati rešitve za nove probleme. Ta potrata je slaba za vse. Zato dolgčas in garanje nista le neprijetna, temveč tudi slaba za vse.
Če se želiš vesti kot heker, moraš v to verjeti tako zelo, da dolgočasne stvari avtomatiziraš, kolikor je le mogoče, ne le zaradi sebe, temveč tudi zaradi vseh drugih (zlasti drugih hekerjev).
(To pravilo ima eno navidezno izjemo. Hekerji včasih počnejo stvari, ki se zunanjemu opazovalcu lahko zdijo dolgočasne in mehanične, v resnici pa jih potrebujejo, da razvijejo kakšno sposobnost ali pridobijo izkušnje v nečem, česar drugače ne bi mogli spoznati. To pa je hekerjeva lastna izbira – nobenega mislečega človeka se ne sme prisiliti v dolgčas.)
4. Svoboda je dobra stvar
Heker je po naravi protiavtoritaren. Vsak, ki mu deli ukaze, ga ovira pri reševanju trenutnega zanimivega problema – in ker vemo, kako deluje um tistih, ki delijo ukaze, je to prej ali slej neizogibno, izmislili si bodo kakšen neumen razlog. Zato se je treba boriti proti ukazovalni drži, kjer koli jo srečaš, da ne zaduši tebe ali tvojih hekerskih tovarišev.
(To ne pomeni, da je treba kritizirati vsakršno avtoriteto. Otroci potrebujejo usmerjanje, zločinci pa morajo odgovarjati za svoja dejanja. Heker se lahko odloči, da sprejme določeno raven vodenja, če s tem dobi nekaj, kar mu je pomembnejše od časa, zapravljenega za sledenje navodilom. A to je lahko le omejeno, ni govora o osebni podrejenosti, ki jo pričakujejo ljudje z ukazovalno držo.)
Ukazovalnemu človeku sta cenzura in skrivnostnost življenjski element. Ne zaupa ničemur, kar je prostovoljno sodelovanje in deljenje informacij – mara le tako `sodelovanje’, ki ga vodi sam. Če se torej želiš vesti kot heker, moraš razviti nagonski odpor do cenzure, skrivnostnosti in nasilnega prisiljevanja odgovornih odraslih ljudi. Ne le verjeti moraš, da je to prav, temveč moraš po tem tudi ravnati.
5. Drža ne nadomesti kompetence
Da bi postal heker, moraš razviti nekatere od prej naštetih lastnosti. Vendar le s posnemanjem vedenja ne moreš postati heker, prav tako kot ne svetovni prvak v atletiki ali rokovska zvezda. Za to, da postaneš heker, so potrebni inteligenca, vaja, predanost in trdo delo.
Zato se moraš naučiti, da se na vedenje ne smeš zanašati in da je treba spoštovati vsakršno strokovno znanje. Heker ne zapravlja časa s pozerji, ceni pa strokovnost – zlasti strokovnost, povezano s hekanjem, vendar je vredno priznanja tudi strokovno znanje v kateri koli drugi smeri. Če tvoje znanje pokriva področje, na katero se spozna malo ljudi, je to dobro, če si strokovnjak na področju, ki zahteva natančne logične sposobnosti, umsko moč in sposobnost koncentracije, je to najboljše.
Če spoštuješ strokovnost, boš užival v razvijanju svojih sposobnosti – trdo delo in predanost bosta resna igra, ne garanje. To je življenjsko pomembno, če želiš postati heker.
Osnovne sposobnosti za hekanje
Hekerska drža je življenjskega pomena, sposobnosti pa so še pomembnejše. Vedenje ne nadomesti kompetence, obstaja osnovni nabor sposobnosti, ki ga moraš imeti, preden te hekerji štejejo za svojega.
Te sposobnosti se skozi čas počasi spreminjajo, ko se tehnologija razvija in nastajajo nova področja, ki zahtevajo nove sposobnosti, stare pa vzporedno zastarevajo. Med osnovne sposobnosti je na primer nekoč spadalo programiranje v strojni kodi, znanje HTML pa je postalo potrebno šele v zadnjem času. Trenutno k hekerski osnovni izobrazbi spadajo naslednje:
1. Nauči se programirati
To je seveda osnovno znanje vsakega hekerja. Če ne poznaš nobenega programskega jezika, ti predlagam, da začneš s Pythonom. Je dobro zasnovan, dobro dokumentiran in razmeroma prizanesljiv do začetnikov. Čeprav je dober prvi jezik, ni le igrača; python je zelo vsestranski in prilagodljiv jezik, primeren za velike projekte.
Zavedaj se, da ne boš dosegel znanja hekerja, niti preprostega programerja ne, če poznaš le en jezik – naučiti se moraš o programskih problemih razmišljati neodvisno od jezika. Da bi postal pravi heker, moraš priti do točke, ko se nov programski jezik lahko naučiš v nekaj dneh, iz opisov, na podlagi tega, kar že znaš. To pomeni, da se moraš naučiti več med seboj zelo različnih jezikov.
Če se lotiš resnega programiranja, se moraš naučiti jezika C, osnovnega jezika Unixa (C-ja kljub temu ne priporočam kot prvi jezik). Med druge pomembne jezike spadata Perl in LISP. Perla se je vredno naučiti iz praktičnih razlogov; pogosto se uporablja za dinamične spletne strani in sistemsko administracijo, zato se ga je, tudi če nikoli ne boš pisal v Perlu, vsekakor vredno naučiti brati. LISP-a se je vredno naučiti zaradi globokega občutka razsvetljenja, ki ga začutiš, ko ti končno uspe razumeti, za kaj gre; ta izkušnja te bo za preostanek tvojih dni naredila boljšega programerja, tudi če LISP-a ne boš pogosto uporabljal.
Najbolje je, da se naučiš vseh štirih jezikov (Python, C, Perl in LISP). Poleg tega, da so osnovni hekerski jeziki, se programiranja lotevajo zelo različno, iz vsakega lahko pridobiš koristno in dragoceno novo znanje.
Ne morem dati izčrpnega opisa, kako se naučiti programirati – gre za zelo kompleksno znanje. Eno pa ti lahko izdam: knjige in tečaji niso vredni veliko (veliko, verjetno večina hekerjev je samoukov). Smisel ima: (a) brati kodo in pisati kodo.
Naučiti se programirati je enako kot naučiti se pisati v maternem jeziku. Najboljši način je, da prebereš, kar so napisali mojstri, nato nekaj napišeš, nato prebereš še dober kos kode, napišeš malo, prebereš še en kos, napišeš še malo … in to ponavljaš, dokler v svoji kodi ne začneš odkrivati dobrih lastnosti kode svojih vzornikov.
Nekoč je bilo težko najti dobro kodo, vredno branja, ker je bila zelenim hekerskim mladičem na voljo izvorna koda le malo velikih programov. To se je drastično spremenilo; danes so odprtokodna programska oprema, programska orodja in operacijski sistemi (vse to so prav tako napisali hekerji) zlahka dostopni vsakomur. To nas pripelje do naslednje teme …
2. Priskrbi si odprtokodni Unix in se ga nauči uporabljati
Izhajam iz tega, da imaš PC ali do njega nekje dostopaš (današnji otroci imajo tako lahko življenje :-)). Najpomembnejši korak na poti do hekerja: priskrbi si kakšen Linux ali BSD-Unix, namesti ga na svoj računalnik in se ga nauči uporabljati.
Da, na svetu so poleg Unixa tudi drugi operacijski sistemi. Vendar jih distribuirajo v binarni obliki, ergo kode ne moreš brati ali spreminjati. Učiti se hekanja v DOS-u, Windowsih ali MacOS-u je, kot bi se poskušal naučiti plesati v prisilnem jopiču.
Poleg vsega tega ne smemo pozabiti, da je Unix operacijski sistem interneta. Uporabe interneta se sicer lahko naučiš brez znanja Unixa, vsekakor pa ne moreš postati internetni heker. Prav zato je danes hekerska kultura precej odločno osredotočena na Unix. (To ni bilo vedno tako, nekateri stari mački se s tem še danes ne morejo sprijazniti, vendar se je simbioza med Unixom in internetom tako okrepila, da je niti Microsoft ne more zares načeti.)
Torej si namesti Unix – osebno imam rad Linux, vendar je izbira (in da, na istem računalniku je mogoče izmenično uporabljati Linux in DOS / Windows). Nauči se ga uporabljati. Igraj se z njim. Z njim se poveži v internet. Beri izvorno kodo. Spreminjaj izvorno kodo. V Linuxu boš naletel na programska orodja (npr. C, LISP, Python in Perl), o kakršnih v Microsoftovem operacijskem sistemu ne bi upal niti sanjati, dobro se boš zabaval in vsrkal toliko znanja, da se tega niti ne boš zavedal, dokler se kot profesionalni heker ne boš spominjal teh časov.
Informacije o tem, kako in kje dobiti Linux, najdeš na strani Kje dobim Linux?.
Pomoč in povezave v zvezi z BSD Unixom najdeš na naslovu www.bsd.org.
(Opomba: Ne priporočam, da se namestitve Linuxa ali BSD lotiš sam, če si na tem področju popoln začetnik. Če poskušaš z Linuxom, poišči lokalno skupino uporabnikov [na Madžarskem je to LME] in prosi za pomoč ali se obrni na Linux Internet Support Co-Operative. LISC upravlja tudi kanale IRC, kjer lahko dobiš [angleško] pomoč.)
3. Nauči se uporabljati svetovni splet (World Wide Web) in pisati HTML
Večina stvari, ki so jih ustvarili hekerji, neopazno deluje v ozadju, pomaga pri delu v tovarnah, pisarnah in na univerzah, na videz pa ne vpliva na življenje nehekerjev. Splet je edina velika izjema, ogromna bleščeča hekerska igrača, za katero celo politiki priznavajo, da spreminja svet. Zato (in zaradi kopice drugih tehtnih razlogov) se moraš naučiti delati s spletom.
To ne pomeni le, da se moraš naučiti uporabljati spletni brskalnik (to zna vsak), temveč tudi, da moraš obvladati HTML, jezik spleta. Če ne znaš programirati, lahko med učenjem HTML pridobiš nekatere dobre navade, ki ti bodo koristile pri poznejšem učenju. Torej si naredi domačo stran.
To, da imaš domačo stran, niti približno ne pomeni, da si heker. Splet je poln domačih strani. Večina jih je nesmiselnih odpadkov brez vsebine – pisanih odpadkov, bi lahko rekel, a vseeno smeti. (več o tem preberi na strani HTML-pekel).
Da bi bila stran vredna branja, mora imeti vsebino – biti mora zanimiva in/ali koristna za druge hekerje. To nas pripelje do naslednje teme …
Položaj v hekerski kulturi in skupnosti
Kot pri večini kultur brez denarja in gospodarstva je odločilni element hekerstva ugled. Poskušaš reševati zanimive probleme, vendar lahko, kako zanimivi so ti problemi v resnici in kako dobra je v resnici tvoja rešitev, presodijo le tisti, ki so prav tako strokovnjaki na tem področju.
Podobno se, ko igraš po hekerskih pravilih, naučiš, da dobre točke dobiš na podlagi tega, kako drugi cenijo tvoje strokovno znanje (zato sem prej napisal, da nisi pravi heker, dokler te tako ne imenujejo drugi). To dejstvo zamegljuje podoba, ki hekanje prikazuje kot osamljeno delo, in v hekerskih krogih razširjeno prepričanje, da ponos ali mnenje drugih ne smeta biti del motivacije.
Natančneje, hekerstvo je tisto, kar antropologi imenujejo kultura daru. V takšni družbi ugleda ne pridobiš s tem, da zatiraš druge, niti s tem, da si lep ali imaš stvari, po katerih drugi hrepenijo, temveč s tem, da daješ. Drugim podarjaš svoj čas, ustvarjalnost in sadove svojega znanja.
V osnovi lahko za priznanje hekerjev narediš pet stvari:
1. Piši odprtokodno programsko opremo
Prvi (najpomembnejši in najbolj sprejet) način, da se uveljaviš, je, da napišeš program, ki se hekerjem zdi koristen ali zabaven, in omogočiš dostop do njegove izvorne kode, da ga lahko uporablja vsa skupnost.
(Ta dela smo imenovali ``free software’’, ker pa ni bilo vsem jasno, ali ``free’’ pomeni prost ali brezplačen, mnogi raje uporabljamo izraz ``open-source’’, torej odprtokodna programska oprema.)
Najbolj priznani polbogovi hekerske kulture so ljudje, ki so napisali velike, uporabne programe, po katerih je bilo veliko povpraševanja, in jih nato dali skupnosti, da jih lahko vsi prosto uporabljajo.
2. Pomagaj preizkušati in razhroščevati odprtokodno programsko opremo
Zelo koristno je tudi delo tistih, ki preizkušajo in popravljajo odprtokodno programsko opremo. V tem nepopolnem svetu je neizogibno, da precejšen del časa, namenjenega razvoju programske opreme, porabimo za iskanje in odpravljanje napak. Zato se bo vsak razumen avtor, ki vzdržuje odprto kodo, strinjal z mano, ko napišem, da je dober beta-preizkuševalec (ki zna jasno opisati simptome, dobro locirati težavo, prenese napake v na hitro sestavljenih izdajah in je pripravljen uporabiti nekaj preprostih diagnostičnih orodij) vreden svoje teže v diamantih. Že en sam takšen beta-preizkuševalec lahko odloči, ali je iskanje napak obupna, izčrpavajoča nočna mora ali le koristna nadloga.
Če si novinec, poišči program v razvoju, ki te zanima, in poskusi biti dober beta-preizkuševalec. Od tu gre vse samo od sebe, po preizkušanju lahko pomagaš pri iskanju napak, nato pri razvoju. Tako se lahko veliko naučiš in si pridobiš dobre točke pri ljudeh, ki ti bodo lahko pozneje pomagali.
3. Objavljaj koristne informacije
Še ena dobra stvar, ki jo lahko narediš, je izbiranje koristnih in zanimivih informacij ter njihovo objavljanje na spletni strani ali v dokumentih FAQ (seznamih pogosto zastavljenih vprašanj).
Vzdrževalci glavnih strokovnih FAQ uživajo skoraj tolikšno priznanje kot programerji, ki pišejo odprtokodno programsko opremo.
4. Pomagaj vzdrževati infrastrukturo
Hekersko kulturo (in s tem tudi razvoj interneta) vzdržujejo in poganjajo prostovoljci. Veliko potrebnega, a manj vidnega in privlačnega dela je treba opraviti, da stroj deluje – upravljati je treba poštne sezname, moderirati novičarske skupine, vzdrževati ogromne arhive programske opreme, pisati RFC-je in druge tehnične standarde.
Ljudje, ki te naloge dobro opravljajo, uživajo veliko spoštovanje, ker vsi vedo, da je njihovo delo strašansko zamudno in ni tako zabavno kot kodiranje. Tisti, ki opravljajo takšno delo, so predani.
5. Služi hekerski skupnosti
Nazadnje lahko služiš in populariziraš samo hekersko kulturo (na primer tako, da napišeš podroben uvod o tem, kako postati heker :-)). Tega ne moreš narediti, dokler nisi nekaj časa udeleženec hekerske skupnosti in nisi postal znan po kateri od prejšnjih štirih točk.
Hekerska skupnost nima izrecnih voditeljev, ima pa junake, ``starešine’’, zgodovinarje in govornike. Če si dovolj dolgo v bojni vrsti, lahko postaneš eden od njih. Vendar ne pozabi: hekerji ne zaupajo ``starešinam’’ s preveliko samozavestjo, zato je nevarno to stopnjo doseči na očiten način. Ne prizadevaj si za to, raje se postavi tako, da ti bo padlo v naročje, nato pa bodi skromen in skrbno neguj svoje odnose.
Povezava med hekerjem in štreberjem
V nasprotju s splošnim prepričanjem ti ni treba biti “štreber”, da bi postal heker. Kljub temu ti to lahko pomaga – v resnici je veliko hekerjev “štreberjev”. Če si družbeno izključen, ti to pomaga, da se osredotočiš na res pomembne stvari, kot sta razmišljanje in hekanje.
Zato veliko hekerjev sprejme oznako ``štreber’’, ponosno pa uporabljajo celo grobejši izraz ``geek’’ – tako se osamosvojijo od konvencionalnih družbenih pričakovanj. Več o tem preberi na strani Geek.
Če ti uspe hekanju posvetiti dovolj pozornosti, da postaneš dober heker, poleg tega pa živeti normalno življenje, je to dobro. To je za novinca danes veliko lažja naloga, kot je bila v mojem času, v sedemdesetih letih; danes je družba veliko strpnejša do tehno-obsedencev. Še več, vedno več ljudi spozna, da so hekerji pogosto odličen material za ljubimce in može.
Če te hekanje privlači, ker nimaš življenja, je tudi to OK – vsaj nič te ne odvrača. Morda se pozneje razvije tudi to.
Točke za slog
Še enkrat, da bi postal heker, moraš razmišljati kot heker. Nekaj stvari lahko za to narediš, tudi ko ne sediš pred računalnikom. Te ne nadomestijo hekanja (tega ne more nadomestiti nič), vendar se z njimi ukvarja veliko hekerjev, zato so povezane tudi z bistvom hekanja.
- Beri znanstveno fantastiko. Hodi v klube in na srečanja znanstvene fantastike. (Tam lahko srečaš hekerje in proto-hekerje.)
- Preučuj zen in/ali se uči borilnih veščin. (Tudi meditacija je v marsičem podobna.)
- Nauči se poslušati glasbo z analitičnim ušesom. Nauči se ceniti individualne glasbene sloge. Nauči se igrati kakšen inštrument ali peti.
- Spoprijatelji se z besednimi igrami.
- Nauči se dobro in pravilno pisati v maternem jeziku. (Presenetljivo veliko hekerjev, med njimi najboljši, kar jih poznam, je dobrih piscev.)
Čim več teh stvari se ti zdi naravnih, tem boljši material za hekerja si. Zakaj prav te stvari, ni povsem jasno, verjetno pa obstaja povezava med njimi in vrsto sposobnosti desne in leve možganske poloble, ki so za hekerja nepogrešljive (heker mora biti sposoben logično razmišljati, znati pa mora tudi stopiti iz navidezne logike danega problema).
Nazadnje nekaj stvari, ki se jim je treba izogibati:
- Ne uporabljaj neumnega, bahavega uporabniškega imena ali vzdevka.
- Ne zapletaj se v nepotrebne prepire (flame vojne) na Usenetu (niti drugje).
- Ne imenuj se `cyberpunk’ in ne zapravljaj časa z nekom, ki se tako imenuje.
- Ne pošiljaj e-pošte, polne pravopisnih in slovničnih napak.
Če počneš take stvari, si boš kvečjemu pridobil slab sloves – zapomnili si bodo le, kakšen bedak si. Hekerji imajo dober spomin – lahko traja leta, preden pozabijo tvoje začetniško spotikanje in te sprejmejo.
K problemu vzdevkov bi se rad posebej vrnil. Skrivanje prave identitete za vzdevki je otročje in neumno ter značilno za krekerje, warez d00dz in druge nižje življenjske oblike. Heker tega ne počne; ponosen je na to, kar počne in kar je dosegel, zato ima rad, da poznajo tudi njegovo pravo ime. Če torej uporabljaš tak vzdevek, ga opusti, ker te med hekerji le zaznamuje kot poraženca.
Drugi viri
Peter Seebach vzdržuje odličen hekerski FAQ za menedžerje in šefe, ki ne vedo, kako ravnati s hekerji med zaposlenimi. Če Petrova stran ne bi bila dosegljiva, poskusi kopijo strani najti prek Excita.
Loginataka ima nekaj povedati o usposobljenosti in drži hekerja Unix.
Napisal sem esej z naslovom Kratka zgodovina hekerstva.
Napisal sem esej z naslovom Katedrala in bazar, ki podrobno analizira delovanje skupnosti, zgrajenih okoli Linuxa in odprte kode. Še bolj neposredno sem to temo obravnaval v nadaljevanju Homesteading the Noosphere.
Pogosto zastavljena vprašanja
V: Me boš naučil hekati?
O: Odkar sem prvič objavil to stran, me vsak teden (pogosto vsak dan) več ljudi prosi, naj jih “naučim vse o hekanju”. Žal za to nimam ne časa ne energije; moji lastni hekerski projekti zavzemajo 110 % mojega časa.
Tudi če bi imel možnost učiti hekanje, tega ne bi mogel, ker je to drža in sposobnost, ki si jo moraš pridobiti sam. Videl boš, da ti bodo pravi hekerji z veseljem pomagali, vendar te ne bodo spoštovali in priznavali, če ti bodo morali vse prežvečiti.
Najprej se nauči nekaj stvari. Pokaži, da se trudiš, da se znaš učiti samostojno. Šele nato nadleguj hekerje s specifičnimi vprašanji.
V: Kje naj torej začnem?
O: Verjetno je najboljši način za spoznavanje hekanja, da greš na srečanje skupine uporabnikov Linuxa. Seznam teh skupin najdeš na spletni strani LDP General Linux Information Page; verjetno je kakšna v tvoji bližini, morda na višji šoli ali univerzi. Od članov skupine uporabnikov Linuxa preprosto dobiš Linux in zagotovo ti bodo pomagali tudi pri namestitvi.
V: Kdaj moram začeti? Nisem že prestar za to?
O: Ne glede na to, koliko si star, je pomembna motivacija. Običajno hekanje vzbudi zanimanje starostne skupine med 15 in 20 let, vendar poznam izjeme v obe smeri.
V: Koliko časa traja, da se naučim hekati?
O: To je odvisno od tega, kako nadarjen si in kako trdo delaš. Običajno lahko v 18 mesecih ali 2 letih pridobiš spoštovanja vredne sposobnosti, če si spreten. Vendar ne misli, da je to vse; če postaneš pravi heker, se nikoli ne nehaš učiti, preostanek življenja boš izpopolnjeval svoje sposobnosti.
V: Mi boš pomagal vdreti v sistem ali me naučil vdirati?
O: Ne. Kdor po branju tega FAQ postavi takšno vprašanje, je preneumen, da bi ga kar koli učil, tudi če bi imel čas. Vsaka e-pošta na to temo konča v košu ali pa pošiljatelj v slabšem primeru lahko pričakuje grob odgovor.
V: Vdrli so k meni. Mi boš pomagal preprečiti prihodnje napade?
O: Ne. To vprašanje vedno postavljajo tisti, ki uporabljajo Windows. Sistemov Windows ni mogoče učinkovito narediti varnih in odpornih proti vdorom; v kodi in arhitekturi programske opreme je preveč lukenj, to je približno tako, kot bi s kozarcem zajemali vodo iz potapljajoče se ladje. Edina zanesljiva rešitev je, da preideš na Linux ali kakšen drug res varen operacijski sistem.
V: Kje lahko srečam prave hekerje in se z njimi pogovarjam?
O: Najboljša rešitev je, da poiščeš skupino uporabnikov Linuxa ali Unixa in hodiš na njihova srečanja (povezave najdeš na spletni strani LDP pri Metalabu).
(Nekoč bi tu napisal, da na IRC ne moreš srečati pravega hekerja, vendar se zdi, da se to spreminja. Zadnje čase imajo prave hekerske skupine, kot so tiste okoli GIMP in Perla, svoje kanale IRC.)
V: Mi lahko priporočiš koristne knjige o hekanju?
O: Vzdržujem Linux Reading List HOWTO, ta ti je lahko v pomoč. Zanimiva je lahko tudi Loginataka.
V: Česa se moram naučiti najprej?
O: HTML, če ga še ne poznaš. V prometu je veliko slabih knjig o HTML, ki se osredotočajo na bleščeče, nebistvene stvari, dobrih pa obupno malo. Moja osebna priljubljena je O’Reillyjeva knjiga HTML: The Definitive Guide.
HTML pa ni programski jezik. Če si pripravljen začeti se učiti programirati, po mojem mnenju izberi Python. Mnogi priporočajo Perl, ki je res bolj razširjen kot Python, vendar se ga je težje naučiti in (po mojem mnenju) ni tako dobro zasnovan. Na spletu najdeš zbirko povezav za začetnike v Pythonu.
C je res pomemben, vendar hkrati veliko težji od Pythona ali Perla. Ne poskušaj se ga naučiti kot prvega.
Uporabniki Windows, ne obtičite pri Visual Basicu! Od njega boste pobrali slabe programerske navade, poleg tega ni prenosljiv in je popolnoma vezan na platformo Windows. Izogibajte se mu.
V: Ali moram sovražiti Microsoft?
O: Ne, ni ti treba. Ne zato, ker si tega ne bi zaslužil, temveč ker so hekerske skupnosti obstajale pred Microsoftom in bodo obstajale tudi takrat, ko bo Microsoft že davno zgodovina. Namesto sovraštva do Microsofta raje ljubi lastno moč. Piši dobro kodo, s tem boš dosegel več kot z blatenjem Microsofta, pa še ugleda ne boš spravil v nevarnost.
V: Ali odprtokodni razvoj programske opreme ne ogroža preživetja programerjev?
O: To je malo verjetno – odprtokodna programska industrija prej ustvarja nova delovna mesta. Če to, da je program napisan, prinaša čisti dobiček, bodo programerja plačali, ne glede na to, ali bo program po dokončanju odprt. Prav tako je vseeno, koliko “odprte” programske opreme napišejo programerji, videti je, da povpraševanje po novih in prilagojenih aplikacijah narašča. Več o tej temi sem napisal na straneh Open Source.
V: Kako naj se lotim? Kje dobim prosti Unix?
O: Višje na tej strani najdeš kazalce na najbolj razširjene proste Unixe. Da postaneš heker, potrebuješ motivacijo, podjetnost in sposobnost samostojnega učenja. Začni zdaj …
Eric S. Raymond <esr@snark.thyrsus.com>
Madžarski prevod:
Kovács Emese <emese@goliat.eik.bme.hu>