Wie kann mein Sohn (12 Jahre) das Programmieren erlernen?
Hallo, mein Sohn (12 Jahre) möchte das Programmieren erlernen. Er hat allerdings damit noch keine Erfahrung. Wie kann man das lernen und mit welcher Programmiersprache?
7 Antworten
Erstmal mit einer Skriptsprache anfangen, die sind am einfachsten zu lernen und können trotzdem viel: Ruby, Perl, Python [, PHP]...
Mit 12 wird er wohl noch keine so guten Englischkenntnisse haben, daher logischerweise erstmal ein deutsches Buch. Die allerdings sind i.d.R. ziemlich... bescheiden. Die wirklich gute Fachlektüre gibt's auf Englisch. Daher, aber auch allgemein da man beim Programmieren einfach Englisch sehr gut können muss, sollte der Kollege schauen auch sein Englisch neben der Schule zu verbessern.
Auch wenn ich persönlich Ruby eher empfehlen würde, gibt es leider allgemein verhältnismäßig recht wenig Lektüre darüber. Python ist da breiter aufgestellt, da hat O'Reilly sogar eine Übersetzung eines ursprünglich englischsprachigen Titels im Angebot: http://www.oreilly.de/catalog/thinkpythonger/ Das fängt eigentlich so ziemlich bei Null an, sollte also für Neueinsteiger geeignet sein.
Dass er geistig schon fit genug ist um die allgemeinen Konzepte der Programmierung zu verstehen und anzuwenden sollte logischerweise gegeben sein. Anhand des Alters kann man das eigentlich nicht festmachen, da es solche und solche gibt. Wenn er schon mit Computern allgemein ziemlich fit ist bzw. da Leidenschaft dahintersteckt stehen die Chancen gut.
Die Programmiersprache kann man erst einmal als fast nebensächlich abtun, die braucht man nämlich zur Erstellung eines Programms nicht.
Ein Programm kann z. B. so aussehen:
-
Fordere eine Zahl an und speicher sie
-
Fordere eine weitere Zahl an und speicher sie
-
Addiere die beiden Zahlen
-
Gib das Ergebnis aus
Wer so eine Arbeitsanweisung (Programm) nicht erstellen kann, dem hilft auch keine Programmiersprache der Welt. Die Umsetzung einer solchen Anweisung in etwas was der Computer verarbeiten kann, hat mit "Programmieren" eigentlich nicht wirklich zu tun.
Nachweislich macht es mehr Spaß, wenn man beides kombiniert. Womit wir gute Erfahrungen gemacht haben ist Python. Python findet man im Netz (kostenlos), dazu eine Vielzahl an Literatur (häufig englisch und nicht immer an die aktuelle Version angepasst). Eine Buchempfehlung hätte ich daher auch noch: "Python für Kids" von Gregor Lingl aus dem bhv-Verlag. Nicht vom Titel täuschen lassen, es eignet sich auch für Erwachsene ...
Alternativ sollte man im Umfeld nach Computerclubs ausschau halten, an der Schule nachfragen ob es nicht dort Angebote gibt.
Natürlich kann man das tun.
Für einen Informatik-Studenten oder jemanden, der sich nur mit Theorie befasst, ist dies vielleicht sogar genau das richtige.
Als 12-jähriger ist man jedoch auf schnelle, sichtbare Erfolge (also ausführbare Programme) angewiesen, da man in diesem Alter meistens die Lust verliert, wenn Erfolge ausbleiben.
Daher wird in diesem Fall so ein Vorgehen nicht richtig sein.
Falls dein Sohn einen "Lehrer" hat (also z.B. du ihm das Programmieren beibringen willst), würde ich eine RAD-Sprache nehmen, also eine Sprache, bei der man die grafische Oberfläche mit der Maus erstellt und danach nur relativ wenig Programmcode mit der Tastatur eintippen muss.
Beispiele für so etwas sind "Delphi" (bzw. die kostenlose Alternative dazu: "Lazarus") und "Visual Basic Express" (ebenfalls kostenlos).
Der Grund dafür ist einfach: Um "am Ball zu bleiben" benötigt man als Jugendlicher wesentlich mehr als Erwachsener schnelle Erfolge, um nicht desillusioniert zu werden - und die hat man mit derartigen Sprachen.
Wenn man Visual Basic Express kann, kann man relativ einfach auf VBA umsteigen, was im Microsoft-Office-Bereich für Makros benötigt wird. Somit ist diese Sprache auch später im Berufsleben nicht uninteressant...
Falls er sich das Programmieren selbst beibringen muss (ohne "Lehrer"), muss man auch noch schauen, ob es geeignetes Lehrmaterial (Tutorials, Lehrbücher, ...) für eine Programmiersprache gibt.
Wenn er erstmal die Grundlagen lernen will, würd ich mit Scratch anfangen. Das ist ne rein visuelle Programmiersprache/Umgebung, in der man Objekte, Figuren etc. über eine Art Bühne steuern kann, in dem man verschiedene Befehle in Form von farbigen Blöcken per Drag&Drop in ne sinnvolle Reihenfolge setzen muss bzw. sinnvoll miteinander kombinieren muss.
Ist für `nen 12-jährigen wahrscheinlich wesentlich intuitiver zu bedienen (man braucht keinen Compiler etc.) und motivierender als ihm einfach ein 200 Seiten langes Buch über irgendne Programmiersprache vor die Nase zu setzen, dass er den Schritt für Schritt durcharbeiten darf^^ Außerdem sind Frustfaktoren wie komplizierte Syntax, viel Tipparbeit etc. ausgeschlossen.
Das kommt mir vor wie Erdkunde ohne Atlas, Sägen lernen ohne Säge und Holz. Mit der Theorie anfangen ist genau das Gegenteil von Lernen anhand von Beispielen und Praxis.
Man braucht einen PC und einen Compiler für eine Sprache, welche ist zunächst untergeordnet. Der Compiler sollte ohne Probleme installiert werden können, es sollten ein paar einfache Beispiele mitgeliefert sein.
Damit lernt man:
-
Anweisungen per Text zu erstellen.
-
Diese mit dem Compiler in den Maschinencode zu übersetzen.
-
Das Ergebnis als Programm starten.
Ein einfaches Programm, das nur Hallo Welt ausgibt, vermittelt einem mehr als zig Seiten Theorie in einem schlauen Buch. Es vermittelt nicht nur das Grundprinzip der Programmierung, es verschafft einem auch das mit einem Hochgefühl verbundene Erlebnis Ich habs geschafft, mein Programm läuft!. Das weitere ergibt sich dann fast von alleine.
Ich würde empfehlen das er einen Kurs oder so etwas geht. Es ist nämlich sehr schwer alleine Programmieren zu lernen.
LG