Bücher für 13 jährige zum erlernen von Programmierung mit Java

17 Antworten

Hey!

Sofern Deine Nichte grad ein völliger Überflieger ist, würde ich doch von Java und C (C++, C#, Objectiv-C) abraten. Das sind zwar gute Sprachen die auch in der Spieleentwicklung mehr oder weniger viel Bedeutung haben, aber sie werden ihr vermutlich den Spaß daran verderben.

Flash bzw. Actionscript ist zwar ein netter Vorschlag - aber Actionscript ist nach meiner Einschätzung für eine 13 jährige auch etwas zu komplex und die Benutzerführung in Flash nicht grad besonders Benutzerfreundlich - zumal man Flash ja auch erstmal kaufen muß.

PHP ist zwar "eigentlich nur eine Websprache" und hat aufgrund seiner Entwicklung allerhand Unzulänglichkeiten, ist aber mit minimalem Aufwand zu programmieren und man kann schon das eine oder andere sehr nette damit machen. Und Deine Nichte könnte hier die Grundkonzepte die in allen Sprachen sehr ähnlich sind, relativ leicht erlernen. Danach fällt der Umstieg auf andere Sprachen deutlich leichter.

Alternativ sollte man aber tatsächlich sowas wie Unity ( von Apachy schon erwähnt ) mal etwas Beachtung schenken, da es speziell für das einfache erstellen von Spielen entwickelt wurde.

Ich denke aber, das nichts so gut motiviert und beim lernen hilft, wie eine reale Person - von daher wäre sicher jemand, der sie ein bischen an die Hand nehmen kann viel sinnvoller als jedes Buch (zumal man heutzutage alles auch online lesen kann). Vielleicht gibts ja ein paar Nerds im Umfeld, die Spaß daran hätten !?

Grundsätzlich wollen sogut wie alle, die in den IT Bereich wollen, Spieleprogrammierer werden. Nicht böse gemeint aber die Kinder/Jugendlichen wachsen mit Spielen auf, haben Spaß dran und würden damit natürlich gern ihr Geld verdienen. Das Spieleprogrammierung bzw. Programmierung allgemein nicht wirklich viel mit Spielen zutun hat beachten die meisten dabei nicht.

Letztlich brauch es am Anfang erstmal die Basics, darüber hinaus ist Spieleprogrammierung, wohl mit der komplizierteste Bereich. Abgesehen davon werden Spiele, wie man sie käuflich erwirbt nicht nur von einer Hand voll Leuten erstellt, sondern von großen Teams.

Ein leichten Einstieg gäbe es vielleicht mit Unity: Einstieg in die 3D-Spieleprogrammierun von Video2Brain. Trotzdem sollten vorher schon Basics des Programmieren bekannt sein. Ich würde da auch fast eher auf PHP und HTML/CSS zurückgreifen. Ganz einfach weil es relativ schnell Ergebnisse liefert und man eine riesige Community dahinter hat und das Manual mit seinen Beispielen und co. meiner Meinung nach auch wesentlich besser ist, als bei fast allen anderen Sprachen.

Zwar ist PHP noch weit entfernt von C++ und co. Trotzdem ist es aktuell doch schon relativ mächtig. Objektorientierung, Namespaces, Design Patterns. PHP hat sich mittlerweile ganz schön gemacht und von der Syntax ist es eben relativ ähnlich wie die meisten großen Hochsprachen, von daher eine gute Grundlage. Und gerade die Webprogrammierung bietet viele interessante Themen und Erweiterungsmöglichlichkeiten bzw. Stoff mit dem sich deine Nichte auseinandersetzen kann wie Javascript, Ajax und für diese verschiedene Frameworks, relationale Datenbanksysteme wie MySQL usw.

Wenn sie wirklich in den Bereich Programmierung möchte halte ich es aber neben diesen Sachen für das wichtigste, dass die Schule entsprechend läuft. Offiziell gibt es zwar keine Beschränkungen, viel wird im Bereich Realschule ausgeschrieben, was die Ausbildungsberufe angeht (z.B. den Fachinformatiker für Anwendungsentwicklung), in der Realität hat die Konkurrenz aber nicht selten das Abi, die Fachhochschulreife oder ein abgebrochenes Studium hinter sich. Natürlich bietet sich auch das Studium selbst in dem Bereich an.

Letztlich ist es aber sehr wichtig, dass das erstmal ein Hobby bleibt und vorallem die Basics in der Schule wie Mathe und Englisch entsprechend gelernt werden. Die Fachliteratur ist in der Regel in Englisch gehalten und dort sollte man keine Probleme haben und gerade Spieleprogrammierung (sofern man nicht auf fertige Engines und co. zurückgreift bzw. was ändern will) hat sehr viel mit Mathematik zutun. Ganz abgesehen davon, dass die Personaler eben verstärkt auf solche Fächer schaun.

Woher ich das weiß:Berufserfahrung – Softwareentwickler/Projektleiter seit 2012

Wenn sie Explizit sagt sie will spiele Entwicklerin werden, ist Programmieren können natürlich nicht der einzige Aspekt. Dazu gehören wesentlich mehr aufgaben. Wen du deiner nichte sofort ein Buch zu einer Programmiersprache wie Java hinklatschst, kann es sein das das ganze eher Abschreckent wirkt ... ich würde ihr empfehlen mit einer eher einfachen Entwicklungsumgebung anzufangen. Für einsteiger ist das 3D Gamestudio eine ganz gute Wahl. Damit habe ich auch ungefähr in ihrem Alter angefangen. Der vorteil am 3D Gamestudio ist, das sie wirklich sehr schnell erfolge erzielen kann. Zudem Wird in Lite-C gescripted, eine abgespeckte form form C/C++. Lite-C konzentriert sich wirklich nur auf das Game Development und ist sogar noch einfacher als Java. Für das 3Dgs kannst du dich hier umsehen: http://www.3dgamestudio.com/. Wenn sie sich eine Zeit lang mit dem 3D Gamestudio auseinandergesetzt hat und vielleicht schon ihre ersten kleinen Games Geschrieben hat, fällt es recht einfach seine Kenntnisse dann Direkt auf C++ zu erweitern. Ich würde von Java grundsätzlich abraten wenn man vor hat später Professionell zu entwinkeln. Nur Wenige der Größeren Firmen Programmieren in Java, denn es ist zwar einfach, aber auch dementsprechend langsam. Der große vorteil das Java Portabel ist greift in der Spiele Entwicklung zudem nicht, da Otto Normaluser meist so oder so Windows verwendet achtet keine große Firma ernsthaft darauf das ihre Games auf OSX oder Linux laufen (Weil es Wirtschaftlich gesehen auch Blödsinn währe...). Wichtig ist denke ich das sie wie gesagt sich nicht zu schnell in Komplett Code basierte Entwicklung landet. Wenn sie Später 2-3 Stunden vor einem Stück Quellcode sitzt ohne wirklich eine Sichtbare Änderung am End-Programm, wird ihr der Spaß vielleicht schnell wieder vergehen. Zwischendurch einen Blick in den Level-Editor zu werfen und sein Level Live aufzubauen ist da schon wesentlich spannender. ;) Nebenbei lernt sie aber dennoch die Grundprinzipien von Programmiersprachen und kann sich in 1-2 Jahren dann vielleicht schon an kleine C++ Projekte wagen. Ich für meinen Teil habe auch ungefähr in ihrem alter angefangen, bin jetzt 15 und schreibe gerade an einer eigenen Grafik Engine in Visual C++. Da ich mir eigentlich alles selber beigebracht habe, kann ich jedoch ein Buch leider nicht Empfehlen, aber ich hoffe ich konnte trotzdem helfen! Bei weiteren Fragen kannst du Dich gerne melden. :)

LG SK


Marbuel  11.08.2012, 10:19

Es gibt viele große Firmen, die Java-Entwickler suchen. Die Zeitungen bei uns sind voll mit ausgeschriebenen Stellen. Auch .Net-Entwickler werden oft gesucht. Und wenn du Java kannst, kannst du eigentlich auch C#. Darüber hinaus ist Java auch nicht soviel einfacher, wie C++. Der große Unterschied ist doch schlicht und ergreifend, dass man sich in C++ selbst um den Speicher kümmern muss. Jedoch auch nicht in Visual C++, sondern in ANSI C++. Dein Visual C++ hat auch Garbagecollection und unterscheidet sich nicht sonderlich von C# oder dem Sun-Konzept mit Java. Inklusive Geschwindigeitseinbußen!

0
tobistenzel  11.08.2012, 12:46

Ich würde von Java grundsätzlich abraten wenn man vor hat später Professionell zu entwinkeln. Nur Wenige der Größeren Firmen Programmieren in Java, denn es ist zwar einfach, aber auch dementsprechend langsam.

Da muss man aber schon dazusagen, dass du die Spieleindustrie meinst (hoffe ich jedenfalls...).

da Otto Normaluser meist so oder so Windows verwendet achtet keine große Firma ernsthaft darauf das ihre Games auf OSX oder Linux laufen

Das kann sich auch schnell mal ändern, aktuelles Beispiel zum Thema:

http://blogs.valvesoftware.com/linux/

0
SK199613  12.08.2012, 06:05
@tobistenzel

@Marbuel: Da hast du recht, es werden sehr viele Java Programmierer gesucht, jedoch nicht im bereich Spiele Entwicklung! Ich sagte nicht das Java schlecht sei, sondern Lediglich das es für so Leistungsfressende Aufgaben nicht die Beste Wahl ist! Java hat aber durchaus seine Daseinsberechtigung. Wie einfach oder nicht einfach Java im End Effekt nun ist, kann ich aus erster Hand auch nicht sagen da ich aus den oben aufgeführten gründen nie Java gelernt habe. Ich kann nur weitergeben was mir andere über Java erzählt haben und viele Java Programmierer haben immer angepriesen das es sehr leicht zu lernen sei. Und ein "ANSI-C++" existiert darüber hinaus gar nicht. was du wahrscheinlich meinst ist das alte ANSI C ...

@tobistenzel: Ja der bereich Spiele Entwicklung war gemeint. Da habe ich mich vl. nicht so verständlich ausgedrückt :D. Das Java in anderen Bereichen durchaus sehr Präsent und sinnvoll ist, möchte ich nicht abstreiten. ;) Der Marktanteil von Linux steigt immer weiter und das tut er auch zurecht. solange ich nicht Programmiere oder Zocke, verwende ich auch selber Linux, den sein wir mal ehrlich: Wenn man nicht quasi dazu gezwungen werden würde würde kein Mensch freiwillig Windows benutzen! xD Aber zur zeit entwickeln die meisten Firmen Spiele für Windows und solange die meisten Spiele nur auf Windows Laufen, kaufen sich die Gamer Windows Rechner ... die folge ist dass alle Kunden Windows Rechner haben weshalb die Spiele Industrie natürlich wieder für Windows Produziert ... die Gamer kaufen sich wieder Windows Rechner usw... Das wird noch was dauern bis wir aus diesem Teufelskreis rauskommen ... und 92% Marktanteil müssen sich ja irgenwie erstmal abbauen... (Wobei ich mir bei der Angabe jetzt nicht ganz sicher bin). Und mal im ernst: Windows ist ganz sicher nicht aufgrund seiner Qualität so bekannt! :D ...

0

Computergrafik-Zeugs würde ich am Anfang weglassen und Java 3D ist sowieso nicht gerade aktuell oder überhaupt empfehlenswert.

HTML bringt einem fürs Lernen von Programmiersprachen recht wenig, das ist ja eher näher an Textverarbeitung als am Programmieren.

Ich würde eher eine "schönere" und noch einfachere Sprache als Java nehmen. Ich empfehle am liebsten Python, weil das komplett frei und auch sehr praktisch ist. Dazu gibt es auch ein sehr gutes, kostenloses Buch, für das man aber schon vernünftig Englisch können muss. Nennt sich "Learn Python The Hard Way" (obwohl das gar nicht so schlimm ist, eher im Gegenteil ;)) Das ist auch ganz allgemein sehr sinnvoll, um etwas übers Programmieren zu lernen. Die Programmiersprache sollte auch nicht so im Mittelpunkt stehen am Anfang, wichtig sind die Konzepte dahinter.

Als deutsches Buch gibt es noch "Einstieg in Python. Ideal für Programmieranfänger geeignet". Wenn es richtig einfach und spielerisch sein soll kann man für den Anfang noch "Python for Kids" nehmen.

Java geht im Prinzip schon, da ist die Buchauswahl auch viel größer, aber persönlich finde ich die Sprache nicht gut, obwohl ich sie schon recht viel benutzt habe (nicht ganz freiwillig).

Für Anfänger gibts es auch Besseres, denke ich, da manche recht einfachen Dinge von Java schon erstaunlich umständlich gemacht werden. Mich hat das als Java-Einsteiger mit Erfahrung in Python und anderen Sprachen schon etwas schockiert ;) C++ ist aber nochmal eine ganz andere "Liga".

Hi,

mit 13 Java - dann haben wir es wohl mit einer Frau Einstein zu tun : )

Ganz ehrlich, lass sie einen völlig anderen Weg einschlagen und sie zuerst mal Flash mit ActionScript 3 lernen. Hier kommt der Faktor Design mit ins Spiel und vor allem sieht man sofort das Ergebnis. Durch Adobe AIR hat man dann auch sein Spiel als Desktop App schnell exportiert.

Zur Erläuterung: ActionScript 3 ist an JavaScript/Java angelehnt und auch objektorientiert. Letzteres wird jedoch ohnehin nicht so einfach zu verstehen sein, weshalb man zuerst mal die Grundlagen anschaut. Das Gute, diese Grundlagen sind rein vom Logischen überall gleich - Stichwort If-Else, For-Schleifen usw. gibt es überall und funktionieren immer gleich. Wenn sie das kapiert hat, kann sie dieses Wissen überall anwenden und muss nur noch die Syntax einer jeden Programmiersprache beachten.

Warum Flash: Weil man eben sofort sieht, was man programmiert hat und das motiviert einen das und das noch zu verbessern und erweitern. Es ist doch toll, wenn man seinen eigenen mp3-Player nicht nur selbst programmieren, sondern auch designen kann.

Aber: Dies soll nur der Einstieg sein, ob ihr die Programmierung überhaupt Spaß macht. Wenn ja, dann kann/sollte sie natürlich sich an Java oder C++ heranwagen, da Flash immer mehr auf dem absteigenden Ast ist, was den Einsatz auf Websites und SmartPhones angeht.

VG