SelfLinux Programmierung Programmierung unter Linux Abschnitt 5 | SelfLinux-0.13.0

| Programmierung unter Linux | Autor Formatierung GFDL

#### 5 Wo anfangen?

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!