Hierzu sei Eric S. Raymond zitiert, der den Weg zum Hacker (wem das zu
verwegen klingt, der ersetze sinngemäß: Meisterprogrammierer)
in seinem Text How To Become A Hacker
wie folgt skizziert:
Wenn man noch keine Computersprache kennt, empfehle ich, mit Python
anzufangen. Es hat ein sauberes Design, ist gut dokumentiert und recht
entgegenkommend für Anfänger: eine gute Einstiegssprache, aber
deswegen noch lange kein Spielzeug. Python ist sehr mächtig, flexibel
und gut geeignet für große Projekte. Ich habe eine eingehendere
Untersuchung über Python verfasst.
Gute Tutorials gibt es auf der Python-Website
oder hier.
Java ist auch eine gute Sprache, um damit programmieren zu lernen.
Sie ist schwieriger als Python, aber liefert schnelleren Code.
Nach meiner Meinung eine hervorragende zweite Sprache.
Zu Java gibt es ein komplettes deutsches Tutorial in Buchform mit dem Titel
"Java ist auch eine Insel" im Internet.
Aber Vorsicht! Man kann nicht die Fähigkeiten eines Hackers oder auch
nur eines Programmierers erreichen, wenn man nur eine oder zwei
Sprachen kennt - vielmehr muss man lernen, über Programmierprobleme in
einer recht allgemeinen Weise zu denken, unabhängig von einer Sprache.
Um ein richtiger Hacker zu werden, muss man es so weit bringen, dass
man eine neue Sprache innerhalb von Tagen lernen kann, indem man das,
was im Handbuch steht in Beziehung bringt zu dem, was man bereits
weiß. Das bedeutet, dass man etliche grundverschiedene Sprachen lernen
sollte.
Um richtig ernsthaft zu programmieren, muss man
C lernen, die zentrale
Sprache von UNIX. C++ ist nah verwandt zu C; wenn man das eine kennt,
wird es nicht schwer fallen, das andere zu lernen. Keine der beiden
Sprachen jedoch ist eine gute Wahl, um sie als erstes zu lernen.
Tatsächlich kann man produktiver arbeiten, je mehr man C vermeidet.
C ist sehr effizient, und sehr schonend mit den Ressourcen des
Rechners. Unglücklicherweise erreicht C diese Effizient, in dem es
einem abverlangt, einen großen Packen Low-Level-Management (z. B.
Speicherverwaltung) von Hand zu erledigen; dieser ganze Low-Level-Code
ist komplex und fehlerträchtig, und wird viel Zeit fürs Debuggen ( die Fehlersuche)
verschlingen. Mit heutigen Maschinen, so schnell wie sie sind, ist das
ungünstig - es ist besser, eine Sprache zu verwenden, die etwas
verschwenderischer mit der Rechenzeit umgeht, aber die Zeit des
Programmierers schont. Daher: Python.
Zu anderen Sprachen mit besonderer Wichtigkeit für Hacker gehören
Perl
und LISP.
Perl ist lernenswert aus praktischen Gründen: es ist weit verbreitet
bei aktiven Webseiten und bei der Systemadministration, so dass man
Perl verstehen lernen sollte, auch wenn man nie damit was schreibt.
Viele Leute verwenden Perl für den Zweck, für den ich Python
vorschlage: Vermeidung von C, wenn die Programmieraufgaben nicht die
Effizienz von C verlangen. Es wird sich als nötig erweisen, ihren Code
zu verstehen.
LISP ist aus einem anderen Grund lernenswert - die beeindruckende
Erfahrung der Erkenntnis, wenn man es schließlich verstanden hat.
Diese Erfahrung macht einen zu einem besseren Programmierer
für den ganzen Rest seines Lebens, selbst wenn man LISP selbst
kaum einsetzt.
In der Tat ist es das Beste, alle diese fünf Programmiersprachen zu lernen. Python,
Java, C/C++, Perl, und LISP. Nicht nur, dass sie die wichtigsten
Hackersprachen sind, sie verkörpern auch sehr unterschiedliche
Herangehensweisen ans Programmieren, und jede einzelne bringt
unschätzbare Erfahrungen.
Ich kann an dieser Stelle keine vollständige Instruktion geben, wie
man Programmieren lernt - es ist eine komplexe Fertigkeit. Aber ich
kann behaupten, dass es Bücher und Kurse nicht tun werden (viele,
vielleicht sogar die meisten der besten Hacker sind Autodidakten). Man
kann einzelne Features einer Sprache aus Büchern lernen, aber das
geistige Rüstzeug, das dieses Wissen in lebendige Fertigkeit umsetzt,
kann nur durch Übung und Lernen erworben werden. Was zu tun ist, ist
(a) Code zu lesen und (b) Code zu schreiben.
Programmieren lernen, ist wie eine natürliche Sprache beherrschen
lernen. Das Beste ist, ein bisschen was zu lesen, was von Meistern
der Disziplin geschrieben wurde, ein bisschen was selbst zu schreiben,
sehr viel mehr zu lesen, ein bisschen mehr zu schreiben, sehr viel
mehr zu lesen, etwas mehr zu schreiben... und das wiederholen, bis
die eigenen Schriftwerke die Kraft und Anmut bekommen, die man in den
Vorbildern erkennt.
Guten Code zu finden ist in der Vergangenheit schwierig gewesen, da
nur wenige große Programme im Quellcode vorlagen, den angehende Hacker
lesen oder damit herumspielen hätten können. Das hat sich gewaltig
verändert; Open-Source-Software, Programmierwerkzeuge und
Betriebssysteme, ausschließlich von Hackern aufgebaut, sind nun
allgemein verfügbar."
Das ist natürlich nur eine ungefähre Richtschnur. Man sollte im
Zweifelsfall einfach der eigenen Nase folgen und soviel davon lernen
wie man braucht, um die Arbeit, die man erledigen will, gut erledigen
zu können. Das wichtigste aber: nicht entmutigen lassen! Es ist
bekanntlich noch kein Meister vom Himmel gefallen. Mit dem
Programmieren verhält es sich im gewissen Sinne wie mit Schach: die
Regeln sind einfach, aber um wirklich Schach zu spielen, braucht es
viel Übung.
In diesem Sinne: Happy Hacking!
|