Alkuperäinen englanninkielinen versio löytyy osoitteesta:
Copyright © 2001 Eric S. Raymond
Käännös: Jan Mattila <jan mattila at helsinki.fi>
Viimeksi päivitetty | 17.12.2004 23:56 GMT+2 | Last updated
Käännöksen tekijänoikeudet © 2003-2004 Jan Mattila
Sisällysluettelo
Jargon File -sivuston toimittajana ja muutaman muun samankaltaisen tunnetun jutun kirjoittajana, saan innokkailta verkkoaloittelijoilta paljon sähköpostipyyntöjä, joissa kysytään (käytännössä) "miten minusta voi tulla welhomainen hakkeri?". Vuonna 1996 huomasin, ettei tätä elintärkeää asiaa käsitteleviä UKKeja tai nettijuttuja näyttänyt olevan, joten tein tämän omani. Monet hakkerit pitävät sitä nykyään määrittävänä, joten ehkä se on sitä. Silti, en väitä olevani ainoa auktoriteetti tässä aiheessa; jos et pidä lukemastasi, kirjoita oma juttu.
Jos luet jotain tämän jutun offline-versiota, viimeisin versio löytyy osoitteesta: http://catb.org/~esr/faqs/hacker-howto.html.
Huom. Jutun lopussa on luettelo Usein kysytyistä kysymyksistä. Ole hyvä ja lue ne—pariin kertaan—ennen kuin lähetät kysymyksiä tästä jutusta.
Tästä jutusta on käännöksiä seuraaville kielille: espanja, euroopanportugali, heprea, hollanti, japani, katalaani, persia (farsi), puola, ruotsi, saksa, tanska, turkki, unkari, ja yksinkertaistettu kiina. Huomaa, että tämä juttu muuttuu ajoittain, joten käännökset saattavat olla vaihtelevissa määrin vanhentuneita.
Tätä juttu koristava kuvaa, jossa on viisi pistettä yhdeksässä ruudussa, kutsutaan nimellä liuku (glider). Se on yksinkertainen kuvio, jolla on joitain yllättäviä ominaisuuksia matemaattisessa simulaatiossa nimeltä Life, joka on kiehtonut hakkereita vuosia. Mielestäni se on hyvä visuaalinen tunnus sille, minkälaisia hakkerit ovat—abstrakteja, ensisilmäyksellä mystisentuntuisia, mutta portteja kokonaiseen maailmaan, jolla on oma logiikkansa. Lue lisää liuku-tunnuksesta.
Jargon File sisältää joukon määritelmiä termille hakkeri, joista suurin osa käsittää teknistä osaamista ja riemua ongelmien ratkaisussa ja rajoitusten ylittämisessä. Toisaalta, jos haluaisi tietää miten tulla hakkeriksi, vain kaksi ovat oikeasti relevantteja.
On olemassa yhteisö, jaettu kulttuuri, erinomaisia ohjelmoijia ja verkkowelhoja, joka johtaa juureensa vuosikymmenien taakse ensimmäisiin aikaa jakaviin pienoistietokoneisiin ja aikaisimpiin ARPAnetin kokeiluihin. Tämän kulttuurin jäsenet kehittivät termin hakkeri. Hakkerit rakensivat Internetin. Hakkerit tekivät Unix-käyttöjärjestelmästä sellaisen kuin se tänään on. Hakkerit pyörittävät Usenettiä. Hakkerit pitävät netin pystyssä. Jos olet osa tätä kulttuuria, jos olet edistänyt sitä ja jos toiset sinut tuntevat ihmiset kutsuvat sinua hakkeriksi, olet hakkeri.
Hakkeriajattelutapa ei ole rajoitettu tähän ohjelmistohakkerikulttuuriin. On olemassa ihmisiä, jotka soveltavat hakkeriasennetta muihin asioihin, kuten elektroniikkaan tai musiikkiin—itse asiassa sitä voi löytää minkä tahansa tieteen tai taiteen ylimmiltä tasoilta. Ohjelmistohakkerit tunnistavat nämä sukulaissielut ja saattavat kutsua myös heitä "hakkereiksi"—jotkut väittävät, että hakkeriluonne on oikeastaan riippumaton aiheesta, jonka parissa hakkeri työskentelee. Mutta loppujutussa keskitymme ohjelmistohakkereiden taitoihin ja asenteisiin, sekä sen jaetun kulttuurin perinteisiin, joka kehitti termin hakkeri.
On olemassa myös toinen ryhmä ihmisiä, jotka kovaan ääneen kutsuvat itseään hakkereiksi, mutta eivät sitä ole. Nämä ihmiset (lähinnä keskenkasvuisia miehiä) saavat kiksinsä murtautumalla tietokoneisiin ja phriikkaamalla puhelinjärjestelmiä. Oikeat hakkerit kutsuvat näitä ihmisiä krakkereiksi eivätkä halua olla missään tekemisissä heidän kanssaan. Oikeat hakkerit pitävät krakkereita lähinnä laiskoina, vastuuttomina ja ei kovin älykkäinä, ja huomauttavat, että suojausten murtamisella tulee yhtä paljon hakkeriksi kuin auton starttaamisella johdoista tulee autoalan insinööriksi. Ikävä kyllä monet journalistit ja kirjailijat on huijattu käyttämään sanaa hakkeri kuvaamaan krakkereita. Tämä ärsyttää oikeita hakkereita äärettömästi.
Periaatteellinen ero on tämä: hakkerit rakentavat asioita, krakkerit rikkovat niitä.
Jos haluat tulla hakkeriksi, jatka lukemista. Jos haluat tulla krakkeriksi, painu lukemaan alt.2600-uutisryhmää ja valmistaudu viettämään viidestä kymmeneen kiven sisällä huomattuasi, ettet ollutkaan niin näppärä kuin luulit. Ja sen enempää ei puhuta krakkereista.
Hakkerit ratkaisevat ongelmia ja rakentavat asioita ja uskovat vapauteen ja vapaaehtoiseen molemminpuoliseen auttamiseen. Jotta voisi tulla hyväksytyksi hakkeriksi, täytyy esittää omaavansa tämän asenteen. Ja jotta voisi esittää omaavansa kyseisen asenteen, täytyy siihen todella uskoa.
Mutta jos ajattelee kehittävänsä hakkeriasenteita vain saadakseen hyväksyntään kulttuurissa, missaa pointin. Sellaiseksi ihmiseksi tuleminen, joka uskoo näihin asioihin, on tärkeää itselle—auttamaan itseä oppimaan ja pysymään motivoituneena. Kuten muissakin luovissa taiteissa, tehokkain tapa tulla mestariksi on imitoida mestarin ajattelutapaa—ei vain älyllä vaan myös tunteella.
Tai kuten seuraava moderni Zen-runo sanoo:
Seurataksesi polkua: katso mestariin, seuraa mestaria, kulje mestarin kanssa, näe mestarin läpi, ole mestari.
Joten jos haluaa tulla hakkeriksi, tulee toistaa seuraavia asioita, kunnes uskoo niihin:
Hakkerina oleminen on kivaa, mutta sellaista kivaa, joka vaatii paljon työtä. Työhön tarvitaan motivaatiota. Menestyvät urheilijat saavat motivaatiota oman kehon suoritusten antamasta tietynlaisesta fyysisestä nautinnosta, ja kehon puskemisesta toimimaan yli sen aiempien fyysisten rajoitusten. Samalla tavalla ollakseen hakkeri täytyy saada tyydytystä ongelmien ratkaisemisesta, taitojen kehittämisestä ja älyn harjoittamisesta.
Jos ei ole luonnostaan tämän kaltainen ihminen, täytyy sellaiseksi muuttua voidakseen tulla hakkeriksi. Muuten huomaa hakkerointienergiansa valuvan häiriötekijöihin, kuten seksiin, rahaan ja sosiaalisen hyväksyntään.
(Samalla täytyy kehittää eräänlainen usko omaan oppimiskykyynsä—usko, että vaikkei tietäisi kaikkea ongelman ratkaisuun tarvittavaa, jos keskittyy pieneen osaan ja oppii siitä, voi oppia tarpeeksi ratkaistaakseen seuraavan osan—ja niin edelleen, kunnes on valmis.)
Luovat aivot ovat arvokas rajoitettu resurssi. Niitä ei tulisi tuhlata pyörän uudelleenkeksimiseen, kun on olemassa niin paljon uusia kiehtovia ratkaisemistaan odottavia onglemia.
Käyttäytyäkseen kuin hakkeri, täytyy uskoa, että toisten hakkereiden ajatteluaika on arvokasta—jopa niin arvokasta, että on lähes moraalinen velvoite jakaa tietoa, ratkaista ongelmia ja jakaa ratkaisut, jotta toiset hakkerit voivat ratkaista uusia ongelmia vanhojen ikuisen uudelleenratkomisen sijaan.
(Kuitenkaan ei tarvitse ajatella olevansa velvoitettu antamaan kaikkea luovaa tuotostaan pois, vaikka näin toimivat hakkerit saavatkin eniten arvostusta toisilta hakkereilta. Hakkeriarvojen kanssa on yhdenmukaista, että myy sen verran mitä tarvitsee vuokraan, ruokaan ja tietokoneisiin. On suvaittavaa käyttää hakkerointitaitojaan perheen ylläpitämiseen tai jopa rikastumiseen, kunhan ei samalla unohda uskollisuuttaan taidettaan ja kanssahakkereitaan kohtaan.)
Hakkereiden (ja luovien ihmisten yleisesti) ei pitäisi tylsistyä tai joutua raatamaan typerää mekaanista työtä, sillä tämän tapahtuessa he eivät tee sitä mitä vain he voisivat—ratkaise uusia ongelmia. Tämä hukkaaminen vahingoittaa kaikkia. Siksi tylsistyminen ja raataminen eivät ole ainoastaan epämiellyttäviä vaan itse asiassa pahoja.
Käyttäytyäkseen kuin hakkeri täytyy uskoa tähän niin paljon, että haluaa automatisoida pois kaikki tylsät osat niin pitkälle kuin mahdollista, ei ainoastaan itsensä vaan kaikkien muidenkin (erityisesti toisten hakkereiden) vuoksi.
(Tähän on ilmeisesti olemassa poikkeus. Hakkerit tekevät joskus eräänlaisena mieltä puhdistavana harjoituksena asioita, jotka saattavat katsojasta vaikuttaa mekaanisilta tai tylsiltä, saadakseen taitoja tai jotain tiettyä kokemusta, jota ei muulla tavalla voi saada. Mutta tämä on omavalintaista—ajattelevan ihmisen ei pitäisi koskaan olla pakotettu tilanteisiin, jotka tympivät heitä.)
Hakkerit ovat luontaisesti auktoriteetinvastaisia. Kuka tahansa, joka voi käskeä hakkeria, voi estää häntä ratkaisemasta jotain kiehtovaa ongelmaa—ja yleensä tapa, jolla auktoriteetin mieli toimii, löytää jonkin hävettävän typerän syyn tälle kiellolle. Siispä autoritäärista asennetta vastaan kuuluu taistella aina kun sitä kohtaa, ettei se tukahduttaisi itseä tai muita hakkereita.
(Tämä ei ole sama kuin kaiken auktoriteetin vastustaminen. Lapsia kuuluu ohjata ja rikolliset pidättää. Hakkeri saattaa suostua hyväksymään jonkinlaista auktoriteettia saadakseen jotain, jota haluaa enemmän kuin aikaa, jonka viettää noudattaen käskyjä. Mutta tämä on rajallinen, tietoinen valinta; sellaista henkilökohtaista antautumista, jota auktoriteetit haluavat ei ole tarjolla.)
Auktoriteetit elävät sensuurilla ja salailulla. Ja ne epäilevät vapaaehtoista yhteistyötä ja tiedonjakoa—ne pitävät vain "yhteistyöstä", jota itse hallisevat. Joten käyttäytyäkseen kuin hakkeri, täytyy kehittää vaistomainen vihamielisyys sensuuria, salailua ja voimankäyttöä vastaan, kun niitä käytetään vastuuntuntoisten aikuisten pakottamiseen. Tämän uskon eteen on oltava valmis myös toimimaan.
Tullakseen hakkeriksi täytyy kehittää joitain näistä asenteista. Mutta pelkän asenteen nappaaminen ei tee hakkeria yhtään sen enempää kuin mestariurheilijaa tai rokkitähteä. Hakkeriksi tuleminen vaatii älykkyyttä, harjoittelua, omistautumista ja kovaa työtä.
Siksi täytyy oppia epäilemään asennetta ja arvostamaan kaikentyyppistä osaamista. Hakkerit eivät anna patsastelijoiden tuhlata aikaansa, mutta palvovat osaamista—varsinkin hakkerointiosaamista, mutta mikä tahansa osaaminen on hyvää. Osaaminen vaativissa taidoissa, joita harvat pystyvät hallitsemaan on erityisen hyvää ja osaaminen vaativissa taidoissa, joihin liittyy tarkkuutta, oveluutta, ja keskittymistä, on parasta.
Jos pitää osaamista suuressa arvossa, nauttii sen kehittämisestä itsessään—kovasta työstä ja omistautumisesta tulee tietynlaista intensiivistä leikkiä raatamisen sijasta. Tämä asenne on elintärkeää hakkeriksi tulemisessa.
Hakkeriasenne on elintärkeää, mutta taidot ovat vielä tärkeämpiä. Asenne ei korvaa osaamista ja tietyt perustaidot täytyy hallita ennen kuin voi edes haaveilla hakkeriksi kutsumisesta.
Perustaitoihin kuuluvat asiat muuttuvat hitaasti ajan myötä, sitä mukaan kun teknologia kehittää uusia taitoja ja tekee aiemmista vanhentuneita. Taitoihin kuului ennen esimerkiksi ohjelmointi konekielellä, eikä niihin kuulunut HTML:ää kuin vasta hijattain. Mutta juuri nyt perustaitoihin kuuluvat varsin selkeästi seuraavat asiat:
Tämä on tietenkin olennaisin hakkerointitaito. Jos ei osaa mitään ohjelmointikieltä, suosittelen että aloittaa Pythonilla. Se on siististi suunniteltu, hyvin dokumentoitu ja suhteellisen kiltti aloittelijoille. Eikä se ole vain lelu siitä huolimatta, että se on hyvä ensimmäinen kieli; se on erittäin tehokas ja joustava ja se sopii hyvin isoihin projekteihin. Olen kirjoittanut yksityiskohtaisemman arvion Pythonista. Hyviä oppaita on saatavilla Pythonin nettisivuilla.
Java on myös hyvä kieli ohjelmoinnin opetteluun. Se on vaikeampaa kuin Python, mutta tuottaa nopeampaa koodia kuin Python. Mielestäni se on erinomainen toinen kieli. Ikävä kyllä Sunin referenssitoteutus on edelleen suljettu. Ongelma ei niinkään ole Java-kielessä, sillä avoimen lähdekoodin Java-tulkkeja on vapaasti saatavilla; varsinainen ongelma ovat luokkakirjastot, jotka kulkevat kielen mukana. Avoimen lähdekoodin luokkakirjastot laahaavat Sunin versioiden perässä. Joten, jos aikoo opetella Javaa, se pitäisi tehdä jollain avoimen lähdekoodin toteutuksella sen sijaan, että tulee riippuvaiseksi Sunin suljetusta koodista.
On kuitenkin muistettava, ettei hakkerin tasoa tai edes ohjelmoijan tasoa saavuteta osaamalla yhtä tai kahta kieltä—ohjelmointiongelmista täytyy oppia ajattelemaan yleisellä, mistään kielestä riippumattomalla, tasolla. Tullakseen oikeaksi hakkeriksi täytyy päästä siihen pisteeseen, että voi oppia uuden kielen muutamassa päivässä vertaamalla manuaalin tietoja omiin aiempiin tietoihinsa. Tämä tarkoittaa, että pitäisi oppia useita hyvin erilaisia kieliä.
Jos ryhtyy vakavasti ohjelmoimaan, täytyy opetella C:tä, Unixin ydinkieltä. C++ liittyy hyvin läheisesti C:hen; jos osaa toisen, toisen oppiminen ei ole vaikeaa. Kumpikaan kieli ei kuitenkaan ole hyvä opeteltavaksi ensimmäisenä kielenä. Ja itse asiassa mitä enemmän voi välttää ohjelmointia C:llä sitä tuottavampi on.
C on erittäin tehokasta ja erittäin hyvin koneen resursseja säästävää. Ikävä kyllä C:n tehokkuus perustuu sille, että suuri osa alhaisen tason resurssien (kuten muistin) hallinnasta tehdään käsin. Tällainen alhaisen tason koodi on monimutkaista ja bugialtista, ja sen debuggaaminen vie hurjia määriä aikaa. Kun tämän päivän koneet ovat niinkin tehokkaita kuin ne ovat, kyseessä on huono vaihtokauppa—on järkevämpää käyttää kieltä, joka käyttää koneen aikaa vähemmän tehokkaasti, mutta tekijän aikaa paljon tehokkaammin. Siksi Python.
Muita hakkereille erityisen tärkeitä kieliä ovat Perl ja LISP. Perliä on hyvä oppia käytännöllisistä syistä; se on niin laajasti käytetty dynaamisissa nettisivuissa ja järjestelmänvalvonnassa, että vaikkei koskaan kirjoittaisi Perliä, sitä pitäisi oppia lukemaan. Monet käyttävät Perliä samoihin asioihin, joihin ehdotan käyttämään Pythonia: välttääkseen C-ohjelmointia töissä, jotka eivät vaadi C:n tehokkuutta. Näiden ihmisten koodia täytyy pystyä ymmärtämään.
LISP:iä kannattaa opetella eri syystä—syvällinen valaistumisen kokemus, jonka saa kun vihdoin tajuaa sen. Tämän kokemuksen kautta tulee loppuelämäkseen paremmaksi ohjelmoijaksi, vaikkei koskaan varsinaisesti käyttäisi LISP:iä paljon. (LISP:n alkeisiin saa kosketusta melko helposti kirjoittamalla ja muokkamalla editointimoodeja Emacs tekstieditorille.)
Itse asiassa on parasta opetella kaikki viisi kieltä (Python, Java, C/C++, Perl ja LISP). Sen lisäksi että ne ovat tärkeimmät hakkerikielet, ne edustavat erittäin erilaisia lähestymistapoja ohjelmointii ja kukin niistä opettaa arvokkaalla tavalla.
En voi tässä antaa täydellisiä ohjeita ohjelmoinnin oppimiseen—se on monimutkainen taito. Voin kuitenkin kertoa, että kirjoilla ja kursseilla sitä ei opita (monet, ehkä useimmat parhaista hakkereista ovat itseoppineita). Kielen ominaisuuksia—tiedonjyväsiä—voi oppia kirjoista, mutta ajattelutapa, joka muuntaa tuon tiedon eläväksi taidoksi, voi oppia vain harjoittelemalla ja opettelemalla. Parhaat tulokset syntyvät (a) lukemalla koodia ja (b) kirjoittamalla koodia.
Ohjelmoinnin opettelu on kuin opettelisi kirjoittamaan hyvin jotakin luonnollista kieltä. Paras keino on lukea jotakin jonkin kyseisen lajin mestarin kirjoittamaa, kirjoittaa jotain itse, lukea paljon lisää, kirjoittaa vähän itse, lukea paljon lisää, kirjoittaa vähän lisää ... ja toistaa tätä kunnes oma kirjoitus alkaa tuottamaan samanlaista tehokkuuttaa ja taloudellisuutta, mitä malleissaan näkee.
Hyvän luettavan koodin löytäminen oli ennen vaikeaa, sillä vasta-alkaville hakkereille oli lähdekoodina saatavissa vain muutamia suuria ohjelmia, joita lukea ja näprätä. Tähä on tullut dramaattinen muutos; avoimen lähdekoodin ohjelmistoja, ohjelmointityökaluja ja käyttöjärjestelmiä (kaikki hakkereiden rakentamia) on nyt laajasti saatavilla. Mistä päästäänkin kätevästi seuraavaan aiheeseemme...
Oletetaan, että on tietokone käytettävissä tai sellaiselle on pääsy (nykyajan lapsilla on niin helppoa :-)). Aloittelijan tärkein yksittäinen askel kohti hakkerin taitojen omaksumista on Linuxin tai jonkin BSD-Unixin hankkiminen, asennus omalle koneelle ja käyttäminen.
Kyllä, maailmassa on muitakin käyttöjärjestelmiä kuin Unix. Mutta ne jaetaan binäärimuodossa—niiden koodia ei voi lukea eikä muokata. Hakkeroinnin opettelu Windowsilla tai MacOS:llä tai millä tahansa muulla suljetun lähdekoodin järjestelmällä on kuin yrittäisi opetella tanssimaan kokovartalokipsissä.
OS X:llä hakkeroinnin opettelu on mahdollista, mutta vain osa järjestelmästä on avointa—vastaan tulee todennäköisesti paljon muureja ja täytyy olla varovainen, ettei omaksu pahaa tapaa olla riippuvainen Applen omistamasta koodista. Jos keskittyy Unixiin konepellin alla, voi oppia jotain hyödyllistä.
Unix on Internetin käyttöjärjestelmä. Vaikka voi oppia käyttämään nettiä osaamatta käyttä Unixia, Internet-hakkeriksi ei voi tulla ymmärtämättä Unixia. Tästä syystä hakkerikulttuuri on nykyään varsin vahvasti Unix-keskittynyttä. (Näin ei aina ollut ja eräät vanhat hakkerit eivät vieläkään ole siitä kovin iloisia, mutta Unixin ja Internetin symbioosista on tullut niin vahva, että edes Microsoftin muskelit eivät näytä pystyvän saamaan sitä merkittävästi lommolle.)
Siispä, nappaa jokin Unix—itse pidän Linuxista, mutta muitakin vaihtoehtoja on (ja kyllä, Linuxia ja Windowsia voi ajaa samalla koneella). Opettele käyttämään sitä. Käytä sitä. Näprää. Puhu Internetille sen kanssa. Lue sen koodia. Muokkaa sen koodia. Saat paremmat ohjelmointityökalut (mukaanlukien C, LISP, Python ja Perl) kuin mistä mikään Microsoftin käyttöjärjestelmä voi edes unelmoida, pääset pitämään hauskaa ja saat omaksuttua enemmän tietoa kuin huomaatkaan oppivasi ennen kuin muistelet sitä mestarihakkerina.
Lisää tietoa Unixin opetteluun löytyy täältä: The Loginataka. Voi olla hyvä käydä katsomassa myös The Art Of Unix Programming.
Linuxin hankkimista varten kannattaa käydä Linux Online! -saitilla. Sieltä voi ladata Linuxin tai (parempi idea) löytää paikallisen Linux-käyttäjäryhmän auttamaan asennuksessa. Uuden käyttäjän näkökulmasta kaikki Linux-jakeluversiot ovat pitkälti yhtäläisiä.
BSD-Unixin resursseja ja apua löytyy täältä: www.bsd.org.
Olen kirjoittanut alustuksen The Unix and Internet Fundamentals HOWTO.
(Huom: En oikeastaan suosittele aloittelijoiden asentavan Linuxia tai BSD:tä yksin. Linuxin kanssa kannattaa etsiä paikallinen Linux-käyttäjäryhmä ja pyytää apua.)
Useimmat asiat, joita hakkerikulttuuri on rakentanut, tekevät työnsä piilossa, auttamalla pyörittämään tehtaita ja toimistoja ja yliopistoja ilman näkyvää vaikutusta ei-hakkereiden elämään. Netti on se suuri poikkeus, valtava kiiltävä hakkerilelu, jonka jopa poliitikot myöntävät muuttavan maailmaa. Jo pelkästään tästä syystä (ja monesta muusta hyvästä myös), täytyy oppia käyttämään nettiä.
Tämä ei tarkoita vain selaimen käyttämisen oppimista (kuka tahansa pystyy siihen), mutta HTML:n, netin kielen, kirjoittamisen oppimista. Jos ei osaa ohjelmoida, HTML:n kirjoittaminen opettaa jotain ajattelutapoja, jotka helpottavat oppimista. Joten tee kotisivut. Yritä käyttää XHTML:ää, se on puhtaampi kieli kuin klassinen HTML. (Tästä on hyviä aloittelijan oppaita netissä; tässä on eräs.)
Mutta pelkästään omien kotisivujen olemassaolo ei lähimainkaan riitä tekemään hakkeria. Netti on täynnä kotisivuja. Suurin osa niistä on älytöntä, nollasisältöistä möhnää—varsin upeannäköistä möhnää, huomauttaisin, mutta möhnää kuitenkin (lisää tietoa aiheesta löytyy täältä: The HTML Hell Page).
Ollakseen minkään arvoiset, sivuilla tulee olla sisältöä—niiiden täytyy olla kiinnostavat ja/tai hyödylliset muille hakkereille. Ja tästä päästäänkin seuraavaan aiheeseen...
Amerikkalaisena ja englantia äidinkielenäni puhuvana olen aiemmin ollut haluton ehdottamaan tätä, ettei sitä tulkittaisi eräänlaisena kulttuuri-imperialismina. Mutta useat toisia kieliä äidinkielinään puhuvat ovat vedonneet minua huomauttamaan että englanti on hakkerikulttuurin ja Internetin työkieli ja että sitä täytyy osata voidakseen toimia hakkeriyhteisössä.
Joskus vuoden 1991 vaiheilla sain tietää, että monet hakkerit, joille englanti on vieras kieli, käyttävät sitä teknisissä keskusteluissa vaikka heillä olisi sama äidinkieli; minulle kerrottiin, että siihen aikana englannissa oli rikkain tekninen sanasto mihinkään muuhun kieleen verrattuna ja sen vuoksi se on vain paras työkalu hommaa varten. Samoista syistä käännökset teknisistä kirjoista, jotka on kirjoitettu englanniksi, ovat usein epätyydyttäviä (silloin kun niitä edes tehdään).
Suomalainen Linus Torvaldskin kommentoi koodiaan englanniksi (hänelle ei ilmeisesti koskaan tullut mieleenkään tehdä jotenkin muuten). Hänen sujuvuutensa englannissa on ollut merkittävä tekijä hänen onnistumisessa rekrytoida maailmanlaajuinen yhteisö kehittäjiä Linuxille. Tämä on esimerkki, jota sopii seurata.
Kuten useimmat kulttuurit ilman monetaarista taloutta, hakkeruus pyörii maineella. Yritetään ratkaista mielenkiintoisia ongelmia, mutta se, kuinka mielenkiintoisia ne ovat ja onko saavutettu ratkaisu todella hyvä, on jotain mitä vain tekijän kanssa teknisesti vertaiset tai tekijään verrattuna ylivertaiset voivat yleensä määrittää.
Niinpä, kun pelaa hakkeripeliä, oppii ensisijaisesti pitämään lukua siitä, mitä muut hakkerit ajattelevat omista taidoista (tästä syystä ei voi olla hakkeri elleivät toiset hakkerit johdonmukaisesti siksi kutsu). Tätä tosiseikkaa hämärtävät kuva hakkeroinnista yksin tehtävänä työnä ja hakkerikultuurin tabu (nykyään hiljalleen mureneva, mutta edelleen voimakkaan), joka kieltää yksilön motivoinnin lähteen olevan millään tavalla oma ego tai ulkoinen hyväksyntä.
Erityisesti hakkeruus on, mitä antropologit kutsuvat lahjakulttuuriksi. Siinä asemaa ja mainetta ei saada hallitsemalla toisia ihmisiä, olemalla kauniita, omistamalla asioita, joita toiset ihmiset haluavat, vaan antamalla asioita pois. Erityisesti antamalla pois omaa aikaansa, omaa luovuuttaan, ja oman taitonsa tuotoksia.
On olemassa periaatteessa viittä laatua asioita, joita tekemällä voi saada kunnioitusta hakkereilta:
Ensimmäinen (keskeisin ja perinteisin) on kirjoittamalla ohjelmia, joita toiset hakkerit pitävät hauskoina tai hyödyllisinä ja antamalla ohjelmien lähdekoodin koko hakkerikulttuurin käyttöön.
(Kutsumme näitä töitä "vapaaksi ohjelmistoksi", mutta tämä on hämmentänyt monia ihmisiä, jotka eivät ole varmoja siitä mitä vapaa tarkoittaa. Useimmat meistä, ainakin viiden suhde yhteen nettisisällön analyysin perustella, käyttävät mieluummin termiä open-source (avoimen lähdekoodin ohjelmisto tai avoin ohjelmisto).
Hakkeruuden arvostetuimmat puolijumalat ovat ihmisiä, jotka ovat kirjoittaneet suuria paljoon pystyviä ohjelmia, joille on ollut laaja kysyntä ja antaneet ne jakeluun, niin että nyt kaikki käyttävät niitä.
Myös he palvelevat, jotka debuggaavat avoimen lähdekoodin ohjelmistoa. Tässä epätäydellisessä maailmassa tulemme väistämättömästi viettämään suurimman osan ohjelmistojemme kehitysajasta debuggausvaiheessa. Sen takia ajatteleva avoimen lähdekoodin kirjoittaja tietää, että hyvät beta-testaajat (jotka osaavat kuvailla oireita selkeästi, paikallistaa ongelmia hyvin, sietää bugeja nopeissa julkaisuissa, ja jotka ovat valmiita ajamaan muutamia yksinkertaisia diagnostisia rutiineja) ovat arvokkaampia kuin oman painonsa rubiineissa. Jopa yksi näistä saattaa erottaa debuggausvaiheen, joka on pitkällinen, uuvuttava painajainen debuggausvaiheesta, joka on vain terveellinen riesa.
Jos on aloittelija, on hyvä yrittää löytää itseään kinnostava kehitteillä oleva ohjelma ja ryhtyä hyväksi beta-testaajaksi. Ohjelmien debuggaamisessa auttamisesta on luonnollinen jatkumo ohjelmien muokkaamisessa auttamiseen. Tällä tavalla oppii paljon ja luo hyvää karmaa sellaisten ihmisten kanssa, jotka auttavat takaisin myöhemmin.
Toinen hyvä asia on kerätä ja suodattaa hyödyllistä ja mielenkiintoista tietoa nettisivuille tai juttuihin, kuten usein kysyttyjen kysymysten (UKK, FAQ) luettelot, ja antaa nämä yleiseen käyttöön.
Suurten teknisten UKKien ylläpitäjät saavat lähes yhtä paljon kunnioitusta kuin avoimen lähdekoodin kirjoittajat.
Hakkerikulttuuri (ja Internetin tekninen kehitys samalla) on vapaaehtoisten pyörittämää. On tehtävä paljon tarpeellista, mutta epähohdokasta työtä, jotta kaikki toimisi—postituslistojen ylläpitoa, uutisryhmien moderointia, suurten ohjelmistoarkistosaittien ylläpitoa, RFC:iden ja muiden teknisten standardien kehittämistä.
Ihmiset, jotka tekevät tällaista työtä hyvin, saavat paljon kunnioitusta, sillä kaikki tietävät, että nämä työt ovat valtavia ajan kaatopaikkoja, eivätkä yhtä hauskaa kuin koodin kanssa leikkiminen. Niiden tekeminen osoittaa omistautuneisuutta.
Lopuksi voi palvella ja levittää itse kulttuuria (esimerkiksi kirjoittamalla osuvan alustuksen hakkeriksi tulemisesta :-)). Tätä ei voi tehdä ennen kuin on ollut kuvioissa jonkin aikaa ja tullut tunnetuksi jostain edellisistä neljästä asiasta.
Hakkerikulttuurilla ei ole johtajia, tarkalleen, mutta sillä on kulttuurisankareita ja heimonvanhimpia ja historioitsijoita ja puhemiehiä. Kun on ollut juoksuhaudoissa tarpeeksi pitkään voi kasvaa yhdeksi näistä. Varoitus: hakkerit epäilevät peittelemätöntä egoa heimonvanhimmissa, joten näkyvästi tällaiseen asemaan pyrkiminen on vaarallista. Mieluummin kuin pyrkimällä siihen, on tavallaan asennoiduttava siten, että se putoaa syliin ja sitten olla vaatimaton ja kiitollinen saamastaan asemasta.
Yleisen uskomuksen vastaisesti ei tarvitse olla nörtti ollakseen hakkeri. Se kuitenkin auttaa, ja monet hakkerit ovat itse asiassa nörttejä. Sosiaalisena hylkiönä oleminen auttaa keskittymään todella tärkeisiin asioihin, kuten ajatteluun ja hakkerointiin.
Tästä syystä johtuen monet hakkerit ovat omaksuneet leiman nörtti ja käyttävät jopa karkeampaa termiä geek kunniamerkkinä—se on heidän tapansa julistaa omaa itsenäisyyttään normaaleista sosiaalisista odotuksista. The Geek Page -sivuilla on kattavaa keskustelua aiheesta.
Jos pystyy keskittymään hakkerointiin niin paljon, että on siinä hyvä, ja silti onnistuu elämään suhteellisen normaalia elämää, se kyllä sopii. Tämä on paljon helpompaa nykyään kuin silloin kuin itse olin aloittelija 1970-luvulla; valtakulttuuri on nykyään paljon ystävällisempi teknonörteille. On olemassa jopa kasvavia määriä ihmisiä, jotka ovat huomanneet hakkereiden olevan usein korkeatasoista rakastaja ja puolisomateriaalia.
Jos on viehättynyt hakkeroinnista, koska ei ole omaa elämää, sekin on OK—ainakaan ei ole ongelmia keskittymisessä. Ehkä sen elämän saa sitten myöhemmin.
Jälleen, tullakseen hakkeriksi, täytyy ajatella hakkerin tapaan. On olemassa muutamia asioita joita voi tehdä, kun ei ole tietokoneella, jotka näyttävät auttavan. Ne eivät korvaa hakkerointia (mikään ei korvaa sitä), mutta monet hakkerit harrastavat niitä ja kokevat, että ne yhtyvät jollain perimmäisellä tasolla hakkeroinnin ytimen kanssa.
Opettele kirjoittamaan omaa äidinkieltäsi hyvin. Vaikka yleisen stereotypian mukaan ohjelmoijat eivät osaa kirjoittaa, yllättävän suuri määrä hakkereista (mukaan lukien kaikki taitavimmat, jotka tunnen) ovat erittäin osaavia kirjoittajia.
Lue scifiä. Käy scifi-konventeissa (hyvä tapa tavata hakkereita ja proto-hakkereita).
Harjoittele itsepuolustusta. Itsepuolustukseen vaadittava henkinen kuri näyttää olevan tärkeillä tavoilla yhtäläinen hakkeruuten vaadittavan kurin kanssa. Suosituimmat lajit hakkereiden keskuudessa ovat ehdottomasti aasialaiset aseettomat lajit, kuten Tae Kwon Do, Karate, Wing Chun, Aikido tai Ju-Jutsu. Länsimaisella miekkailulla ja aasialaisilla miekkailulajeilla on myös näkyvät kannattajansa. Pistooliammunnan suosio on noussut 1990-luvun lopulta lähtien paikoissa, joissa ammunta on sallittua. Hakkerimaisimmat itsepuolustuslajit ovat sellaisia, jotka korostavat henkistä kuria, rauhallista tietoisuutta ja kontrollia pikemmin kuin voimaa, atleettisuutta tai fyysistä kovuutta.
Opiskele varsinaista meditaatio-oppia. Monivuotinen suosikki hakkereiden keskuudessa on Zen (olennaista on, että on mahdollista hyötyä Zenistä hankkimatta uutta uskontoa tai jättämättä nykyistään). Muutkin tyylisuunnat voivat toimia, mutta tulee varoa ettei valitse sellaista, joka vaatii uskomaan älyttömiin juttuihin.
Kehitä analyyttinen korva musiikille. Opettele arvostamaan erityisiä musiikkilajeja. Opettele soittamaan jotain instrumenttia hyvin tai opettele laulamaan.
Kehitä arvostustasi sanaleikkejä kohtaan.
Mitä useampia näistä jo tekee, sitä todennäköisimmin on luontaista hakkerimateriaalia. Miksi juuri edellä mainitut asiat ovat tärkeitä, ei ole täysin selvää, mutta ne liittyvät vasemman ja oikean aivopuoliskon taitoihin, jotka näyttävät olevan tärkeitä; hakkereiden on pystyttävä sekä päättelemään loogisesti että astumaan ongelman näennäisen logiikan ulkopuolelle lyhyellä varoitusajalla.
Tee työtä yhtä intensiivisesti kuin leikit ja leiki yhtä intensiivisesti kuin teet työtä. Todellisille hakkereille rajat "leikin", "työn", "tieteen" ja "taiteen" välilllä katoavat kokonaan tai yhtyvät korkean tason luovaksi leikkisyydeksi. Lisäksi älä tyydy suppeaan valikoimaan taitoja. Vaikka useimmat hakkerit kuvaavat itseään ohjelmoijiksi, he ovat hyvin todennäköisesti enemmän kuin päteviä monissa asiaan liittyvissä taidoissa—järjestelmänvalvonta, nettisuunnittelu ja PC-raudan ongelmien selvittäminen ovat yleisiä. Hakkeri joka on järjestelmänvalvoja taas on todennäköisesti varsin taitava skriptaaja ja nettisuunnittelija. Hakkerit eivät tee asioita puolittain; jos he investoivat johonkin taitoon ollenkaan, heistä tulee siinä yleensä erittäin hyviä.
Lopuksi muutama asia joita ei tule tehdä.
älä käytä hölmöä mahtailevaa käyttäjätunnusta
älä ryhdy fleimisotiin Usenetissa (tai missään muuallakaan)
älä kutsu itseäsi "kyberpunkiksi", äläkä tuhlaa aikaasi itseään sellaisiksi kutsuviin
älä julkaise tai meilaa kirjoitusta, joka on kieliopillisesti huonoa ja täynnä kirjoitusvirheitä
Yllä mainittuja asioita tekemällä saa vain nuijan maineen. Hakkereilla on pitkä muisti—voi kestää vuosia päästä aiempien mokien yli ja tulla hyväksytyksi.
Käyttäjätunnusten ongelma ansaitsee hieman korostusta. Oman henkilöllisyyden peittäminen käyttäjätunnuksen taakse on lapsellista ja hölmöä käytöstä joka luonteenomaista krakkereille, warez d00dzeille, ja muille alemmille elämänmuodoille. Hakkerit eivät tee tätä; he ovat ylpeitä tekemisistään ja haluavat tulla yhdistetyksi oikeisiin nimiinsä. Joten jos käytät jotain tunnusta, jätä se. Hakkerikulttuurissa käyttö vain merkitsee sinut luuseriksi.
Paul Graham on kirjoittanut esseen nimeltä Great Hackers, jossa hän esittää suurta viisautta.
Peter Seebach ylläpitää erinomaista Hacker FAQ -saittia johtajille, jotka eivät osaa toimia hakkereiden kanssa.
On olemassa juttu nimeltä How To Be A Programmer, joka on erinomainen lisä tähän juttuun. Siinä on arvokasta tietoa ei ainoastaan kooodaamisesta ja taidoista, vaan myös ohjelmointitiimissä toimimisesta.
Olen kirjoittanut myös artikkelin A Brief History Of Hackerdom.
Olen kirjoittanut kirjan The Cathedral and the Bazaar, joka selittää monia asioita siitä, miten Linux ja avoimen lähdekoodin kulttuurit toimivat. Olen keskittynyt tähän aiheeseen vielä suoremmin edellä mainittua seuranneessa artikkelissa, Homesteading the Noosphere.
Rick Moen on kirjoittanut erinomaisen jutun how to run a Linux user group.
Rick Moen ja minä olemme yhdessä kirjoittaneet jutun How To Ask Questions The Smart Way. Tämä auttaa pyytämään apua tavalla, jolla on todennäköisempää että sitä myös saa.
Jos tarvitsee apua tietokoneiden, Unixin ja Internetin perustoiminnasta, kannattaa lukea The Unix and Internet Fundamentals HOWTO.
Kun julkaisee ohjelmistoa tai kirjoittaa korjauksia ohjelmistoihin, tulisi pyrkiä seuraamaan Software Release Practice HOWTO -sivuilla olevia ohjeita.
Jos piti Zen-runosta saattaa pitää myös jutusta Rootless Root: The Unix Koans of Master Foo.
Opetatko minua hakkeroimaan?
Siitä lähtien kun julkaisin tämän sivun, olen saanut viikottain (monesti jopa päivittäin) useita pyyntöjä ihmisiltä, jotka haluaisivat, että "opettaisin heitä hakkeroimaan". Ikäväkseni minulla ei ole aikaa tai energiaa tällaiseen; omat hakkerointiprojektini ja matkusteluni avoimen lähdekoodin puolestapuhujana vievät 110% ajastani.
Vaikka minulla olisi aikaa, hakkerointi on asenne ja taito, joka täytyy periaatteessa oppia itse. Sitä huomaa, että vaikka oikeat hakkerit haluavat auttaa, he eivät arvosta sitä, että heitä pyydetään syöttämään valmiiksi pureskeltuna kaikki mitä he tietävät.
Opettele muutama asia ensiksi. Näytä, että yrität ja että olet kykeneväinen omatoimiseen oppimiseen. Kysy sitten tapaamiltasi hakkereilta tarkempia kysymyksiä.
Jos kysyt hakkerilta neuvoa meilillä, tässä on muutama neuvo etukäteen. Ensinnäkin olemme huomanneet että ihmiset, jotka ovat laiskoja tai huolimattomia kirjoituksessaan ovat yleensä liian laiskoja tai huolimattomia ajattelutavoissaan ollakseen hyviä hakkereita—siispä muista oikeinkirjoitus, noudata kielioppia ja käytä välimerkkejä, muuten sinua ei todennäköisesti huomata. Toiseksi älä kehtaa pyytää vastausta toisen ISP:n tilille, kuin sen mistä olet lähettänyt; olemme huomanneet, että ihmiset jotka tekevät näin käyttävät yleensä varastettuja käyttäjätilejä eikä meillä ole mitään intressiä palkita tai avustaa varkaudessa.
Kuinka sitten pääsen alkuun?
Paras keino päästä alkuun on varmaankin mennä LUG-kokoukseen (Linux-käyttäjäryhmän kokoukseen). Tällaisia ryhmiä löytyy LDP General Linux Information Page -sivuilta; sellainen löytyy todennäköisesti jostain läheltä, mahdollisesti jonkin yliopiston yhteydestä. LUG-jäsenet antavat sinulle varmaankin jonkin Linuxin pyytäessäsi ja auttavat varmasti sellaisen asentamisessa ja alkuun pääsemisessä.
Milloin täytyy aloittaa? Onko jo liian myöhäistä oppia?
Mikä tahansa ikä, jolloin on motivoitunut, on hyvä ikä aloittaa. Useimmat ihmiset näyttävät kiinnostuvan 15 ja 20 ikävuoden välillä, mutta tiedän poikkeuksia molempiin suuntiin.
Kuinka kauan kestää oppia hakkeroimaan?
Se riippuu siitä, kuinka lahjakas on ja kuinka paljon panostaa. Useimmat oppivat arvostettavat taidot puolentoista vuoden tai kahden vuoden aikana, jos he keskittyvät. Ei sovi kuitenkaan kuvitella, että se loppuu siihen; todellinen hakkeri viettä lopun elämänsä opetellen ja hioen taitojaan.
Ovatko Visual Basic tai C# hyviä aloituskieliä?
Jos kysyt tätä kysymystä ajattelet lähes varmasti yrittää hakkerointia Microsoft Windowsissa. Tämä on huono idea jo itsessään. Kun vertasin hakkeroinnin opettelua Windowsissa tanssin opetteluun kokovartalokipsissä, en laskenut leikkiä. Älä mene sinne. Se on on rumaa, eikä se lakkaa koskaa olemasta rumaa.
Visual Basicissa ja C#:ssa on erityisiä ongelmia, lähinnä se, etteivät ne ole portattavissa. Vaikka näistä kielistä on avoimen lähdekoodin prototyyppiversioita käytettävät ECMA standardit eivät kata kuin pienen osan niiden ohjelmointirajapinnoista. Windowsilla suurin osa niiden kirjastotuesta on yhden valmistajan (Microsoftin) omistamaa; jos ei ole erittäin varovainen sen suhteen, mitä ominaisuuksia käyttää—eli paljon pätevämpi kuin kukaan aloittelija voi osata olla—jumiutuu niihin alustoihin, joita Microsoft päättää tukea. Jos aloittaa Unixilla, tarjolla on paljon parempia kieliä, joissa on paremmat kirjastot.
Visual Basic on erityisen kamalaa. Kuten muutkin Basicit se on huonosti suunniteltu kieli, joka opettaa huonoja ohjelmointitapoja. Ei, älä pyydä minua kuvailemaan niitä yksityiskohtaisesti; se veisi kokonaisen kirjan. Opettele mieluummin hyvin suunniteltu kieli.
Eräs näistä pahoista tavoista on tulla riippuvaiseksi yhden valmistajan kirjastoista, vitkuttimista ja kehitystyökaluista. Yleisesti mikä tahansa kieli, joka ei ole täysin tuettu ainakin Linuxissa ja yhdessä BSD:istä ja/tai ainakin kolmen eri valmistajan käyttöjärjestelmässä, on huono kieli opetella hakkerointia.
Voitko auttaa minua murtautumaan johonkin järjestelmään tai opettaa minua krakkaamaan?
En. Kenen tahansa, joka voi kysyä tällaisen kysymyksen luettuaan tämän UKKin täytyy olla liian typerä opetettavaksi, vaikka minulla olisi aikaa sellaista tehdä. Kaikki tämänkaltaiset meilatut pyynnöt jätetään huomiotta tai niihin vastataan äärimmäisellä töykeydellä.
Kuinka voin saada salasanan jonkun toisen tilille?
Tämä on krakkaamista. Häivy, idiootti.
Kuinka voin murtaa/lukea/seurata jonkun toisen sähköpostia?
Tämä on krakkaamista. Katoa ääliö.
Miten voin varastaa kanavaoperaattorin oikeudet IRC:ssä?
Tämä on krakkaamista. Haihdu, kehari.
Koneelleni on murtauduttu. Autatko välttymään myöhemmiltä hyökkäyksiltä?
En. Joka kerta kun minulta on kysytty tätä tähän mennessä kysyjänä on ollut joku surullinen nappula jolla on Microsoft Windows. Windows-järjestelmiä ei ole mahdollista tehokkaasti turvata; koodissa ja arkkitehtuurissa on yksinkertaisesti liian paljon vikoja, mikä tekee Windowsin turvaamisen yrittämisestä yhtä tuottavaa kuin veneen äyskäröinti haavilla. Ainoa luotettava ehkäisy alkaa vaihtamalla Linuxiin tai johonkin muuhun käyttöjärjestelmään, joka on suunniteltu ainakin kykenemään turvallisuuteen.
Minulla on ongelmia Windows-ohjelmistojen kanssa. Voitko auttaa?
Jep. Käynnistä DOS-prompti ja kirjoita format c:. Kaikki
ongelmasi haihtuvat muutamassa minuutissa.
Mistä voin löytää oikeita hakkereita, joiden kanssa puhua?
Paras keino on etsiä paikallinen Unix- tai Linux-käyttäjäryhmä ja mennä heidän kokouksiin (voit löytää linkkejä useille käyttäjäryhmälistoille LDP-saitilta.)
(Minulla oli tapana sanoa tässä, ettei mitään oikeita hakkereita löytyisi IRC:istä, mutta olen käsittänyt tämän muuttuneen. Ilmeisesti joillakin oikeilla hakkeriyhteisöillä, jotka liittyvät asioihin kuten GIMP ja Perl, on nykyään IRC-kanavat.)
Voitko suositella hyödyllisiä kirjoja hakkerointiin liittyvistä aiheista?
Ylläpidän Linux Reading List HOWTO -sivuja jotka saattavat olla avuksi. Loginataka saattaa myös olla mielenkiintoinen.
Jos haluaa johdannon Pythoniin, kannattaa lukea Python-saitin johdantomateriaali.
Täytyykö osata matikkaa voidakseen tulla hyväksi hakkeriksi?
Ei. Hakkeroinnissa käytetään hyvin vähän formaalista matematiikkaa tai aritmetiikkaa. Erityisesti ei yleensä tarvita trigonometriaa, kalkyyliä tai analyysiä (on olemassa poikkeuksia muutamissa erityisissä sovellusalueissa kuten tietokonegrafiikassa). Jonkinasteinen formaalin logiikan ja Boolen algebran tunteminen on hyväksi. Myös äärellisen matematiikan perusteet (mukaanlukien äärellisten joukkojen teorian, kombinatoriikan ja verkkoteorian) voivat olla avuksi.
Paljon tärkeämmin: täytyy pystyä ajattelemaan loogisesti ja seuraamaan täsmällisiä päättelyketjuja, kuten matemaatikot. Vaikka suurin osa matematiikan sisällöstä ei olisi avuksi, täytyy omata kuri ja älykkyys käsitellä matematiikkaa. Jos puuttuu tätä älykkyyttä, mahdollisuudet hakkerina ovat vähäiset; jos puuttuu kuria, sitä on parasta hankkia.
Mielestäni hyvä tapa selvittää löytyvätkö tarvittavat ominaisuudet on noutaa kopio Raymon Smullyanin kirjasta What Is The Name Of This Book?. Smullyanin leikkisät loogiset arvoitukset ovat erittäin hakkerihengen mukaisia. Näiden ratkaisemiseen pystyminen on hyvä merkki; ratkaisemisesta nauttiminen vielä parempi.
Mikä kieli pitäisi opetella ensimmäisenä?
XHTML (viimeisin HTML-murre), jos ei sitä jo osaa. On olemassa monia kiilteleviä hypellä täytettyjä huonoja HTML-kirjoja ja huolestuttavan vähän hyviä. Itse pidän eniten kirjasta HTML: The Definitive Guide.
Mutta HTML ei ole kokonainen ohjelmointikieli. Kun on valmis ryhtymään ohjelmoimaan, suosittelen aloittamaan Pythonilla. Useammat ihmiset saattavat suosittella Perliä ja Perl on edelleen suositumpi kuin Python, mutta sitä on vaikeampaa oppia ja se on (mielestäni) huonommin suunniteltu.
C on hyvin tärkeää, mutta se on myös paljon vaikeampaa kuin Python tai Perl. Älä yritä oppia sitä ensiksi.
Windows-käyttäjät, älkää tyytykö Visual Basiciin. Se opettaa pahoja tapoja, eikä se ole portattavissa pois Windowsista. Välttäkää.
Minkälaista rautaa tarvitsen?
Pöytäkoneissa oli ennen verrattaen vähän tehoja ja heikosti muistia, jopa niin että ne asettivat keinotekoisia rajoja hakkerin oppimiselle. Tämä lakkasi olemasta totta jokin aika sitten; mikä tahansa kone Intel 486DX50:stä ylöspäin on enemmän kuin tarpeeksi tehokas kehityskoneeksi, X:lle ja nettiliikenteelle, ja pieninkin kaupasta saatava kovalevy on helposti tarpeeksi suuri.
Tärkeä asia opettelukoneen valinnassa on onko sen rauta Linux-yhteensopiva (tai BSD-yhteensopia, jos haluaa kulkea sitä reittiä). Jälleen, tämä pätee suurimpaan osaan koneista. Ainoa todella hankala alue ovat modeemit; joissain koneissa on Windows-spesifistä rautaa, joka ei toimi Linuxilla.
Raudan yhteensopivuudesta on UKK; viimeisin versio on täällä.
Haluan osallistua. Voitko auttaa minua valitsemaan työstettävä ongelma?
En, sillä en tiedä taitojasi tai kiinnostuksesi kohteita. Täytyy olla itsemotivoitu tai ei jatka, minkä vuoksi toisten antamat ohjeet eivät lähes koskaan toimi.
Kokeile tätä. Seuraa projekti-ilmoituksia, jotka vierivät Freshmeat-saitilla parin päivän aikana ja kun näet sellaisen, josta ajattelet, että "Mahtavaa! Tota mä haluaisin tehdä!", liity siihen.
Täytyykö minun vihata ja haukkua Microsoftia?
Ei tarvitse. Ei niin etteikö Microsoft olisi halveksittava, mutta hakkerikulttuuri oli olemassa paljon ennen Microsoftia ja tulee edelleen olemaan olemassa, kun Microsoft on jo kauan ollut historiaa. Kaiken energian, jonka käyttää Microsoftin vihaamiseen, voisi käyttä paremmin rakastamalla taidettaan. Kirjoita hyvää koodia—se murjoo Microsoftia aivan riittävästi saastuttamatta karmaasi.
Mutta eivätkö avoimen lähdekoodin ohjelmistot jätä ohjelmoijat vaille elinkeinoa?
Tämä ei näytä todennäköiseltä—tähän asti avoimen lähdekoodin ohjelmistoteollisuus näyttää luovan työpaikkoja niiden viemisen sijaan. Jos ohjelman kirjoittaminen on taloudellinen nettoparannus sen kirjoittamattajäämiseen, ohjelmoija saa palkkansa tuleepa ohjelmasta sen valmistuttua avoimen lähdekoodin ohjelma tai ei. Ja vaikka kuinka paljon vapaata ohjelmistoa tulisi kirjoitettua, tuntuu aina löytyvän kysyntää uusille ja mukautetuille sovelluksille. Olen kirjoittanut lisää tästä Open Source -sivulla.
Miten pääsen alkuun? Mistä saan ilmaisen Unixin?
Toisaalle tälle sivulle olen laittanut viittauksi paikkoihin, joista voi saada yleisimmin käytetyn ilmaisen Unixin. Tullaksesi hakkeriksi tarvitsee motivaatiota ja aloitetta ja kyvyn opetella itsenäisesti. Nyt on hyvä aika aloittaa...