Linux Task Force

< Index / Tagebuch / Projekte / FAQ's & HowTo's / Über mich / Links Impressum / >
Direkt zur deutschen Übersetzung.

This is the german translation of the original english text
How To Become A Hacker
by Eric Steven Raymond.
Copyright © 2001 Eric S. Raymond
You can reach him using the following adresses:
Thyrsus Enterprises
<esr@thyrsus.com>
The original translation was done by Christopher Özbek.
All updates and translations of new parts of the document are done by Sven Bergner.

Numerous translations of this document are available:
Arabic, Bulgarian, Catalan, Chinese (Simplified), Danish, Dutch, Estonia, Farsi, Finnish, German, Greek, Hebrew, Italian, Japanese, Norwegian, Polish, Portuguese (Brazilian), Romanian, Russian, Spanish, Turkish, and Swedish.
Note that since this document changes occasionally, they may be out of date to varying degrees.


Revision History
Revision 1.38 8 Jan 2008 esr
Deprecate Java as a language to learn early.
Revision 1.37 4 Oct 2007 esr
Recommend Ubuntu as a Unix distro for newbies.
Revision 1.36 21 Mar 2007 esr
Add note about live CDs, and ten years to mastery.
Revision 1.35 03 Aug 2006 esr
Minor fixes.
Revision 1.34 07 Mar 2006 esr
Remove C# from the list of languages to be avoided now that Mono is out of beta.
Revision 1.33 29 Nov 2005 esr
Add a pointer to Peter Norvig's excellent essay.
Revision 1.32 29 Jun 2005 esr
Substantial new material on not solving problems twice. Answer a FAQ on hacking and open-source programming. The three questions that reveal if you are already a hacker.
Revision 1.31 22 Mar 2005 esr
Added a link to another Paul Graham essay, and advice on how to pick a first project. More translation-link updates.
Revision 1.30 2 Mar 2005 esr
Added and updated many translation links.
Revision 1.29 27 Nov 2004 esr
Add Catalan translation.
Revision 1.28 19 Nov 2004 esr
Recommend Raymond Smullyan. Added a caution about Java. More about martial arts and meditation disciplines.
Revision 1.27 28 Oct 2004 esr
More on mathematics and hacking skill.
Revision 1.26 29 Jul 2004 esr
Add a link to Paul Graham's essay on Great Hackers.
Revision 1.24 20 Jan 2004 esr
Belatedly take notice, in the first paragraph, that this document has become authoritative for a lot of people.

Inhaltsverzeichnis

Anmerkungen zur Deutschen Übersetzung
Warum dieses Dokument?
Was ist ein Hacker?
Die Hacker-Einstellung
1. Die Welt ist voll von faszinierenden Problemen, die alle nur darauf warten, gelöst zu werden.
2. Kein Problem sollte jemals zweimal gelöst werden müssen.
3. Langeweile und Schufterei sind schlecht.
4. Freiheit ist gut.
5. Die innere Einstellung ist kein Ersatz für Kompetenz.
Grundlegende Hacker-Fähigkeiten
1. Lerne wie man programmiert.
2. Hol Dir eines der OpenSource UNIXe und lerne wie man es benutzt und betreibt.
3. Lerne das Web zu benutzen und HTML-Code zu schreiben.
4. Wenn Du keine brauchbaren Englischkenntnisse hast, dann erwirb sie.
Status in der Hacker-Gemeinschaft
1. Schreibe Open-Source Software, die jeder frei benutzen kann.
2. Hilf mit, freie Software zu testen und Fehler zu finden
3. Veröffentliche nützliche Informationen
4. Hilf mit die Infrastruktur am Leben zu halten
5. Hilf der Hacker-Kultur
Die Hacker/Nerd-Verbindung
Punkte zur Verbesserung deines Stils
Andere Quellen
Häufig gestellte Fragen

hacker emblem

Anmerkungen zur Deutschen Übersetzung

Diese Seite enthält die deutsche Übersetzung von Eric Steven Raymonds How To Become A Hacker Copyright © 2001 Eric S. Raymond. Die ursprüngliche Übersetzung stammt von Christopher Özbek. Alle Aktualisierungen und die Übersetzungen der neu hinzugekommenen Teile stammen von Sven Bergner. Diese Seite befindet sich im Moment noch in der Korrekturphase. Ich habe die Übersetzung der fehlenden Teile jetzt abgeschlossen und befinde mich momentan auf der Suche nach Fehlern. Sowohl was die Rechtschreibung und Zeichensetzung angeht, als auch die Formulierung einiger Textpassagen.

Fehlerkorrekturen, bessere Formulierungen oder Übersetzungen bitte per Mail mitteilen. Ich bin für jede Art von konstruktiver Kritik dankbar.

Vor dem Einsenden sollte aber das Korrektur-Howto gelesen werden. Das macht hoffentlich allen beteiligten das Leben leichter.


Vielen Dank an die folgenden Personen für ihre Korrekturvorschläge :
(in chronologischer Reihenfolge der Korrektureinsendungen)


hacker emblem

Warum dieses Dokument?

Als Betreuer der Jargon-Datei und Autor einiger anderer wohlbekannter Dokumente zu ähnlichen Themen bekomme ich oft E-Mail anfragen von enthusiastischen Netzneulingen, die (im Affekt) fragen: "Wie kann ich lernen ein Hackerzauberer zu werden?". 1996 stellte ich fest, dass es keine anderen FAQs oder Web-Seiten zu geben schien, die sich mit dieser Frage beschäftigen, deswegen begann ich mit dieser. Viele Hacker betrachten diese Liste mittlerweile als maßgeblich und ich vermute, dass das bedeutet, dass es das ist. Trotzdem beanspruche ich nicht die alleinige Autorität auf diesem Gebiet. Wenn Dir nicht gefällt, was Du hier liest, dann schreibe Deine eigene Liste.

Falls Du einen Auszug dieses Dokumentes offline liest, die aktuelle Version findest Du unter http://www.catb.org/~esr/faqs/hacker-howto.html.

Hinweis: Es gibt eine Liste von Häufig gestellten Fragen am Ende dieses Dokumentes. Bitte lies diese Liste –zweimal–, bevor Du mir eine Frage zu diesem Dokument stellst.

Das Fünf-Punkte-in-neun-Quadraten Symbol, das dieses Dokument verziert, nennt sich glider. Es ist ein einfaches Muster mit einigen überraschenden Eigenschaften, das zu einer mathematischen Simulation namens Life gehört, das schon viele Hacker für viele Jahre fasziniert hat. Ich denke, dass es ein gutes Emblem ist, für das was Hacker sind – abstrakt, am Anfang etwas mysteriös, aber ein Tor zu einer ganzen Welt mit einer eigenen komplizierten Logik. Du kannst hier mehr über das Glider Emblem erfahren.


hacker emblem

Was ist ein Hacker?

Die Jargon-Datei enthält eine Vielzahl von Definitionen des Begriffes "Hacker", welche hauptsächlich etwas mit technischem Können, einer Freude an der Lösung von Problemen und dem Übertreten von Grenzen zu tun haben. Wenn Du aber wissen möchtest, wie man ein Hacker wird, dann sind nur zwei Sachen wirklich wichtig.

Es gibt eine Gemeinschaft, eine verteilte Kultur, bestehend aus Programmierern und Netzwerk-"Magiern", deren Wurzeln zurück bis in die Zeit der ersten Minicomputer, mit Rechenzeitaufteilung und den frühesten ARPA-Netz-Versuchen, zurück reichen. Die Mitglieder dieser Kultur schufen den Begriff "Hacker". Hacker bauten das Internet, Hacker machten das UNIX-Betriebssystem zu dem, was es heute ist, Hacker betreiben das Usenet, Hacker brachten das World Wide Web zum Laufen, Hacker taten noch viel mehr. Wenn Du ein Teil dieser Kultur bist, wenn Du zu ihrem Sein und ihrer Entwicklung beigetragen hast, andere Mitglieder wissen wer Du bist und Dich einen Hacker nennen, erst dann bist Du auch wirklich ein Hacker.

Die Hacker-Gedankeneinstellung auf der anderen Seite ist nicht beschränkt auf die Software-Hacker-Gemeinschaft. Es gibt Meinungen, welche die Haltung der Hacker auf andere Dinge, wie Elektronik oder Musik – eigentlich auf die höchste Stufe des Könnens jeder Kunst oder Wissenschaft – übertragen. Software-Hacker erkennen diese verwandten Seelen an und nennen sie gelegentlich ebenfalls "Hacker", ja es gibt sogar Stimmen, die sagen, die Einstellung der Software-Hacker ist absolut unabhängig von dem jeweiligen Medium, mit dem sich der Hacker beschäftigt. In dem Rest dieses Textes wollen wir uns jedoch auf die Eigenschaften und Einstellungen der Software-Hacker und ihre Traditionen konzentrieren, welche den Begriff Hacker ins Leben rief.

Es gibt noch eine andere Gruppe von Leuten, die sich lautstark als Hacker bezeichnen, diesen Namen aber in keinster Weise verdient haben. Es sind Menschen (meist pubertierende männliche Wesen), welche einen Spaß daran haben, in Computer einzubrechen und das Telefonnetz zu zerstören. Echte Hacker nennen diese Leute "Cracker" und wollen mit ihnen nichts zu tun haben. Wirkliche Hacker halten Cracker für ein faules, unverantwortliches und nicht besonders schlaues Pack, denn genauso wenig, wie man durch das Knacken von Sicherheitscodes ein Hacker wird, wird man durch das Kurzschließen eines Autos zu einem KFZ-Mechaniker. Unglücklicherweise sind viele Journalisten und Schreiber darauf verfallen, das Wort Hacker als Beschreibung von Cracker zu verwenden; dies verärgert echte Hacker ungemein...

Der grundlegende Unterschied ist dieser: Hacker bauen Dinge auf, Cracker zerstören sie.

Wenn Du ein Hacker werden willst, lies weiter. Wenn Du aber ein Cracker werden willst, geh, lies die Newsgroup alt.2600 und bereite dich darauf vor, fünf bis zehn Jahre im Knast zu verbringen, nachdem Du herausgefunden hast, dass Du doch gar nicht so schlau bist, wie du gedacht hast. Und dies ist alles, was ich über Cracker zu sagen habe!


hacker emblem

Die Hacker-Einstellung

1. Die Welt ist voll von faszinierenden Problemen, die alle nur darauf warten, gelöst zu werden.
2. Kein Problem sollte jemals zweimal gelöst werden müssen.
3. Langeweile und Schufterei sind schlecht.
4. Freiheit ist gut.
5. Die innere Einstellung ist kein Ersatz für Kompetenz.

Hacker lösen Probleme und bauen Dinge auf, sie glauben an Freiheit und freiwillige, gegenseitige Hilfe. Um als Hacker akzeptiert zu werden, musst Du Dich verhalten, als hättest Du diese Einstellung. Und um Dich wirklich so zu verhalten, als hättest Du diese Einstellung, musst Du wirklich an sie glauben.

Wenn Du nun aber glaubst, die Hacker-Einstellung sei der Schlüssel zu deiner Akzeptanz durch die Gemeinschaft, liegst du falsch. Ein Mensch zu werden, der diese Eigenschaften glaubt und verinnerlicht hat, ist wichtig für dich selbst, sie helfen dir, leichter zu lernen und halten Dich motiviert. Genau wie in allen kreativen Künsten ist es am effektivsten, das Denken der Meister zu imitieren – nicht nur von der Wissensseite, sondern auch von der emotionalen.

Oder, wie es das nachfolgende moderne Zen-Gedicht ausdrückt:

    Um dem Pfad zu folgen:
    Schau auf den Meister,
    Folge dem Meister,
    Laufe mit dem Meister,
    Durchschaue den Meister,
    Werde der Meister.

(Anmerkung des Übersetzers: Da das Übersetzen von Gedichten immer etwas problematisch ist, habe ich in diesem Fall das Original zusätzlich eingefügt.)


    To follow the path:
    look to the master,
    follow the master,
    walk with the master,
    see through the master,
    become the master.

So, wenn Du wirklich ein Hacker werden möchtest, dann wiederhole die folgenden Dinge, bis Du sie selbst glaubst:

1. Die Welt ist voll von faszinierenden Problemen, die alle nur darauf warten, gelöst zu werden.

Ein Hacker zu sein, bedeutet jede Menge Spaß, aber es ist eine Art von Spaß, die viel Anstrengung erfordert. Anstrengung zu vollbringen setzt Motivation voraus. Erfolgreiche Athleten bekommen ihre Motivation aus einer Art körperlichen Hochgefühls, wenn sie ihre Körper trainieren oder wenn sie sich bis über ihre Leistungsgrenzen hinaus verausgaben. So ähnlich geht es dem Hacker, er muss eine grundlegende Erregung verspüren, wann immer er ein Problem lösen, seine Fähigkeiten erweitern oder seinen Geist trainieren konnte.

Wenn Du nicht zu den Menschen gehörst, die schon von Natur aus so fühlen, musst Du eben einer werden, wenn Du ein Hacker werden willst, denn sonst wirst Du schnell bemerken, dass deine Hacker-Energie von Ablenkungen wie Sex, Geld oder sozialer Anerkennung verbraucht wird.

(Du musst außerdem eine Art von Glauben in Deine eigene Lernfähigkeit entwickeln – einen Glauben, der Dich dazu bringt, dass – auch wenn Du keinen blassen Schimmer haben solltest, wie Du das gesamte Problem lösen kannst – wenn Du nur ein kleines Stück löst und davon lernst, Du genug gelernt haben wirst, um das nächste Stückchen zu lösen – und so weiter, bis Du es irgendwann geschafft hast.)

2. Kein Problem sollte jemals zweimal gelöst werden müssen.

Kreative Köpfe sind wertvolle und seltene Güter. Sie sollten nicht darauf verschwendet werden, das Rad noch einmal zu erfinden, wenn doch so viele wunderbare neue Probleme darauf warten gelöst zu werden.

Um wie ein Hacker zu handeln, musst Du glauben, dass die Zeit, die anderen Hackern zum Denken zur Verfügung steht, kostbar ist – so kostbar, dass es beinahe eine moralische Pflicht ist deine Informationen zu teilen, Probleme zu lösen und die Lösung weiterzugeben, damit andere Hacker sich neuen Problemen zuwenden können, anstatt andauernd bereits gelösten wieder aufrollen zu müssen.

Denke aber trotzdem immer daran, dass der Grundsatz "Kein Problem sollte jemals doppelt gelöst werden." nicht impliziert, dass du annehmen sollst, dass alle existierenden Lösungen heilig sind, oder das es nur eine richtige Lösung für ein gegebenes Problem gibt. Oftmals lernen wir bei der ersten Lösung sehr viel mehr über das Problem, als wir vorher wussten. Es ist OK, und oft auch notwendig, zu entscheiden, dass man etwas besser machen kann. Was nicht OK ist, sind künstliche technische, rechtliche oder politische Barrieren (wie z.B. Closed-Source Software), die verhindern, dass eine gute Lösung wiederverwendet werden kann und Leute dazu zwingt das Rad neu zu erfinden.

(Das bedeutet nicht, dass Du alle Errungenschaften deiner Kreativität weggeben musst, obwohl denjenigen, die dies tun, der höchste Respekt entgegengebracht wird. Es ist mit den Hackerwerten vereinbar, genug zu verkaufen, um sich mit Computern, Essen und einem Dach über dem Kopf zu versorgen. Es ist vertretbar seine Hacker-Fähigkeiten einzusetzen, um eine Familie zu versorgen oder sogar um reich zu werden, solange Du nie vergißt, dass Du ein Hacker bist, während Du all dies tust.)

3. Langeweile und Schufterei sind schlecht.

Hacker (und generell alle kreativen Leute) sollten niemals gelangweilt sein oder dazu genötigt sein, stumpfsinnige, sich ständig wiederholende Arbeit zu tun, weil dies natürlich bedeutet, dass sie nicht das tun, was nur sie tun könnten – nämlich neue Probleme lösen. Diese Verschwendung schadet allen. Also ist Langeweile nicht nur unangenehm, sondern einfach schlecht.

Um sich wie ein Hacker zu benehmen, musst Du dies stark genug glauben, um die langweiligen Arbeiten so weit wie möglich wegautomatisieren zu wollen, nicht nur für Dich selbst, sondern auch für alle anderen Menschen (besonders andere Hacker).

(Es gibt eine Ausnahme von dieser Regel. Hacker tun manchmal Sachen, welche auf den ersten Blick langweilig und stumpfsinnig erscheinen, aber in Wirklichkeit dazu dienen, zu üben den Kopf frei zu kriegen, eine Fähigkeit zu erwerben oder eine bestimmte Erfahrung zu erlangen, welche andersartig nicht erreicht werden kann. Aber dies ist absolut freiwillig – niemand, der bei klarem Verstand ist, sollte jemals zu Langeweile gezwungen werden.)

4. Freiheit ist gut.

Hacker sind von Natur aus antiautoritär veranlagt. Jeder, der Dir Befehle geben kann, kann Dich auch davon abhalten, das Problem zu lösen, das Dich gerade fasziniert, und wird – dies ist einfach die Art, nach der autoritäre Gehirne arbeiten – ein paar furchtbar blödsinnige Gründe finden, damit er dies auch tun kann. Autoritäre Einstellungen müssen bekämpft werden, wo immer sie gefunden werden, damit sie nicht Dich und andere Hacker ersticken.

(Dies ist nicht das selbe, wie alle Autoritäten zu bekämpfen. Kinder müssen angeleitet und Kriminelle aufgehalten werden. Ein Hacker wird darüber hinaus manchen Arten von Autorität zustimmen und sie akzeptieren, wenn er dadurch etwas bekommt, was für ihn wertvoller ist als die Zeit, die er mit dem Befolgen der Befehle verbringt. Aber dies ist ein begrenzter, beabsichtigter Handel; aber die Art der persönlichen Unterwerfung, die Autoritäten verlangen, ist kein Angebot.)

Autorität gedeiht auf dem Boden der Zensur und Geheimhaltung. Sie mißtraut freiwilliger Zusammenarbeit und freiheitlicher Aufteilung der Informationen – die einzige "Zusammenarbeit", die sie gerne sehen ist diese, die unter ihrer Kontrolle steht. Wenn Du also wie ein Hacker handeln willst, musst Du eine instinktive Feindschaft gegenüber Zensur, Geheimhaltung und dem Einsatz von Gewalt oder Betrug entwickeln, und Du musst bereit sein, nach diesem Glauben zu handeln.

5. Die innere Einstellung ist kein Ersatz für Kompetenz.

Um ein Hacker zu sein, solltest Du einige dieser Einstellungen entwickeln. Aber eine Einstellung nur zu übernehmen, das macht Dich genausowenig zu einem Hacker, wie sie Dich zu einem Rockstar oder hervorragenden Athleten machen würde. Um ein Hacker zu werden, benötigst Du Intelligenz, Übung, Hingabe und viel harte Arbeit.

Deshalb musst Du lernen, fremden Einstellungen zu mißtrauen und Kompetenz jedweder Art zu respektieren. Hacker werden es nicht zulassen, dass Angeber ihre Zeit verschwenden, aber sie verehren Können – besonders Kompetenz im Hacken, aber generell jede Form von Kompetenz ist wertvoll. Kompetenz in gefragten Fähigkeiten, die nur wenige beherrschen, ist besonders gut, und Kompetenz in gefragten Fähigkeiten, die geistige Klarheit, Geschicklichkeit und Konzentration erfordern, ist das absolut Beste.

Wenn Du Können und Wissen schätzt, wirst Du Freude daran haben, sie in Dir selbst zu entwickeln – die harte Arbeit und die Hingabe werden von solch einer Intensität sein, dass sie eher einem Spiel ähneln als Schufterei. Diese Einstellung ist absolut überlebenswichtig, wenn Du ein Hacker werden willst.


hacker emblem

Grundlegende Hacker-Fähigkeiten

1. Lerne wie man programmiert.
2. Hol Dir eines der OpenSource UNIXe und lerne wie man es benutzt und betreibt.
3. Lerne das Web zu benutzen und HTML-Code zu schreiben.
4. Wenn Du keine brauchbaren Englischkenntnisse hast, dann erwirb sie.

Die Hackereinstellung ist wichtig, aber die Hacker-Fähigkeiten sind es noch viel mehr. Die richtige Einstellung ist kein Ersatz für Können, und es gibt eine Sammlung von Fähigkeiten, welche Du unbedingt haben musst, bevor irgendein Hacker davon träumen wird, Dich einen Hacker zu nennen.

Diese Werkzeugkiste des Hackers verändert sich nur langsam im Laufe der Zeit. Der Wandel findet in dem Maße statt, indem der technische Fortschritt neue Fähigkeiten erfordert und alte überflüssig macht. Zum Beispiel ist Maschinenspracheprogrammierung früher eine Bedingung gewesen, während HTML bis vor kurzem keine Rolle spielte. Aber mittlerweile kann man mit ziemlicher Sicherheit die folgenden Punkte hinzuzählen:

1. Lerne, wie man programmiert.

Dies ist natürlich die grundlegenste Hackerfähigkeit. Wenn Du gar keine Programmiersprache kennst, empfehle ich Dir, mit Python zu beginnen. Die Sprache wurde sauber designt, ist gut dokumentiert und relativ gnädig zu Anfängern. Auch wenn es eine gute Anfängersprache ist, ist sie kein Spielzeug; sie ist sehr mächtig, flexibel und gut einsetzbar bei großen Projekten. Ich habe eine ausführlichere Evaluierung von Python geschrieben. Gute Tutorials gibt es auf der Python Web-Seite.

Bisher habe ich Java empfohlen, als ein Sprache, die man sehr früh lernen soll, aber diese Kritik hat meine Meinung geändert (suche mal nach "The Pitfalls of Java as a First Programming Language&qout; in diesem Artikel). Ein Hacker kann nicht, wie es in dem Artikel genannt wird "ein Problem angehen, wie ein Klempner im Baumarkt"; Du musst wissen, was die Komponenten, die Du benutzt tun. Jetzt denke ich, dass es das beste ist zuerst C und Lisp zu lernen und danach Java.

Aber sei Dir gewiss, dass Du nicht das Können eines Hackers erreichst, wenn Du nur ein oder zwei Programmiersprachen kennst – Du musst lernen wie man über Programmierprobleme allgemein nachdenkt, unabhängig von irgendeiner speziellen Programmiersprache. Um ein richtiger Hacker zu sein, musst Du den Punkt erreichen, an dem Du eine neue Programmiersprache innerhalb von wenigen Tagen lernst, indem Du das, was in dem Handbuch steht, mit dem verknüpfst, was Du schon weißt. Das bedeutet, Du solltest viele verschiedene Sprachen lernen.

1997 war die Sprache, die Du auf jeden Fall lernen musstest, C (obwohl es nicht diejenige sein sollte, die Du als erstes lernst). Aber Du bist einfach kein Hacker, oder eben hauptsächlich nur ein Programmierer, wenn Du nur eine Sprache kennst – Du musst lernen, Probleme des Programmierens in einer allgemeinen Form zu betrachten, unabhängig von der jeweiligen Umsetzung in die verschiedenen Sprachen. Um ein echter Hacker zu werden, musst Du an den Punkt gelangen, wo Du eine neue Sprache innerhalb von Tagen lernen kannst, weil Du den Inhalt des Handbuchs direkt zu dem in Beziehung setzen kannst, was Du bereits weißt. Dies bedeutet, Du solltest viele verschiedene Ansätze, sprich Programmiersprachen, Dir zu eigen machen.

Wenn Du ernsthaft programmieren willst, solltest Du C lernen, die Kernsprache von Unix. C++ ist sehr verwandt zu C; wenn Du eine von beiden kennst, ist das Erlernen der anderen nicht mehr sehr schwierig. Trotzdem ist keine von beiden eine gute Einsteigersprache. Und, je mehr Du es vermeiden kannst, in C zu programmieren, um so produktiver wirst Du sein.

C ist sehr effizient und sehr ressourcenschonend. Unglücklickerweise erreicht C diese Effizienz dadurch, dass es von Dir verlangt, dass Du eine ganze Menge von low-level Resourcenverwaltung (z.B. Speicher) von Hand verwaltest. Dieser ganze low-level Code ist sehr komplex und fehlerbehaftet und beansprucht viel Zeit bei der Fehlersuche. Bei den heutigen Computern, so leistungstark wie sie sind, ist das ein schlechter Handel – es ist schlauer, eine Programmiersprache einzusetzen, die etwas weniger effizient mit den Resourcen des Computers umgeht, aber dafür sehr effizient mit Deiner Zeit. So wie z.B. Python.

Weitere Programmiersprachen, die für Hacker von besonderem Interesse sind, sind unter anderem Perl und LISP. Perl zu lernen lohnt sich aus praktischen Gründen; es ist sehr weit verbreitet bei aktiven Web-Seiten und bei der System-Administration. Selbst wenn Du nie ein eigenes Perl-Programm schreiben wirst, solltest Du wenigstens in der Lage sein, Perl-Programme zu lesen. Viele Leute benutzen Perl in der Art, in der ich Dir empfehlen würde, Python zu benutzen, um C-Programmierung zu vermeiden, wo es nicht auf die Effizienz von C ankommt. Deshalb wird es nötig sein, dass Du in der Lage bist, diesen Code zu verstehen.

Es gibt einen ganz anderen Grund dafür, LISP zu lernen – die tiefgründige, erleuchtende Erfahrung, wenn Du es schlussendlich verstanden hast. Diese Erfahrung wird Dich bis zum Ende Deiner Tage zu einem besseren Programmierer machen, auch dann, wenn Du nie wirklich LISP benutzen wirst. (Du kannst relativ einfach einige grundlegende Erfahrungen sammeln, wenn Du Modi vom Emacs Text Editor modifizierst oder neu schreibst, oder Script-Fu Plugins für GIMP.)

Am besten wäre es, wenn Du alle fünf Programmiersprachen Python, Java, C/C++, Perl und LISP lernen würdest. Abgesehen davon, dass sie die wichtigsten Hackersprachen sind, repräsentieren diese Programmiersprachen sehr unterschiedliche Herangehensweisen an die Programmierung dar, und jede davon wird Dich auf wertvolle Art bereichern.

Aber denke immer daran, dass es nicht ausreicht einfach eine gewisse Anzahl an Programmiersprachen zu lernen um ein Hacker oder selbst nur ein Programmierer zu werden. Du musst generell lernen wie man in Programmierproblemen denkt, unabhängig von irgend einer Programmiersprache. Um ein echter Hacker zu sein, musst Du an den Punkt kommen, an dem Du eine neue Sprache innerhalb von Tagen lernen kannst, indem Du die Dinge die im Handbuch stehen mit dem in Verbindung bringst, die Du bereits weißt. Das bedeutet, Du solltest einige sehr unterschiedliche Programmiersprachen lernen.

Ich kann keine komplette Anleitung geben, wie man programmieren lernt– dazu ist diese Fähigkeit zu komplex. Aber ich kann Dir sagen, dass Du mit Büchern und Kursen nicht sehr weit kommen wirst - viele, vielleicht die meisten Hacker, haben sich alles selbst beigebracht. Du kannst die Eigenschaften einer Programmiersprache – ein Teil des Wissens – aus Büchern lernen, aber das Verständnis, das aus diesem Wissen echte Fähigkeiten macht, erhält man nur durch Praxiserfahrung und Lehrzeit. Was Du tun musst, ist (a) Programm-Code lesen und (b) Programm-Code schreiben.

Peter Norvig, einer der Top-Hacker bei Google und Co-Autor eines weit verbreiteten Buches über künstliche Intelligenz, hat einen hervorragenden Aufsatz mit dem Titel Teach Yourself Programming in Ten Years geschrieben. Sein &cite;Rezept zum erfolgreichen Programmieren&cite; ist es Wert gründlich beachtet zu werden.

Programmieren lernen ist das gleiche wie in einer natürlichen Sprache gut schreiben zu lernen. Der beste Weg ist, Code zu lesen, der von Meistern der Programmierung geschrieben wurde, und dann etwas selber zu schreiben, wieder jede Menge zu lesen und ein bißchen zu schreiben, wieder lesen und diesmal mehr zu schreiben... und dies alles so lange zu wiederholen, bis Du beginnst, Stärken und Effizienz in Deinen Arbeiten zu entwickeln.

Guten Programmcode zu finden, der sich zum Lesen eignet, war früher ziemlich schwer, weil es einfach so wenig große Programme als Quelltext für Grünschnäbel zum Lesen und Herumbasteln gab. Dies hat sich dramatisch geändert, freie Software, freie Programmierwerkzeuge und freie Betriebssysteme (alles als Quelltext verfügbar und alles von Hackern geschrieben) ist jetzt weitgehend verfügbar. Was uns nahtlos zu unserem nächsten Thema bringt...

2. Hol Dir eines der OpenSource UNIXe und lerne wie man es benutzt und betreibt.

Ich nehme an, Du hast einen PC oder hast Zugriff auf einen. (Nimm dir einen Moment Zeit um zu würdigen, was das bedeutet. Die ursprüngliche Hacker-Kultur entwickelte sich zu einer Zeit, als Computer so teuer waren, dass kein Privatmensch sich einen leisten konnte.) Der einzige wichtige Schritt, den jeder Newbie in Richtung des Erwerbes von Hackerfähigkeiten tätigen kann, ist es, sich eine Kopie von Linux oder von einem der freien BSD-UNIXe oder OpenSolaris zu besorgen, diese auf einem PC zu installieren und sie zu betreiben.

Klar, es gibt noch andere Betriebssysteme in der Welt außer UNIX. Aber sie werden in binärer Form ausgeliefert – Du kannst also den Code weder lesen noch verändern. Unter Microsoft Windows oder einem beliebigen anderen Closed-Source System hacken zu lernen ist so, wie wenn man mit einer Zwangsjacke tanzen lernen soll.

Unter Mac OS X ist es durchaus möglich, allerdings sind nur Teile des Systems Open Source – Du wirst wahrscheinlich mit einigen Problemen zu kämpfen haben und Du musst sehr aufpassen, dass Du Dir nicht die schlechten Angewohnheiten von Apple's proprietären Code angewöhnst. Wenn Du Dich auf das Unix unter der Schale konzentrierst, wirst Du viele nützliche Dinge lernen können.

UNIX ist das Betriebssystem des Internets. Während Du das Internet benutzen kannst, ohne UNIX zu kennen, kannst Du kein Internet-Hacker sein ohne UNIX zu verstehen. Aus diesem Grund ist die Hacker-Gemeinde heutzutage sehr stark UNIX-zentriert. (Dies war nicht immer so, und manche Hacker aus den alten Zeiten sind ganz und gar nicht glücklich damit, aber das Zusammenspiel zwischen UNIX und dem Internet scheint so stark geworden zu sein, dass selbst Microsofts Muskeln sie nicht zu trennen vermag.)

Also, bringe ein Unix zum laufen – ich persönlich mag Linux, aber es gibt auch andere Möglichkeiten (und ja, Du kannst sowohl Linux als auch Microsoft Windows auf der selben Machine betreiben). Lerne es. Benutze es. Spiel damit herum. Verwende es für das Internet. Lies den Code. Modifiziere den Code. Du wirst bessere Programmiertools (darunter C, LISP, Python und Perl) bekommen als alle, von denen ein Microsoft-Betriebssystem nur träumen kann. Du wirst Spass haben, und Du wirst mehr Wissen aufsaugen, als Du Dir vorstellen konntest zu lernen, wenn Du mal als Meister-Hacker auf Deine Anfänge zurückblickst.

Um mehr über UNIX zu lernen lies The Loginataka. Du möchtest vielleicht auch noch einen Blick auf The Art Of Unix Programming werfen.

Wenn Du Linux haben möchtest, sieh Dir die Linux Online! Seite an; Du kannst Linux von dort herunterladen oder (bessere Idee) dort eine lokale Linux User Group (LUG) finden, die Dir bei der Installation helfen kann.

Während den ersten zehn Jahren der Lebenszeit dieses HOWTO's habe ich immer behauptet, dass aus Sicht eines neuen Anwenders alle Linux-Distributionen nahezu gleich sind. Aber seit 2006-2007 hat sich eine Distribution als besonders empfehlenswert herausgestellt: Ubuntu. Während andere Distributionen jede für sich ihre eigenen Stärken hat, ist Ubuntu die mit Abstand am besten für Anfänger geeignete.

Hilfe und Material zu BSD Unix findet man unter www.bsd.org.

Ein guter Weg um die ersten Gehversuche zu unternehmen, ist das was Linux-Fans eine Live-CD nennen, das ist eine Distribution, die komplett von einer CD läuft, ohne dass die Festplatte des Computers modifiziert wird. Das wird langsam sein, da CDs langsam sind, aber es ist ein Weg um sich die Möglichkeiten anzusehen, ohne zu drastischen Maßnahmen greifen zu müssen.

Ich habe eine Einführung zum Thema Grundlagen zu Unix und dem Internet geschrieben.

Ich habe bisher immer empfohlen weder Linux noch BSD ohne Hilfe von dritten zu installieren. Heutzutage sind die Installationsprogramme so gut, dass auch ein Anfänger in Lage ist eine solche Installation allein durchzuführen. Trotzdem empfehle ich nach wie vor Kontakt zu einer lokalen Linux-Gruppe aufzunehmen. Es kann nicht schaden und vielleicht vereinfacht es den Einstieg.

3. Lerne, das Web zu nutzen und HTML-Code zu schreiben.

Die meisten Dinge, die die Hacker-Kultur geschaffen hat, tun ihre Arbeit außerhalb der Sichtweite des Anwenders. Sie helfen beim Betreiben von Fabriken, Universitäten und Büros, ohne wahrnehmbare Auswirkung auf das Leben der Nichthacker zu haben. Die eine, große Ausnahme, bildet das Web. Das große, glänzende Hackerspielzeug, bei dem sogar Politiker zugeben, dass es die Welt verändert hat. Allein aus diesem Grund (und wegen vielen Anderen noch dazu) musst Du lernen, wie man mit dem Web umgeht.

Das heißt jetzt nicht, dass Du nur einen Browser bedienen können musst (das kann jeder), sondern, dass Du HTML, die Präsentationssprache des Webs, schreiben lernst. Wenn Du keine Ahnung hast, wie man programmiert, wird Dir das Schreiben von HTML ein paar geistige Verhaltensweisen beibringen, die Dir beim Lernen einer Programmiersprache helfen werden. So baue Dir also deine eigene Homepage. Versuche Dich an XHTML zu halten, da es eine sauberere Sprache ist als das klassische HTML. (Es gibt einige gute Anfängerkurse im Netz; hier ist einer.) (Anmerkung des Übersetzers: Speziell deutschsprachigen Anfängern würde ich SelfHTML empfehlen.)

Aber einfach nur eine Homepage zu haben, ist nicht einmal annähernd genug, um Dich zu einem Hacker zu machen. Es gibt Tausende Homepages im Web. Die meisten sind sinnloser, gehaltloser Müll – zugegeben, sehr schicker Müll, aber doch nichts anderes als Müll (mehr über dieses Thema gibt's auf der The HTML Hell Page).

Um betrachtenswert zu sein, muß deine Seite Inhalt haben – sie muß interessant und/oder nützlich für andere Hacker sein, was uns auch schon wieder zum nächsten Thema bringt...

4. Wenn Du keine brauchbaren Englischkenntnisse hast, dann erwirb sie.

Als Amerikaner und somit jemand, der Englisch als Muttersprache spricht, habe ich bisher gezögert, diese Empfehlung zu äussern, damit es nicht als kultureller Imperialismus verstanden wird. Aber verschiedene Muttersprachler anderer Sprachen haben mich darin bestärkt, dass Englisch die "Amtssprache" der Hackerkultur und des Internets ist, und dass man sie verstehen muss, um in der Hacker-Community bestehen zu können.

Um 1991 musste ich feststellen, dass viele Hacker, die Englisch als Fremdsprache sprechen, diese in technischen Diskussionen verwenden, auch wenn sie diese Diskussionen mit anderen Hackern führen, die die gleiche Sprache sprechen; zu der Zeit wurde mir berichtet, dass Englisch ein wesentlich größeres technisches Vokabular hat als jede andere Sprache und deshalb einfach ein besseres Werkzeug für diese Aufgabe sei. Aus diesem Grund sind Übersetzungen von technischen Büchern, die ursprünglich in Englisch geschrieben wurden, meistens unzulänglich (wenn sie überhaupt übersetzt werden).

Linus Torvalds, ein Finne, kommentiert seinen Quellcode in Englisch (er kam wohl nie auf die Idee es anders zu tun). Sein flüssiges Englisch war ein wichtiger Faktor bei seinem Erfolg, eine weltweite Gemeinschaft von Entwicklern für Linux zu rekrutieren. Das ist ein Beispiel, dem es wert ist zu folgen.

Englisch als Muttersprache zu haben, garantiert dir nicht, dass deine Sprachfertigkeiten für einen Hacker gut genug sind. Wenn deine Texte halbwahr, grammatikalisch falsch, und voller Tippfehler sind, dann werden es viele Hacker (mich eingeschlossen) wahrscheinlich ignorieren. Obwohl schlampiges Schreiben nicht immer schlampiges Denken bedeutet, haben wir dennoch einen starken Zusammenhang festgestellt und wir haben keine Verwendung für schlampige Denker. Wenn Du bisher nicht in der Lage bist kompetent zu schreiben, dann lerne es.


hacker emblem

Status in der Hacker-Gemeinschaft

1. Schreibe Open-Source Software
2. Hilf mit, Open-Source Software zu testen und Fehler zu finden
3. Veröffentliche nützliche Informationen
4. Hilf mit, die Infrastruktur am Leben zu halten
5. Hilf der Hacker-Kultur

Wie in den meisten Kulturen ohne Geldwirtschaft basiert die Hackergemeinde auf dem Ruf und Ansehen der Mitglieder. Du versuchst interessante Probleme zu lösen, aber wie interessant und wie gut deine Lösungen wirklich sind, entscheiden nur diejenigen, die Dir ebenbürtig oder überlegen sind.

Folglich, wenn Du das Hacker-Spiel spielst, wirst Du lernen, hauptsächlich auf Grund der Achtung und der Haltung der anderen Hacker gegenüber Deinen Fertigkeiten, Dich einzuschätzen (deshalb bist Du auch kein Hacker, solange andere Hacker Dich nicht so nennen). Diese Tatsache wird durch das Bild des Hackers als Einzelgänger und einem Tabu der Hacker-Kultur, dass das Ego oder Wertschätzung von anderen Menschen überhaupt in irgendeiner Weise einen Einfluß auf die Motivation eines Einzelnen haben könnten (seit dem Ende der 90er Jahre allmählich abflauend, aber immer noch existent), getrübt.

Besonders die Hacker-Gemeinde ist das, was die Antropologen eine gift culture (Schenkkultur) nennen. Status und Anerkennung können in ihr weder durch Beherrschung von anderen Menschen noch durch Schönheit, Besitz usw. erreicht werden, sondern nur, indem man Dinge freiwillig weggibt. Genaugenommen, indem Du deine Zeit, Kreativität und Ergebnisse deiner Fähigkeiten mit anderen Menschen teilst.

Hier eine Liste der 5 Dinge, die Du tun kannst, um Dir den Respekt der Hacker zu verdienen:

1. Schreibe Open-Source Software, die jeder frei benutzen kann.

Der erste (zentralste und traditionellste) Punkt besteht darin, Programme zu schreiben, welche andere Hacker als nützlich und/oder unterhaltsam ansehen. Stelle die Quellen dieser Programme der gesamten Hacker-Kultur zur Verfügung.

(Gewöhnlich nannten wir diese Arbeiten "Freie Software", aber dieser Begriff verwirrte zu viele Menschen, die sich nicht sicher waren, was "frei" in diesem Zusammenhang bedeuten sollte. Die meisten von uns bevorzugen mittlerweile den Begriff "Open-Source" Software).

Die höchst verehrten Halbgötter der Hackergemeinde sind diejenigen, die große und fähige Programme geschrieben haben, welche ein weitverbreitetes Bedürfnis decken, und sie danach zur freien Nutzung bereitgestellt haben, so dass jeder sie jetzt benutzen kann.

Aber da gibt es noch ein kleines geschichtliches Detail. Während die Hacker immer zu den Open-Source Entwicklern aufgesehen haben, als härtesten Kern der Gemeinschaft, haben die meisten Hacker bis zur Mitte der 90er Jahre die meiste Zeit an Closed-Source Software gearbeitet. Das galt auch noch 1996 als ich die erste Version dieses Howto verfasst habe; es brauchte die stärkere Verbreitung von Open-Source Software nach dem Jahr 1997 um diese Dinge zu ändern. Heute sind "die Hacker-Gemeinschaft" und "Open-Source Entwickler" zwei Beschreibungen für im Wesentlichen gleiche Kultur und Bewegung – aber man sollte nie vergessen, dass das nicht immer so war.

2. Hilf mit, Open-Source Software zu testen und Fehler zu finden

Sie achten auch Personen, die Fehler in Open-Source Software suchen und beheben. In dieser unvollkommenen Welt verbringen wir zwangsläufig die meiste Zeit mit der Fehlersuche. Das ist der Grund, warum jeder Autor von Open-Source Software, der noch bei Sinnen ist, Dir bestätigen wird, dass ein guter Beta-Tester ( der weiß, wie man Symptome präzise beschreibt, Fehlerquellen lokalisiert, Fehler einer frühen Version toleriert und bereit ist, ein paar Test-Durchläufe zu machen) mehr wert ist als sein Gewicht in Gold aufgewogen. Sogar ein einzelner Beta-Tester ist manchmal genug um einen erschöpfenden, langatmigen Alptraum in eine lehrreiche Fehlersuche zu verwandeln, die kaum noch ein ärgernis darstellt.

Wenn Du ein Newbie bist, versuche, ein in der Entwicklung steckendes Programm zu finden, welches Dich interessiert, und versuche, ein guter Beta-Tester zu sein. Es ist ein natürlicher Prozess vom Testen eines Programmes, zum Helfen bei der Fehlerbehebung und zum Helfen beim Verändern eines Programmes. Du wirst eine Menge daraus lernen und jede Menge gutes Karma bei den Leuten erzeugen, denen Du geholfen hast und die Dir später auch helfen werden.

3. Veröffentliche nützliche Informationen

Eine andere gute Sache ist es, interessante und nützliche Informationen zu sammeln, zu filtern und diese in Form von Web-Seiten oder FAQs (Frequent Asked Questions – Häufig gestellte Fragen) allgemein verfügbar zu machen.

Betreuer von großen, technischen FAQs sind fast so hoch angesehen wie Open-Source-Autoren.

4. Hilf mit die Infrastruktur am Leben zu halten

Die Hacker-Kultur (und die technische Weiterentwicklung des Internets insbesondere) lebt von der Arbeit von Freiwilligen. Es gibt einen Haufen notwendiger, aber glanzloser Arbeit, die getan werden muß, damit alles weiter gehen kann – Leiten von Mailing-Listen, Moderieren von Newsgroups, Warten von großen Software-Archiven, Entwickeln von RFCs und anderen technischen Standards.

Leuten, die diese Art von Arbeit gut machen, wird viel Respekt entgegengebracht, weil jeder weiß, dass diese Arbeiten Zeit in großen Massen verschlingen und wohl kaum so viel Spaß machen wie mit Programmcode zu spielen. Diese Arbeit zu tun erfordert echte Hingabe.

5. Hilf der Hacker-Kultur

Letztendlich kannst Du helfen, indem Du die Hackergesellschaft propagierst (indem Du z.B. genaue Anleitungen schreibst, wie man ein Hacker werden kann :-)). Dies ist etwas, zu dem Du erst in der Lage sein wirst, wenn Du schon eine Weile dabei und bekannt für eine der ersten vier Dinge geworden bist.

Die Hackerkultur kennt keine Anführer, aber es gibt Helden der Kultur und Stammesälteste und Geschichtsschreiber und Sprecher. Wenn Du lange genug im Schützengraben lagst, mag es sein, dass Du in eine dieser Positionen hinein wächst. Achtung: Hacker mißtrauen zu viel offensichtlichem Selbstbewußtsein bei ihren Oberen, weshalb es gefährlich ist, offenkundig nach diesem Ruhm zu streben. Anstatt dafür zu kämpfen, solltest Du Dich lieber so anstellen, dass er Dir ganz von selbst in den Schoß fällt, und dann sei bescheiden und dankbar für deinen Status.


hacker emblem

Die Hacker/Nerd-Verbindung

Aller landläufigen Meinung zum Trotz musst Du kein Nerd sein, um ein Hacker zu sein (Anmerkung des Übersetzers: Nerd ist eine Art Computer-Fanatiker, der sich total von der Außenwelt abschirmt, Computerfreak ist vielleicht die beste Übersetzung). Warum auch immer, es hilft, und viele Hacker sind in der Tat Nerds. Eine Art von sozialem Außenseiter zu sein kann Dir helfen, Dich auf die wichtigen Dingen wie Hacken und Denken zu konzentrieren.

Aus diesem Grund benutzen viele Hacker die Bezeichnung "Geek" für sich selbst wie eine Art von stolzer Auszeichnung – es bedeutet für sie oft die Unabhängigkeitserklärung vom sozialen Normalbild der Alltagsgesellschaft (genauso wie die Vorliebe von Hackern für andere Dinge wie z.B. Science-Fiction und Strategiespiele). Die Bezeichnung "Nerd" wurde früher in den 1990er Jahren benutzt, als "Nerd" eine leicht abschätzige und "Geek" eine sehr herbe Bezeichnung war. Um das Jahr 2000 herum wechselten die beiden Begriffe ihren Platz, zumindest in den USA und mittlerweile gibt es eine signifikante Anzahl von Menschen, die sich selbst als "Geeks" bezeichnen, aber keinen direkten Bezug zur Technik haben.

Wenn Du es schaffst, Dich genug aufs Hacken zu konzentrieren, darin gut zu sein und auch noch ein normales Leben zu führen, ist das natürlich super. Dies ist heute viel einfacher als es war, als ich damals 1970 ein Newbie war; die Alltagskultur ist heute viel freundlicher zu Technik-Nerds, als sie es damals war. Es gibt sogar eine steigende Anzahl von Menschen, die bemerken, dass Hacker oft hochqualitatives Material für einen Lebenspartner abgeben.

Wenn Du hacken möchtest, weil Du kein Leben oder keinen Sinn im Leben hast, ist das auch in Ordnung – Du wirst wenigstens nie das Problem haben, dass Du Dich nicht mehr konzentrieren kannst. Vielleicht wirst Du später deinen Zugang zum Leben, vielleicht sogar durchs Hacken, finden.


hacker emblem

Fragen des Stils

Nochmal, um ein Hacker zu sein, musst Du die Gedankenwelt der Hacker betreten. Es gibt ein paar Sachen, die Du tun kannst, wenn Du keinen Zugang zu einem Computer hast. Sie sind kein Ersatz für das Hacken (es gibt nichts, was wirklich ein Ersatz wäre), aber viele Hacker tun sie und haben das Gefühl, dass diese Dinge eine Art besitzen, die sie dem Hacken verwandt macht.

Je mehr Du von diesen Dingen bereits tust, desto wahrscheinlicher ist es, dass Du von Natur aus ein Hacker bist oder dafür veranlagt bist. Warum es gerade diese Dinge sind, ist bis heute nicht genau geklärt, aber sie scheinen mit einer Kombination aus Denkprozessen der rechten und linken Gehirnhälfte zu tun zu haben, welche wichtig zu sein scheinen; Hacker sind gezwungen, sowohl logisch zu begründen als auch in der Lage zu sein, aus der unmittelbaren Logik der momentanen Betrachtung des Problems auszuscheren.

Arbeite so intensiv, wie Du spielst und spiele so intensiv, wie Du arbeitest. Für echte Hacker scheint die Grenze zwischen "Spiel", "Arbeit", "Wissenschaft" und "Kunst" zu verschwinden, oder sie verschmelzen zu einer höherwertigen Spielerei. Deshalb beschränke Dich nicht auf eine kleine Auswahl von Fähigkeiten. Obwohl die meisten Hacker sich selbst als Programmierer bezeichnen, sind sie in den meisten Fällen mehr als kompetent in mehreren verwandten Fähigkeiten – Systemadministration, Webdesign und PC-Hardware-Problembehebung sind die bekanntesten. Ein Hacker, der als Systemadministrator arbeitet, ist auf der anderen Seite meistens ein fähiger Skriptprogrammierer und Webdesigner. Hacker machen keine halben Sachen; wenn sie Zeit in eine Fähigkeit investieren, dann wollen sie darin auch sehr gut werden.

Schließlich noch ein paar Dinge, welche Du nicht tun solltest:

Das Einzige, was man Dir zuteil machen wird, ist Spott, wenn Du Dich so verhältst. Hacker vergessen nicht so schnell – es könnte Jahre dauern, bis Du es wieder ausgeglichen hast und akzeptiert wirst.

Das Problem mit Benutzer- und Spitznamen bedarf einer näheren Erklärung. Das Verstecken Deiner Indentität hinter einem Spitzname ist ein kindisches und dummes charakteristisches Verhalten von Crackern, warez doodez, Haxorz und anderen niedrigen Lebensformen. Hacker tun dies nicht; sie sind stolz auf das, was sie tun, und wollen damit mit ihrem realen Namen in Verbindung gebracht werden. Falls Du einen Spitznamen hast, dann wirf ihn weg. In der Hacker-Kultur wird es Dich nur als Verlierer kennzeichnen.


hacker emblem

Zusätzliche Quellen

Paul Graham hat einen Aufsatz mit dem Titel Great Hackers veröffentlicht, und einen weiteren Undergraduation in dem er viel Wahres schreibt.

Peter Seebach wartet ein exzellentes Hacker FAQ für Manager, die endlich mal wissen wollen, wie sie mit Hacker umgehen sollten. Wenn Peters Seite nicht antwortet, dann solltest Du hier Excite search eine Kopie finden.

Es gibt ein Dokument, das How To Be A Programmer heißt und ein exzellentes Gegenstück zu diesem hier ist. Es gibt wertvolle Hinweise nicht nur zum Thema Programmieren und Programmierfähigkeiten, sondern auch darüber, wie man in einem Team von Programmierern zu funktionieren hat.

Ich habe außerdem A brief History of Hackerdom geschrieben.

Ich habe einen Aufsatz geschrieben, Die Kathedrale und der Basar, der erklärt, wie die Linux- und OpenSource-Kultur arbeitet. In dessen Nachfolgedokument Homesteading the Noosphere bin ich noch direkter auf dieses Thema eingegangen.

Rick Moen hat ein exzellentes Dokument zu dem Thema Wie leite ich eine Linux User Group(LUG) verfasst.

Rick Moen und ich haben zusammen Wie stellt man klevere Fragen geschrieben. Dieses Dokument wird Dir dabei helfen, Unterstüzung so zu suchen, dass Du sie auch wirklich bekommst.

Wenn Du grundlegende Dinge wissen möchtest, wie Computer, Unix und das Internet arbeiten, dann schau Dir The Unix and Internet Fundamentals HOWTO an.

Wenn Du Software oder Patches für Software veröffentlichen möchtest, dann versuche dich, an diesen Richtlinien, den Software Release Practice HOWTO, zu orientieren.

Wenn Dir das Zen Gedicht gefallen hat, dann interessiert dich vielleicht Rootless Root: The Unix Koans of Master Foo.


hacker emblem

Häufig gestellte Fragen

Q:. Woher weiß ich, ob ich schon ein Hacker bin?
Q:. Wirst Du mir beibringen, wie man hackt?
Q:. Wie kann ich denn sonst anfangen?
Q:. Wann soll ich anfangen? Ist es schon zu spät um es zu lernen?
Q:. Wie lange wird es dauern, bis ich gelernt habe wie man hackt?
Q:. Ist Visual Basic eine gute Programmiersprachen um anzufangen?
Q:. Würdest Du mir helfen, ein System zu cracken, oder mir beibringen, wie man ein System hackt?
Q:. Wie komme ich an das Passwort eines anderen Benutzers?
Q:. Wie kann ich die Emails eines anderen Benutzers lesen?
Q:. Wie kann ich Channel Op im IRC bekommen?
Q:. Ich wurde gecrackt. Wirst Du mir helfen, damit das in Zukunft nicht mehr passiert?
Q:. Ich habe Probleme mit meiner Windows-Software. Wirst Du mir helfen?
Q:. Wo kann ich echte Hacker finden, um mit ihnen zu reden?
Q:. Kannst Du mir brauchbare Bücher empfehlen, die mit Hacken zu tun haben?
Q:. Muss ich gut in Mathematik sein um ein Hacker zu werden?
Q:. Welche Sprache sollte ich zuerst lernen?
Q:. Welche Hardware brauche ich?
Q:. Ich möchte etwas beitragen. Kannst Du mir dabei helfen, ein Problem zu finden an dem ich arbeiten kann?
Q:. Muss ich Microsoft hassen und schädigen?
Q:. Hindert Open-Source nicht Programmierer daran ihren Lebensunterhalt zu verdienen?
Q:. Woher bekomme ich eine freie Unix-Version?
F:.

Woher weiß ich, ob ich schon ein Hacker bin?

A:.

Stelle dir selbst die folgenden drei Fragen:

  • Sprichst Du eine Programmiersprache fließend?

  • Identifizierst du dich mit den Zielen und Werten der Hacker-Gemeinschaft?

  • Wurdest du von einem etablierten Mitglied der Hacker-Gemeinschaft schon jemals als Hacker bezeichnet?

Wenn du diese drei Fragen alle mit ja beantworten kannst, dann bist du bereits ein Hacker. Zwei von den drei sind nicht ausreichend.

In der ersten Frage geht es um Fachwissen. Du schaffst diesen Test eventuell, wenn du ein Minimum des technischen Fachwissens besitzt, das weiter oben in diesem Dokument beschrieben wurde. Dieser Test ist absolut einfach, wenn bereits eine nennenswerte Menge von deinem Code von einem Open-Source Projekt akzeptiert wurde.

In der zweiten Frage geht es um deine Einstellung. Wenn die fünf Prinzipien des Hacker Gedankenguts offensichtlich für dich sind, mehr in der Art einer Beschreibung der Art und Weise wie du bereits lebst als etwas Neues, dann bist du bereits auf dem halben Weg zu bestehen. Das ist die eine Hälfte; die andere Hälfte ist der Grad deiner Identifikation mit den langfristigen Projekten der Hacker-Gemeinschaft.

Hier ist eine unvollständige, aber beispielhafte Liste von ein paar solcher Projekte: Ist es wichtig für dich, dass Linux besser wird und sich verbreitet? Bist du begeistert wenn es um Software Freiheit geht? Feindselig gegenüber Monopolen? Handelst du nach dem Grundsatz, dass der Computer ein Instrument ist, das die Macht hat, die Welt reicher und menschenfreundlicher zu machen?

Aber ein Warnhinweis ist hier durchaus angebracht. Die Hacker-Gemeinschaft hat ein paar spezielle, im Wesentlichen defensive politische Interessen – zwei davon sind zum einen die Verteidigung der Meinungsfreiheit und zum Anderen die Bekämpfung von &qout;Intellektuellem Eigentum&qout;. Zwei Punkte, die Open Source illegal machen. Einige dieser Langzeitprojekte sind Gesellschaften Bürgerlichen Rechts wie z.B. die Electronic Frontier Foundation, die nach Außen sichtbare Einstellung beinhaltet Unterstützung dafür. Darüber hinaus sehen Hacker die Versuche die Hacker Einstellung in ein konkretes politisch Programm zu fassen mit Argwohn. Wir haben auf die harte Art gelernt, dass diese Versuche zur Zersplitterung und Desinteresse führen. Wenn jemand versucht, Dich im Namen der Hackergesinnung für einen Marsch auf das Kapitol zu rekrutieren, dann hat er etwas nicht verstanden. Die richtige Antwort darauf ist möglicherweise –Halt den Mund und zeige ihnen den Code.

Die dritte Frage beinhaltet eine kniffelige Rekursion. Ich habe in dem Abschnitt &qout;Was ist ein Hacker?" beobachtet, dass ein Hacker sein auch zum Teil auch eine Frage von Zugehörigkeit zu einer bestimmten Subkultur oder einem sozialen Netzwerk mit einer gemeinsamen Geschichte. Vor langer Zeit waren Hacker eine nicht so geschlossene und selbstbewusste Gruppe, wie sie es heute sind. Aber die Wichtigkeit des Aspektes von sozialen Netzwerken hat über die letzten dreißig Jahre zugenommen, da das Internet es einfacher gemacht hat Verbindungen mit dem Kern der Hacker Subkultur zu Entwickeln und zu Pflegen. Ein einfacher Hinweis auf diese änderung ist, dass wir in diesem Jahrhundert unsere eigenen T-Shirts besitzen.

Soziologen, die Netzwerke wie die Hacker-Gemeinde unter der Rubrik &qout;unsichtbare Schule&qout; untersuchen, haben festgestellt, dass ein Merkmal dieser Netzwerke ist, dass sie Türsteher haben – Kernmitglieder, die über die soziale Autorität verfügen, neue Mitglieder in das Netzwerk aufzunehmen. Aufgrund der Tatsache, dass die Hacker-Gemeinschaft eine &qout;unsichtbare Schule&qout;darstellt, die lose und informell ist, hat auch der Türsteher eine informelle Rolle. Aber eine Sache, die allen Hackern in den Knochen steckt, ist das Wissen, dass nicht jeder Hacker ein Türsteher ist. Türsteher müssen ein gewisses Dienstalter erreicht und eine gewisse Leistung erbracht haben, bevor sie diesen Titel verliehen bekommen. Wie viel das ist, ist schwer zu sagen, aber jeder Hacker wird es wissen, wenn er es sieht.

F:.

Wirst Du mir beibringen, wie man hackt?

A:.

Seit der ersten Veröffentlichung dieser Seite habe ich jede Woche mehrere Anfragen (oft mehrere am Tag) von Leuten bekommen, die mich bitten "bring mir alles übers Hacken bei". Unglücklicherweise habe ich weder genug Zeit, noch Energie dafür. Meine eigenen Hacker-Projekte und die Arbeit als Open-Source-Botschafter verbrauchen 110% meiner Zeit.

Selbst wenn ich Zeit und Muße hätte, Hacken ist eine Einstellung und eine Fertigkeit, die Du Dir einfach selbst beibringen musst. Du wirst herausfinden, dass echte Hacker bereit sind, Dir zu helfen, Du darfst nur nicht erwarten, dass sie Dich respektieren, wenn Du darum bettelst, all ihr Wissen mit dem Löffel gefüttert zu bekommen.

Lerne zuerst ein paar Dinge. Zeig, das Du es wirklich versuchst, zeig, dass Du wirklich fähig bist, selbständig zu lernen. Dann gehe zu den den Hackern, die Du triffst, und stelle ihnen konkrete Fragen.

Wenn Du einem Hacker eine Email schreibst, um ihn um Rat zu fragen, dann sage ich Dir hier zwei Dinge, die Du wissen musst. Erstens: Wir haben herausgefunden, dass Leute, die zu bequem und nachlässig beim Schreiben sind, normalerweise auch zu bequem und nachlässig zum Nachdenken sind, als dass sie gute Hacker werden könnten – deshalb achte darauf, dass Du korrekt schreibst, und benutze richtige Grammatik und Interpunktion. Andernfalls kann es passieren, dass Du ignoriert wirst. Zweitens: Wage es nicht mal danach zu fragen, ob die Antwort an eine andere Email-Adresse geschickt werden kann, als die, von der Du die Mail geschickt hast. Wir halten solche Leute, die so etwas tun, im Allgemeinen für Diebe, die gestohlene Benutzerkonten benutzen, und wir haben kein interesse daran, Diebstahl zu unterstützen.

(Anmerkung des Übersetzers: Bitte fragt auch mich nicht, wie man ein Hacker wird, 1. bin ich keiner, 2. bin ich schon dabei, alles, was ich über Computer und Programmierung weiß, hier auf diesen Seiten zu veröffentlichen.)

F:.

Wie kann ich denn sonst anfangen?

A:.

Der beste Weg um anzufangen ist sicherlich, wenn Du zu einem Treffen einer Linux User Group (LUG) gehst. Du kannst eine solche Gruppe hier LDP General Linux Information Page finden. Möglicherweise gibt es sogar eine ganz in Deiner Nähe, möglicherweise in Deiner Universität oder Hochschule. Die Mitglieder der LUG können dir sicher eine Linux-Version geben, wenn Du danach fragst, und helfen Dir auch dabei, es zu installieren und zum Laufen zu bekommen.

F:.

Wann soll ich anfangen? Ist es schon zu spät, um es zu lernen?

A:.

Jedes Alter, in dem Du motiviert bist anzufangen, ist das richtige Alter. Die meisten Leute scheinen im Alter von 15 bis 20 Jahren zu beginnen, aber ich kenne Ausnahmen in beide Richtungen.

F:.

Wie lange wird es dauern, bis ich gelernt habe wie man hackt?

A:.

Das hängt zum einen von Deinem Talent und zum anderen davon ab, wie hart Du arbeitest. Die meisten Leute die es versuchen erreichen respektable Fähigkeiten innerhalb von achtzehn Monaten bis zwei Jahre, wenn sie konzentriert daraufhin arbeiten. Aber glaube nicht, dass es da aufhört, denn beim Hacken (wie auch in vielen anderen Bereichen) braucht man zehn Jahre um Perfektion zu erlangen. Und wenn Du ein echter Hacker bist, wirst Du den Rest Deines Lebens damit verbringen zu lernen und deine Fähigkeiten zu perfektionieren.

F:.

Ist Visual Basic eine gute Programmiersprachen um anzufangen?

A:.

Wenn Du so eine Frage stellst, ist meistens klar, dass Du versuchst, unter Windows zu hacken. Das ist für sich genommen schon eine schlechte Idee. Ich habe nicht gescherzt, als ich den Versuch, unter Windows zu hacken wollen, damit verglichen habe zu versuchen, mit einem Gipsverband tanzen lernen zu wollen. Mach das nicht. Es ist hässlich und es hört nicht auf hässlich zu sein.

Es gibt ganz bestimmte Probleme mit Visual Basic; hauptsächlich, dass sie nicht portabel ist. Obwohl es Prototypen von OpenSource-Implementierungen dieser Sprache gibt, decken die benutzbaren ECMA Standards nicht mehr als einen kleinen Teil ihres Programmier-Interfaces (API). Unter Windows ist die Unterstützung der meisten Bibliotheken proprietär an einen Hersteller gebunden (Microsoft); wenn Du nicht extrem vorsichtig bist – vorsichtiger als ein Anfänger normalerweise fähig ist zu sein – wirst Du auf den Plattformen gefangen sein, die Microsoft bereit ist zu unterstützen. Wenn Du Dich mit Unix beschäftigst, bekommst Du bessere Programmiersprachen mit besseren Bibliotheken. Zum Beispiel Python.

Ebenso wie auch andere Basic-Dialekte ist Visual Basic eine einfach entworfene Sprache, die schlechte Programmierpraktiken lehrt. Nein, bitte mich nicht, diese im Detail zu erklären. Diese Erklärungen würden Bücher füllen. Lerne lieber eine sauber konzipierte Sprache.

Eine dieser schlechten Eigenschaften ist die Abhängigkeit von Bibliotheken, Widgets und Entwicklungswerkzeugen eines einzelnen Herstellers. Im Allgemeinen ist jede Programmiersprache, die nicht unter Linux oder einem der BSDs und/oder wenigsten von drei verschiedenen Betriebssystemherstellern voll unterstüzt wird, eine Sprache, die es sich nicht zu lernen lohnt um darin zu hacken.

F:.

Würdest Du mir helfen, ein System zu cracken, oder mir beibringen, wie man ein System hackt?

A:.

Nein. Jeder der solch eine Frage stellt, nachdem er diese FAQ gelesen hat, ist zu dumm, um etwas gelehrt zu bekommen, selbst wenn ich die Zeit hätte zu lehren. Jede Email mit solch einer Frage wird entweder ignoriert oder sehr rüde beantwortet.

F:.

Wie komme ich an das Passwort eines anderen Benutzers?

A:.

Das ist cracken. Geh weg, Idiot.

F:.

Wie kann ich die Emails eines anderen Benutzers lesen?

A:.

Das ist cracken. Verschwinde, Depp.

F:.

Wie kann ich Channel Op im IRC bekommen?

A:.

Das ist cracken. Hinfort, Cretin.

F:.

Ich wurde gecrackt. Wirst Du mir helfen, damit das in Zukunft nicht mehr passiert?

A:.

Nein. Jedes mal, wenn jemand mit dieser Frage bisher zu mir kam, stellte sich heraus, dass er ein armer Kerl war, der Microsoft Windows benutzt hat. Es ist nicht möglich, ein Windowssystem effektiv gegen Crackerangriffe zu schützen. Der Code und die Architektur haben einfach zu viele Schwächen. Der Versuch Windows sicher zu machen ist so, wie wenn man versuchen würde, mit einem Sieb das Wasser aus einem Boot zu schaufeln. Die einzige sichere Vorbeugung besteht darin, auf Linux oder ein anderes Betriebssystem zu wechseln, das so entworfen wurde, dass Sicherheit möglich ist.

F:.

Ich habe Probleme mit meiner Windows-Software. Wirst Du mir helfen?

A:.

Ja. Wechsle in den DOS-Modus und tippe "format C:". Alle Probleme, die Du hattest, werden innerhalb weniger Minuten verschwunden sein.

F:.

Wo kann ich echte Hacker finden, um mich mit ihnen zu unterhalten?

A:.

Der beste Weg ist es, eine UNIX- oder Linux-Benutzergruppe in deiner Nähe zu finden und zu ihren Treffen zu gehen (es gibt ein Verzeichnis unter LDP).

(Früher sagte ich hier immer: Du wirst im IRC (Internet Relay Chat) keine echten Hacker finden, aber ich muss zugeben, dass sich das geändert hat. Mittlerweile gibt es einige richtige Hacker-Gemeinschaften, die sich mit Dingen wie GIMP oder Perl befassen und eigene IRC-Kanäle betreiben.)

F:.

Kannst Du mir brauchbare Bücher empfehlen, die mit Hacken zu tun haben?

A:.

Ich verwalte ein Linux Reading List HOWTO, das Dir vielleicht weiter hilft. Das Loginataka könnte ebenfalls interessant für Dich sein.

Eine Einführung in Python findest Du unter Einführungen auf der Python-Seite.

F:.

Muss ich gut in Mathematik sein, um ein Hacker zu werden?

A:.

Nein. Hacken benötigt sehr wenig formale Mathematik oder Arithmetik. Insbesondere brauchst Du normalerweise keine Trigonometrie oder Analysis (Ausgenommen eine handvoll von speziellen Anwendungen für Bereiche wie z.B. 3-D Computergraphik). Kenntnisse in formaler Logik und Bool'scher Algebra sind gut. Einige Grundlagen der finiten Mathematik (einschließlich Finite Elemente, Kombinatorik und Graphentheorie) können aber hilfreich sein.

Wesentlich wichtiger: Du solltest in der Lage sein logisch zu denken und Argumentationsketten zu folgen, wie es Mathematiker tun. Auch wenn Dir der Inhalt der meisten Mathematik nicht weiter hilft, wirst Du Disziplin und Intelligenz brauchen, um mit dieser Mathematik umzugehen. Wenn Dir diese Intelligenz fehlt, gibt es für Dich wenig Hoffnung, ein Hacker zu werden. Wenn Dir die Disziplin fehlt, dann erarbeite sie Dir.

Ich denke, ein guter Weg um herauszufinden, ob Du hast, was man braucht, ist das Buch What Is The Name Of This Book? von Raymond Smullyan. Smullyans spielerische Logikrätsel entsprechen sehr dem Hacker-Geist. Wenn man in der Lage ist, diese Rätsel zu lösen, ist das ein gutes Zeichen; wenn man es genießt, diese Rätsel zu lösen ist das ein noch besseres Zeichen.

F:.

Welche Sprache sollte ich als erste lernen?

A:.

XHTML (den neusten Dialekt von HTML), wenn Du es nicht bereits kannst. Es gibt Unmengen an bunten, hype-intensiven schlechten HTML-Büchern da draußen, und besorgniserregend wenig gute. Ich empfehle: HTML: The Definitive Guide. (Anmerkung des Übersetzers: Oder Online unter Selfhtml.)

HTML ist keine vollwertige Programmiersprache. Wenn Du bereit bist, mit echter Programmierung zu beginnen, würde ich empfehlen, mit Python zu beginnen. Du wirst von vielen Leuten den Rat hören, mit Perl zu beginnen, und Perl ist populärer als Python, aber es ist schwerer zu lernen und (meiner Meinung nach) weniger gut entworfen.

C ist sehr wichtig, ist aber auch sehr viel schwerer als Python oder Perl. Versuche nicht damit zu beginnen.

Windowsbenutzer sollten nicht auf Visual Basic setzen. Es lehrt Dich schlechte Angewohnheiten und man kann es nicht auf andere Plattformen portieren. Vermeide es.

F:.

Welche Hardware brauche ich?

A:.

Es gab eine Zeit, in der PC nicht sehr leistungsfähig waren und wenig Arbeitsspeicher hatten, so wenig, dass sie dem Hacker künstliche Grenzen in seinem Lernprozeß aufzwangen. Das ist seit Mitte der 90er Jahre nicht mehr so; eine Maschine der Größenordnung Intel 486DX50 ist leistungsfähig genug für Softwareentwicklung, X sowie einen Internetzugang, und selbst die kleinsten Festplatten, die man heute zu kaufen bekommt, bieten ausreichend Platz.

Das entscheidende Kriterium bei der Auswahl eines Computers ist, ob dessen Hardware Linux-kompatibel (oder BSD-kompatibel, falls Du Dich für diesen Weg entscheidest) ist. Nochmal, das Gesagte gilt für fast alle modernen Computer. Der einzige richtig problematische Bereich sind Modems und WLAN-Karten. Einige Computer werden mit Windows-spezifischer Hardware geliefert, die unter Linux nicht läuft.

Es gibt eine Hardware-Kompatibilitäts-FAQ; die aktuellste Version gibt es hier.

F:.

Ich möchte etwas beitragen. Kannst Du mir dabei helfen, ein Problem zu finden an dem ich arbeiten kann?

A:.

Nein, denn ich kenne weder Deine Talente noch Deine Interessen. Du musst selbst motiviert sein oder Du wirst nicht lange dabei bleiben. Das ist der Grund, warum es meistens nicht funktioniert, wenn andere Leute Dir Deine Richtung vorgeben sollen.

Probiere folgendes: Beobachte die Projekt-Ankündigungen bei Freshmeat für ein paar Tage. Wenn Du eines entdeckst, wo du denkst "Cool! Daran möchte ich mitarbeiten!", dann beteilige Dich.

F:.

Muss ich Microsoft hassen und schädigen?

A:.

Nein, musst Du nicht. Nicht dass Microsoft nicht widerlich wäre, aber die Hacker-Kultur gab es lange vor Microsoft und wird noch da sein, wenn Microsoft bereits Geschichte ist. Jede Energie, die Du verbrauchst, um Microsoft zu hassen, ist besser genutzt, wenn Du Deine Fähigkeiten liebst. Schreibe guten Code – das schadet Microsoft mehr als genug, ohne Dein Karma zu verschmutzen.

F:.

Hindert Open-Source nicht Programmierer daran ihren Lebensunterhalt zu verdienen?

A:.

Das ist unwahrscheinlich – es ist wohl eher so, dass die Open-Source Softwareindustrie eher Jobs schafft anstatt sie wegzunehmen. Wenn ein geschriebenes Programm ökonomisch einen Gewinn erbringt, wird ein Programmierer bezahlt werden, ganz egal, ob das Programm als Open-Source veröffentlicht wird oder nicht. Und unabhängig davon wieviel "freie" Software geschrieben wird, es wird immer einen Bedarf an neuer und angepasster Software geben. Zu diesem Thema habe ich auf den Open Source Seiten geschrieben.

F:.

Woher bekomme ich eine freie UNIX-Version?

A:.

Wenn du noch kein Unix auf deiner Maschine installiert hast, dann habe ich auf dieser Seite einige Hinweise eingebaut, wie man an das meist genutzte freie Unix rankommt. Um ein Hacker zu sein, brauchst Du Motivation, Initiative, sowie die Eigenschaft eigenständig zu lernen. Fang jetzt an...


hacker emblem
< ©2000-2009 Sven Bergner >
Hacker Emblem Valid CSS! Valid XHTML 1.0! Best viewed with any browser. pgp now


Mountain Dew