mein Sohn, 13 Jahre alt, möchte gerne programmieren lernen.
Er hat erste Gehversuche unternommen mit der Eingabeauforderung in Windows mit Hilfe eines Youtube-Tutorials und er hat auch über die Zusammenhänge in einem Computer-Einsteiger-Buch gelesen.
Als ich in seinem Alter war, konnte man schon tolle Sachen machen mit der Programmiersprache „Basic“, damals auf Sinclair-Computern, die man an den Fenrseher anschloss (Aus mir ist allerdings kein Programmierer geworden, aber das kann ja auch nicht jeder werden.)
Welches wäre heute die empfohlene Programmiersprache, die er leicht erlernen kann und realtiv schnell erste Erfolge bringt mit kleinen erstellten Programmen und ihm Spaß macht? Zu der es evtl. auch gute Tutorials gibt?
Am besten wäre es, wenn es dazu auch eine gute Open-Source-Benutzeroberfläche für Windows gäbe.
(Ich selbst nutze und schätze seit Jahren z.B. sehr das Programm „Open-Office“.
Gibt es so etwas Tolles auch zum darin Programieren?)
meine Empfehlung ist, mit C oder C++ zu beginnen, denn wenn man es gelernt hat, ist es auch nicht so schwer, sich andere Programmiersprachen beizubringen. C/C++ ist im Vergleich zu anderen Programmiersprachen auch relativ restriktiv, sodass man sich auch ziemlich nah mit den Details befassen muss. Ein gutes Tutorial kann man auf www.learncpp.com finden. Passende Compiler befinden sich in GCC. Als Entwicklungsumgebung kann ich Code::Blocks (etwas einfacher zu bedienen) und/oder Eclipse for C/C++ Developers (etwas mehr „Komfort“) empfehlen.
Um das Ganze zu relativieren, muss ich aber auch dazu erwähnen, dass es schon darauf ankommt, was man hinterher so vor hat. Bei Web-Entwicklung wäre C und C++ sicher nicht passend, obwohl man mit C+±Können auch wiederum ein relativ leichtes Spiel mit PHP hat.
Eingabeauforderung in Windows mit Hilfe eines
Youtube-Tutorials und :
was genau meinst du mit Eingabeaufforderung in Win, Start—
Ausführen?
er hat auch über die Zusammenhänge in
einem Computer-Einsteiger-Buch gelesen.
Okay.
Sinclair-Computern, die man an den Fenrseher anschloss
Hatte ich auch, alle hatten C64, ich hatte Sinclair Spectrum
mir ist allerdings kein Programmierer geworden, aber das kann
ja auch nicht jeder werden.)
Ist auch kein Platz für alle. Übrigens, kaufe dir mal Freitags
die Frankfurter Rundschau und überflieg die Stellenangebote.
Bei Programmierern o.ä. schlackerste mit den Ohren was da alles
grad mal so verlangt wird an Kenntnissen.
mein Sohn, 13 Jahre alt, möchte gerne programmieren lernen.
Er hat erste Gehversuche unternommen mit der
Eingabeauforderung in Windows mit Hilfe eines
Youtube-Tutorials und er hat auch über die Zusammenhänge in
einem Computer-Einsteiger-Buch gelesen.
Wenn er denn keine so hohen Anfangsanaforderungen hat
(also nicht gleich alles super toll mit grafischen Bedienoberflächen in Windows ) und es ihm wirklich ums
Programmieren geht, wäre eine alte rein prozedurale Sprache,
die man im Eingabefenster nutzt schon nicht so verkehrt.
Alte Basic-Varianten wie GW-Basic oder Q-Basic gibt es
frei.
Viele ältere PC-User haben das auch noch auf dem PC herumliegen.
Moderner und relativ aktraktiv ist dann SmallBasic von MS.
Das ist als Objektorientiert mit grafischer Oberfläche
direkt für Programmierlaien und Kinder gedacht (Freeware).
In der deutschen Fassung auch gut für Kinder mit nicht so
guten Englischkenntnissen.
Das hat eine sehr gute Bedienunterstützung und ist in
dem Umfang der Befehle noch rel.begrenzt.
Viele Beispielprogramme zum Ausprobieren lassen sich finden.
Als nächste Stufe würde ich dann z.B. Delphi empfehlen.
Das wird auch von Schulen in den höheren Klassenstufen
genutzt.
Delphi ist ähnlich leistungsfähig wie CC++, nur mit weitaus
gerigeren Frustrationspotential. C++ würde ich nie einem
Anfänger oder Kind anraten, weil da das Scheitern vorprogrammiert ist und es eher einen Einsteiger abschreckt.
Gruß Uwi
Als ich in seinem Alter war, konnte man schon tolle Sachen
machen mit der Programmiersprache „Basic“, damals auf
Sinclair-Computern, die man an den Fenrseher anschloss (Aus
mir ist allerdings kein Programmierer geworden, aber das kann
ja auch nicht jeder werden.)
Welches wäre heute die empfohlene Programmiersprache, die er
leicht erlernen kann und realtiv schnell erste Erfolge bringt
mit kleinen erstellten Programmen und ihm Spaß macht? Zu der
es evtl. auch gute Tutorials gibt?
Am besten wäre es, wenn es dazu auch eine gute
Open-Source-Benutzeroberfläche für Windows gäbe.
(Ich selbst nutze und schätze seit Jahren z.B. sehr das
Programm „Open-Office“.
Gibt es so etwas Tolles auch zum darin Programieren?)
mein Tipp: Python (www.python.org, wegen größerer Verbreitung und mehr Literatur vielleicht eher Version 2.7 als 3.3) . Auf vielen Platform verfügbar, es gibt ein nettes Buch dazu „Python für Kids“, man kam bequem auf der Kommandozeile (in der Python-Shell, bzw. mitgelieferten GUI namens Idle) anfangen und schrittweise zu Schwierigerem komplexen Konstrukten (Klassen, List Comprehensions, Reguläre Ausdrücke, Generatoren ) vorankommen und die mitgelieferte Bibliothek bietet SEHR viel Anschauungsmaterial.
Der sachte Einstieg verringert die Gefahr, deinen Sohn zu verschrecken, die ich beim vorgeschlagenen C++ eher hoch einschätze, ohne auf ein Spielzeug festzulegen, das in in eine Sackgasse führt.
Warum schlägt keiner Java vor?
Dann tu ichs mal - natürlich auch (wie schon beschrieben mit IDE eclipse, da kann man sich hochhangeln, weil alles gut erklärt wird, z.B. Maus drüber ruhen lassen (wie von Win gewohnt) und es werden Infos und Manipulations-Möglichkeiten (Funktionen …) etc. angezeigt.
VT Java:
universell verwendbar wie C…
später erweiterbares Wissen (da fast gleiche Denke und Syntax wie C u.a. Hochsprachen)
macht Spass
viel Material im web vorhanden zum Lernen und darauf aufbauen
NT:
es hat sehr viele Möglichkeiten, Biblotheken, Datentypen etc. / aber ganz ruhig eins nach dem anderen lernen, Rom wurde ja auch nicht … (1000x umfangreicher als die Basics der 80ger mit ihren GOTOs…)
schließlich solls nach 2 Jahren auch noch Spass machen und nicht wie bei Basic oder Spezialsprachen zur Entdeckung kommen, dass man sich auf einer Insel weit ab der Programiierer-Masse befindet…
Sprache ändert sich ständig etwas / wird ja weiterentwickelt
Das ist (natürlich nur) meine persönliche Ansicht.
Stimmt nicht. C und C++ sind um längen performanter als Java und haben bedeutend mehr Möglichkeiten.
später erweiterbares Wissen (da fast gleiche Denke und
Syntax wie C u.a. Hochsprachen)
Eigentlich jede Programmiersprache hat die gleiche Grundsyntax momentan gibt es eigentlich nur drei große syntaktische Darstellungen:
Die XML Syntax
Die C-Syntax
Die Basic Syntax
macht Spass
Ansichtssache. Es gibt Momente wo man mit Java echt keinen Bock mehr hat und sich nur noch quält. Bestes Beispiel ist einen Text über die Konsole einzulesen.
viel Material im web vorhanden zum Lernen und darauf
aufbauen
Gibt es auch für viele andere Sprachen.
NT:
schließlich solls nach 2 Jahren auch noch Spass machen und
nicht wie bei Basic oder Spezialsprachen zur Entdeckung
kommen, dass man sich auf einer Insel weit ab der
Programiierer-Masse befindet…
In Java musst bzw. kannst du dich auch sehr stark spezialisieren. Das kann sehr große Probleme geben.
Sprache ändert sich ständig etwas / wird ja weiterentwickelt
Ja, das ist das größte Problem bei Java.
Das ist (natürlich nur) meine persönliche Ansicht.
Bei mir basiert es teilweise auf Erfahrung und Meinung ^^
Wir versuchen es jetzt erst mal mit „Small Basic“ von Microsoft.
Es gibt dazu ein sehr schönes Einsteiger-Original-Tutorial (PDF, 70 Seiten) und auch nette Videos dazu bei Youtube.
Die Benutzeroberfläche ist meines Erachtens sehr benutzerfreundlich und intuitiv (Befehle werden automatisch vervollständigt und erklärt angezeigt; Fehler bei der Programmierung werden mit der genauen Zeile und Zeilenstelle leicht findbar angezeigt).
Bin mal gespannt, was mein Sohn damit nun alles so programmiert und ich habe gute Lust, da auch ein bisschen damit zu experimentieren.
Angenommen, er entwickelt damit ein praktisches Programm, wäre es dann unter Umständen später möglich, dies in andere Sprachen übersetzen zu lassen, damit es auch auf anderen Systemen kompatibel laufen kann? Gibt es quasi ein „Übersetzungsprogramm“, das ein „Small-Basic“-Programm in ein C++ Programm (oder anderes) einfach automatisch übersetzt? Oder müßte dann komplett neu geschrieben und strukturiert werden?
Angenommen, er entwickelt damit ein praktisches Programm, wäre
es dann unter Umständen später möglich, dies in andere
Sprachen übersetzen zu lassen, damit es auch auf anderen
Systemen kompatibel laufen kann? Gibt es quasi ein
„Übersetzungsprogramm“, das ein „Small-Basic“-Programm in ein
C++ Programm (oder anderes) einfach automatisch übersetzt?
Oder müßte dann komplett neu geschrieben und strukturiert
werden?
a) wahrscheinlich gibt es ein Übersetzungsprogramm für so eine (imho:smile: eher abgelegene Ausgangssprache nicht, so richtig verbreitet ist die Methode seit Pascal->C-Umsetzern ohnehin nicht. Denn einen Umsetzer so schlau zu machen, dass er die Eigenheiten der Zielsprache wirklich ausnutzt, ist extrem anspruchsvoll und aufwändig.
b) das ist aber nicht schlimm, weil das „Schreiben“ sowieso nur einen Bruchteil ausmacht. Wenn das Problem erst einmal verstanden ist und ein (im Idealfall) fehlerfreies Ausgangsprogramm vorhanden ist, ist der Rest trivial. Nicht umsonst wird häufig empfohlen, die erste Version eines humpelnden Programms wegzuwerfen und noch einmal neu anzufangen.
Ich empfehle eine Roboter Sprache , am besten mit so einem Roboter set,
das ist nciht so theortisch und macht unheimlich spass, und es gibt auch diverse Events wo man wirklich was machen kann und vorführen etc.
Reines Programmieren für ein 13 Jährigen ist wohl nur gut wenn der 13 Jährige wirklich interressiert ist am selber Programmieren .
Praxisorientiert ist auch einfacher , weil man wirklich an der Lösung praktisch interressiert ist und nicht nur virtuell irgendwas, wie Hausaufgaben von der Schule, löst und kein schimmer hat warum mann das übt.
vielleicht wäre ja auch eine Script-Sprache wie php etwas. Das ist, wie ich finde, schon kompliziert genug und man hat auch gleich ein echtes Ziel (die eigene Internet-Seite). Außerdem kann man sehr einfach Datenbanken einbinden (z.B. MySQL) und es gibt sogar Kompiler dafür.
vielleicht wäre ja auch eine Script-Sprache wie php etwas. Das
ist, wie ich finde, schon kompliziert genug und man hat auch
gleich ein echtes Ziel (die eigene Internet-Seite). Außerdem
kann man sehr einfach Datenbanken einbinden (z.B. MySQL)
Das ist ein guter Gedanke - man hat gleich ein nutzbringendes Resultat, selbst wenn man nur vorhandene CMS (z. B. Joomla!) erweitert. Wichtig erscheint mir auch: Es gibt in PHP auch Klassen und Objekte. Allerdings keine typspezifischen Variablen.
und es gibt sogar Kompiler dafür.
Welche meinst Du? PHP-Compiler? Jetzt bin ich neugierig
Das ist richtig, aber vielleicht nicht all zu wichtig. Hier will ja jemand „lernen, was Programmieren eigentlich ist“. Und hier weiß jeder der antwortet, wie schwer Programmierung letztlich ist, wenn man sich ein ernsthaftes Projekt vorgenommen hat und über „hello world!“ hinausgeht.
und es gibt sogar Kompiler dafür.
Welche meinst Du? PHP-Compiler? Jetzt bin ich neugierig
hast Du deinen Sohn den mal gefragt, was er denn will?
Ich finde das größte Problem beim erlernen einer Programmiersprache ist nicht die Sprache selber sondern die Motivation.
Selbst eine so einfach Sprache wie das gute alte Spectrum Basic (es hatten überigens NICHT alle den C64, es gibt sogar welche, die hatten noch ZX81 auf ihrem Gerät stehen … aber ich schweife wieder ab), jedenfalls macht einfach keinen Spass, wenn man nicht weiss, was man damit eigentlich machen soll.
Ich persönlich finde die diversen programmierbaren Roboter sehr schön… nur falls Programmieren doch keine Option für einen 13jährigen ist, weil er doch viel lieber draussen Fussball spielt, ist das eine etwas kostspieliger Versuch.
Zurück zur Motivation, es bedarf also einen konkreten Projektes, an dem man seine Fähigkeiten testen und erweitern kann.
Sofern er gerne kreativ tätig ist und nicht unbedingt bunte Bilder braucht, kann er sich ja vielleicht auch mit der Programmierung von MUDs beschäftigen. Im Ergebnis sind die zwar nur Textadventures, aber man kann dort ziemlich viel über Objektorientierter Programmierung lernen und sich dabei kreativ voll austoben.
Wer sich für sowas interssiert, kann sich ja mal http://www.unitopia.de/misc/programmierung/downloads… anschauen oder zu einem (für meine Begriffe) guten Buch greifen z.B. „Jetzt lerne ich OOP - Der einfache Einstieg in die objektorientierte Programmierung mit LPC“.
Falls man noch die Zeit hat, ist das eine wirklich schöne Art, diese zu verbringen. Man kann sich auch mit Freunden oder dem Papa zusammentun und gemeinsam Abenteuer entwickeln.
Viele Spass (euch Beiden) mit dem, für das Ihr euch auch immer entscheidet.