In “Teach Yourself Programming in Ten Years” schreibt Peter Norvig über sein Rezept für den Erfolg beim Programmieren. Stefan Ram – bei dem ich btw 2 C++ Kurse besucht habe – hat den Artikel als offizieller Übersetzer ins Deutsche übertragen.
Die Regeln möchte ich gerne zitieren, damit ich immer mal wieder drauf schauen kann : )
- Fangen Sie damit an, sich für Programmieren zu interessieren, und programmieren Sie etwas, weil es Ihnen Spaß macht! Stellen Sie sicher, dass es dauerhaft so viel Spaß macht, daß Sie dadurch mindestens zehn Jahre investieren wollen!
- Reden Sie mit anderen Programmierern: Lesen sie andere Programme! Das ist wichtiger als jedes Buch oder Seminar.
- Programmieren Sie! Die beste Art zu lernen ist learning by doing (Lernen durch Machen). Um es technischer zu sagen: “Das höchste Leistungsniveau auf einem bestimmten Gebiet erreichen Menschen nicht automatisch als Folge umfassender Erfahrung, aber das Leistungsniveau kann auch von sehr erfahrenen Personen durch entschlossenes Bemühens um Verbesserung gesteigert werden.” (Seite 366) und “Das effektivste Lernen verlangt eine wohlbestimmte Aufgabe eines einer bestimmten Person angemessenen Schwierigkeitsgrads, hilfreiche Rückmeldungen und Gelegenheiten zur Wiederholung und Korrektur von Fehlern.” (Seiten 20-21) Das Buch Cognition in Practice: Mind, Mathematics, and Culture in Everyday Life (Kognition in der Praxis: Geist, Mathematik und Kultur im Alltag) ist ein interessanter Beleg für diese Sichtweise.
- Wenn Sie wollen, verbringen Sie vier Jahre an der Hochschule oder mehr in einem Aufbaustudium. Das erlaubt ihnen den Zugang zu einigen Tätigkeiten, für die ein Studium verlangt wird und gibt Ihnen ein tieferes Verständnis des Gebiets, Falls Ihnen eine solche Ausbildung aber keinen Spaß macht, können Sie (mit etwas Bemühen) auch ähnliche Erfahrungen in einem Beruf machen. Jedenfalls wird es nicht reichen, aus Büchern zu lernen. “Die Informatik kann nicht aus jedem einen Programmierexperten machen, genausowenig wie das Studium von Pinseln und Pigmenten große Maler hervorbringen kann” sagt Eric Raymond, Autor von The New Hacker’s Dictionary (in “Das neue Computerspezialisten-Wörterbuch”). Einer der besten Programmierer, den ich jemals eingestellt hatte, hatte nur Abitur; Er hat viel großartige Software geschrieben, besitzt seine eigene Usenet-Gruppe und ist durch Aktienoptionen sicher viel reicher geworden als ich es jemals sein werde.
- Bearbeiten Sie Projekte gemeinsam mit anderen Programmierern! Seien Sie der beste Programmierer bei einigen Projekten, seien sie der schlechteste bei anderen! Wenn Sie der beste sind, dann probieren Sie aus, wie Sie Ihre Fähigkeiten bei der Leitung eines Projekts zeigen und wie Sie andere mit Ihren Visionen inspirieren können. Wenn Sie der schlechteste sind, lernen Sie was die Meister tun und Sie lernen, was sie nicht gerne tun (weil sie es von Ihnen erledigen lassen).
- Arbeiten Sie an Projekten nachdem andere Programmierer diese bearbeitet haben. Bemühen Sie sich um Verständnis eines Programms, das von jemand anders geschrieben wurde. Finden Sie heraus, was man braucht, um es zu verstehen, und reparieren Sie es, während der ursprüngliche Programmierer nicht da ist. Denken Sie darüber nach, wie Sie Ihre Programme so gestalten, daß Sie es Personen, welche diese nach Ihnen pflegen, leichter machen.
- Lernen Sie mindestens ein halbes Dutzend Programmiersprachen. Darunter sollte wenigstens jeweils eine Sprache sein, welche die folgenden Abstraktionen unterstützt: Klassen (wie in Java oder C++), funktionale Abstraktion (wie in LISP oder ML), syntaktische Abstraktion (wie in LISP), Deklarative Spezifikationen (wie in Prolog oder C++-Schablonen), Koroutinen (wie in Icon oder Scheme) und Parallelität (wie in Sisal).
- Erinnern Sie sich daran, daß die Informatik ihre heutige Bedeutung nicht ohne Computer hätte. Lernen Sie wie lange Ihr Computer braucht, um eine Anweisung auszuführen, um ein Speicherwort aus dem Speicher zu holen (mit und ohne Verfehlung des Pufferspeichers [cache miss]), aufeinanderfolgende Speicherworte von der Festplatte zu lesen und zu einer neue Stelle auf der Festplatte zu positionieren. (Antworten hier.)
- Beteiligen Sie sich an Bemühungen um die Standardisierung einer Sprache. Es könnte der ANSI-C++-Ausschuß sein, oder es könnte sein, zu entscheiden, ob Ihr lokaler Codierungs-Stil 2 oder 4 Leerrzeichen zum Einrücken verwendet. In jedem Fall lernen Sie, was andere an einer Sprache mögen, wie sehr sie sich dabei engagieren und vielleicht sogar ein bißchen darüber, warum sie dies tun.
- Seien Sie so klug, die Bemühungen um die Standardisierung so schnell wie möglich wieder aufzugeben.







