Översättningen är gjord av
Magnus Lyckå. Jag har valt att inte översätta vissa begrepp
(cracker,
geek,
hacker,
nerd,
open source)
eftersom man vanligtvis ser dessa ord på
engelska, och eftersom jag inte kunde komma på några bra svenska
översättningar som betyder precis samma sak.
Begreppen hacker och cracker förklaras nedan.
Nerd (nörd på svengelska) betyder väl ungefär asocial plugghäst (eller
någon annan som har avsevärt mer intelligens än social förmåga),
och en geek är väl ungefär detsamma, men mer excentrisk.
Open source betecknar i detta fall programvara vars
källkod (instruktioner) är fritt tillgänglig för
granskning, kopiering och modifiering.
Detta kallas ofta fri programvara (free software) men det begreppet
sammanblandas ofta med gratisprogram (freeware) som inte alls är samma sak.
Emedan jag ogärna tillämpar svenska språkregler på engelska ord
har jag använt engelskt plural för engelska ord då det behövs. Jag hoppas
att ni har överseende med dessa främmande element i den svenska texten.
Synpunkter på detta, eller på översättningen i övrigt emottages tacksamt till
<magnus.lycka@tripnet.se>.
Jag har försökt göra en så korrekt översättning som möjligt. Åsikterna är
alltså Erics, och inte mina, även om jag till stor del delar dem. Eventuella
felaktigheter i texten är förmodligen mina...
Magnus Lyckå, Umeå den 16 april 1998
Om du läser en kopia av detta dokument så kan du finna den senaste versionen på http://www1.tripnet.se/~mly/open/faqs/hacker-howto.se.html.
Det finns en gemenskap, en gemensam kultur, av programmerings- och nätverksexperter, som spårar sin historia genom decennierna till de första tidsdelade minidatorerna och de första experimenten med ARPAnet. Medlemmarna i denna kultur skapade begreppet 'hacker'. Hackers byggde Internet. Hackers gjorde operativsystemet Unix till vad det är idag. Hackers driver Usenet. Hackers får World Wide Web att fungera. Om du är del av denna kultur, om du har bidragit till den, och om andra människor i den vet att du är, och kallar dig en hacker, så är du en hacker.
Hacker-inställningen är inte begränsad till denna kultur av programvaru-hackers. Det finns folk som tillämpar hacker-attityden på annat, såsom elektronik eller musik -- du kan faktiskt finna den på den högsta nivån av varje vetenskap eller konstart. Programvaru-hackers känner igen denna själarnas gemenskap, och kan kalla även dessa personer 'hackers' -- och vissa menar att hacker-andan är egentligen är oberoende av det specifika medium en hacker arbetar med. I resten av detta dokument kommer vi dock att fokusera på programvaru-hackers förmågor och attityder, och traditionerna i den gemensamma kultur som skapat begreppet 'hacker'.
Det finns en anan grupp människor som ljudligt framställer sig som hackers, men som inte är det. Detta är människor (vanligtvis unga män) som blir upphetsade av att bryta sig in i dator- och telefonsystem. Riktiga hackers kallar dessa människor 'crackers' och vill inte ha något med dem att göra. Riktiga hackers tycker att crackers är lata, oansvariga, och inte vidare begåvade; och invänder att förmågan att kunna bryta sig in i ett datorsystem inte gör dig till en hacker mer än förmågan att tjuvkoppla bilar för dig till fordonskonstruktör. Tyvärr har många journalister och skribenter lurats till att använda begreppet 'hacker' för att beskriva crackers. Dessa är ytterligt irriterande för riktiga hackers.
Den grundläggande skillnaden är: Hackers bygger upp saker, crackers river ner dem.
Om du vill bli en hacker, fortsätt läs. Om du vill bli en cracker, läs nyhetsgruppen alt.2600 och förbered dig på fem till tio år i fängelse efter att du kommit på att du inte var så smart som du trodde. Det är allt jag kommer att säga om crackers.
Men om du tänker odla hacker-attityden bara för att bli accepterad har du missat hela poängen. Att bli en sådan människa som tror på dessa ideal är viktigt för dig -- för att hjälpa dig att lära, och för att motivera dig. Som med alla kreativa konster är det effektivaste sättet att bli en mästare att ta efter mästarnas inställning -- inte bara intellektuellt, utan även känslomässigt.
Så, om du vill bli en hacker, repetera det följande tills du tror på det:
Om du inte är den typen av person som känner så här naturligt, så behöver du bli en sådan för att lyckas som hacker. Annars kommer du att finna att den energi du behöver som hacker förslösas på distraktioner som sex, pengar och socialt godkännande.
(Du behöver också utveckla en slags tro på din förmåga att lära dig saker -- en tro på att även om du inte kan allt som behövs för att lösa ett visst problem, så kan du ta dig an en del av det och lära dig från det, och på så sätt lära dig tillräckligt för att ge dig på nästa del -- och så vidare, tills du är klar.)
För att bete dig som en hacker, så måste du tro på att den tid andra hackers tänker är en värdefull resurs -- så mycket att det nästan är en moralisk plikt för dig att dela med dig av information, lösa problem och att sedan dela med dig av dina lösningar så att andra hackers kan lösa nya problem istället för att för evigt sysselsätta sig med gamla.
(Du behöver inte känna dig tvungen att skänka bort alla resultat av din kreativitet, även om de hackers som gör det är de som får mest respekt från andra hackers. Det är i enlighet med hacker-värderingar att ta betalt för så mycket av sin kreativitet att man har råd med mat, husrum och datorer. Det är i enlighet med hacker-värderingar att du använder din förmåga som hacker för att finansiera din familj, eller till och med bli rik, så länge du inte glömmer att du är en hacker när du gör det.)
För att bete dig som en hacker måste du tro tillräckligt mycket på detta för att vilja automatisera bort tråkiga moment så mycket som möjligt. Inte bara för dig själv, utan även för alla andra (speciellt andra hackers).
(Det finns ett uppenbart undantag här. Hackers gör ibland saker som förefaller repetitiva eller tråkiga för utomstående som en övning för att rensa skallen, eller för att erhålla en viss förmåga eller erfarenhet som de annars inte skulle kunna få. Men detta är ett medvetet val -- ingen som kan tänka skulle någonsin tvingas att ha tråkigt.)
(Detta är inte det samma som att bekämpa all överhet. Barn behöver gränser, och kriminella behöver kontrolleras. En hacker kan gå med på en viss överhet för att få något som är viktigare än den tid han lägger på att följa order. Men detta är en begränsad, medveten kompromiss. Den slags personlig kapitulation som auktoritära personer vill ha kan aldrig erbjudas.)
Auktoritära människor lever på censur och hemlighetsmakeri. De misstror frivilligt samarbete och informationsdelning -- de tycker bara om 'samarbete' som det själva styr. Så, för att bete dig som en hacker måste du utveckla en instinktiv fientlighet till censur, hemlighetsmakeri och användning av övermakt eller bedrägeri för att tvinga ansvarskännande vuxna. Du måste dessutom vara beredd att handla i enlighet med din uppfattning.
Därför måste du lära dig att misstro attityd och respektera kompetens av varje slag. Hackers låter inte tillgjorda person slösa bort deras tid, men de högaktar kompetens -- speciellt hacker-kompetens, men kompetens på vad som helst är bra. Kompetens på krävande områden som få behärskar är speciellt bra, och kompetens som involverar mental skärpa, hantverksmässighet och koncentration är bäst.
Om du vördar kompetens, kommer du att utveckla det själv. Det hårda arbetet och engagemanget blir en slag intensiv lek istället för slavgöra. Och det är vitalt för att bli en hacker.
Denna uppsättning förändras långamt allt eftersom tekniken skapar nya färdigheter och gör andra överflödiga. Till exempel ingick programmering i maskinkod, och HTML har tillkommit nyligen. Just nu ingår tämligen tveklöst nedanstående:
Förutom C, ska du åtminstone lära dig Lisp och Perl (och Java trycker på för att komma in på listan). Förutom att dessa är de viktigaste hacker-språken, så representerar de mycket olika angreppsätt för programmering, och alla kommer att lära dig viktiga saker.
Jag kan inte ge kompletta instruktioner för hur du ska lära dig att programmera här -- det är en komplex aktivitet. Men jag kan säga att böcker och kurser inte kommer att göra det. (Många, kanske de flesta av de bästa hackers är självlärda.) Vad som spelar roll är att (a) läsa kod och skriva kod.
Att lära sig att programmera är som att lära sig att författa. Det bästa sättet är att läsa böcker skrivna av konstens mästare, skriva lite själv, läsa mycket mer, skriva lite mer, läsa mycket mer, skriva lite mer ... och repetera tills din förmåga att skriva börja bli så stark och koncentrerad som dina förebilders.
Det brukade vara svårt att hitta bra kod att läsa, eftersom det fanns få program med källkod som nykläckta hackers kunde läsa och mixtra med. Detta har dramatiskt förändrats. Open Source-program, programmeringsverktyg och operativsystem (som alla byggts av hackers) är nu vitt spridda, vilket elegant för mig till nästa ämne...
Ja, det finns andra operativsystem i världen utom Unix, men de distribueras i binär-form -- du kan inte läsa koden, och du kan inte modifiera den. Att försöka lära sig att hacka på en DOS- eller Windows-dator eller under MacOS är som att försöka lära sig dansa med hela kroppen gipsad.
Dessutom är Unix Internets operativsystem. Även om du kan lära dig att använda Internet utan att kunna Unix, kan du inte bli en Internet-hacker utan att förstå det. Därför är hacker-kulturen idag tämligen Unix-centrerad. (Det var inte alltid så, och vissa äldre hackers är inte helt förtjusta, men symbiosen mellan Unix och Internet har blivit så stark att inte ens Microsoft verkar kunna rå på den på allvar.)
Så, få igång en Unix -- jag själv gillar Linux, men det finns andra vägar. Lär dig den. Kör den. Mixtra med den. Prata med Internet med den. Läs koden. Modifiera koden. Du får bättre programmeringsverktyg (inkluderande C, Lisp och Perl) än något operativsystem från Microsoft du kan drömma om. Du kommer att ha kul, och du kommer att suga upp mer kunskap än du kommer att inse förrän du ser tillbaka på det som mäster-hackare.
För mer om att lära sig Unix, se The Loginataka [engelsk].
För att få fatt på Linux, se Where To Get Linux [engelsk].
Detta handlar inte om att kunna använda en web-bläddrare (vem som helst kan göra det), utan att lära sig hur man skriver HTML, webbens uppmärkningsspråk. Om du inte kan programmera så kommer du att lära dig lite av de mentala vanor som underlättar lärandet genom att skriva HTML. Så skapa en hemsida.
Men att ha en hemsida för dig inte i närheten av att vara en hacker. Webben är full av hemsidor. Det mesta är en meningslös, innehållslös sörja. Visserligen en sörja som ser väldigt häftig ut, men ändå en ren sörja. (För mer om detta, se The HTML Hell Page [engelsk]).
För att vara meningsfull måste din sida ha innehåll -- den måste vara intressant och/eller användbar för andra hackers. Det för oss till nästa ämne...
Därför lär du dig, när du spelar med i hacker-spelet, att räkna poäng huvudsakligen genom vad andra hackers tycker om din förmåga. (Det är därför du inte är en hacker förrän andra hacker konsekvent kallar dig hacker.) Detta döljes av bilden av hacker-jobb som ensamt arbete, och av ett hacker-kulturellt tabu (avtagande men ändå verksamt) mot att erkänna att det egna egot eller utomståendes omdömen på något sätt påverkar ens motivation.
Hacker-kulturen är vad antropologer kallar en gåvo-kultur. Status och ryktbarhet får du inte genom att dominera andra människor, utan genom att skänka bort saker. Specifikt, genom skänka bort din tid, din kreativitet och resultaten av din kreativitet.
Det finns i princip fem saker som du kan göra för att få respekt från andra hackers:
(Vi brukade kalla dessa verk fri programvara, eller "free software", men det förvirrade många som inte riktigt förstod vari friheten bestod. Många av oss föredrar nu termen "open-source"-program) [engelsk länk].
Hacker-kulturens mest vördade husgudar är människor som har skrivit stora, användbara program som tillfredställt ett vida spritt behov och skänkt bort dem, så att alla använder dem nu.
Om du är nybörjare, försök hitta ett program under utveckling som du är intresserad av, och var en bra beta-testare. Det finns en naturlig utveckling från att hjälpa till att testa program till att hjälpa till att modifiera dem. På detta sätt lär du dig mycket, och genererar god karma hos folk som senare kommer att hjälpa dig.
De som sköter om de stora tekniska FAQerna får nästan lika mycket respekt som de som skriver open-source-program.
Folk som gör sådant väl får mycket respekt, för alla vet att dessa jobb är mycket tidskrävande och inte så kul som att leka med kod. Att göra dem visar på hengivelse.
Hacker-kulturen har inte precis några ledare, men den har hjältar och stam-äldste och historiker och talesmän. När du har varit i skyttegravarna tillräckligt länge kan du växa till att bli en av dem. Akta dig: Hackers misstror skräniga egon bland sina äldste, så att synligt sträcka sig efter detta slags berömmelse är farligt. Snarare än att sträva efter det, behöver du sätta dig så att det trillar ner i ditt knä, och sedan vara ödmjuk och värdig för din status.
Av detta skäl har många hackers tagit till sig etiketten 'nerd' eller till och med den hårdare termen 'geek' som ett äro-märke -- det är ett sätt att deklarera sitt oberoende från normala sociala förväntningar. Se The Geek Page [engelsk] för omfattande utläggning.
Om du klarar av att koncentrera dig så mycket på hackandet att det går bra samtidigt som du har ett socialt liv så är det bra. Det är mycket lättare idag än när jag var en nybörjare på 70-talet. Folk i allmänhet är mycket mer positiva till en teknik-nerd idag. Det finns till och med en växande skara som förstår att hackers ofta är utmärkta älskare och makar. För mer om detta, se: Girl's Guide to Geek Guys [engelsk].
Om du dras till hacker-kulturen för att du inte har något socialt liv så är det också OK -- du kommer ha mindre bekymmer med koncentrationen. Du kanske får ett riktigt liv senare.
Till slut, några saker att inte göra.
Jag har också skrivit A Brief History Of Hackerdom. [engelsk]
Peter Seebach sköter om en utmärkt Hacker FAQ [engelsk] för chefer som inte vet hur de ska hantera hackers.
Jag har skrivit ett papper, The Cathedral and the Bazaar, [engelsk] som förklarar mycket om hur Linux och open-source-kulturer fungerar.
Även om jag kunde, så är hackande en attityd och förmåga du huvudsakligen måste lära dig själv. Medan du kommer att märka att hackers vill hjälpa dig, så kommer de inte att respektera dig om du ber dem att sked-mata dig med allt de kan.
Lär dig några saker först. Visa att du försöker, att du kan lära dig själv. Gå sedan till hackers du träffar med dina frågor.
(Här brukade jag säga att det inte finns några riktiga hackers på IRC (chat), men så vitt jag förstår ändras detta. Tydligen finns riktiga hacker-sällskap knutna till saker som GIMP och Perl som har egna IRC-kanaler nu.)
När du är redo att börja programmera skulle jag rekommendera att du börjar med Perl eller Python [engelska länkar]. C är verkligen viktigt, men det är också mycket svårare.