Ist "Grundkurs C++: C++-Programmierung verständlich erklärt (Galileo Computing)" ein gutes Buch um Programmieren (von Spielen) zu erlernen?

6 Antworten

Das Buch kenne ich nicht, aber die Vorgängerbücher zu C und C++ von dem Autor sind eine Katastrophe, deswegen würde ich von dem Abstand nehmen. Besser finde ich "From Zero To Hero: C++" von Dirk Louis. 

Noch besser finde ich allerdings fluffiknuffi und ihre Antwort, wenn du überhaupt keine Ahnung vom Programmieren hast, dann wirst du mit C++ als erster Sprache nicht glücklich werden.

Um erfolgreich Spiele zu programmieren, wirst du weit mehr wissen müssen, als dieses Buch erklärt.

Aber so weit bist du ja noch lange nicht. Als jemand, der noch keinerlei Programmier-Erfahrung hat, musst du erst mal lernen, mit den Basics einer Programmiersprache umzugehen. 

Und genau dafür ist das Buch durchaus geeignet.

Nebenbei: C++ ist eine Sprache, die in vollem Umfang zu kennen du gar nicht erst anzustreben brauchst. Es reicht, ihr Subset C zu kennen ergänzt um den Klassenbegriff. Für alles, was darüber hinaus geht, kannst du dich dann auf schon existierende Code-Bibliotheken verlassen.

Nebenbei: Ein um den C++ Klassenbegriff erweitertes Subset von C++ ist ideal für alles, was mit Textanalyse und Textmanipulation zu tun hat (Dinge, die irgendwann jeder benötigt).

Für kompliziertere Dinge würde ich heute nur noch Java oder C# nehmen, denn nur dort gibt es Code-Bibliotheken, die wirklich hilfreich sind. Mit C++ programmiert so einer wie du dich da zu Tode ...

Insbesondere was das Suchen der Ursachen deiner eigenen Programmierfehler betrifft, wirst du mit C++ wahrscheinlich verzweifeln. Viele solcher Fehler kann man mit C# gar nicht erst machen.

Wirklich C++ programmieren kannst du selbst aber nicht, kann das sein?

Es reicht, ihr Subset C zu kennen ergänzt um den Klassenbegriff. 

Genau das ist auch einer der Punkte, den ich im Vorgängerbuch von Jürgen Wolf sehr kritisch sehe - dass er nicht C++ lehrt, sondern "C mit Klassen". Das führt dann beispielsweise dazu, dass er ewig lange mit char-Zeigern rumeiert (inklusive all deren Nachteilen), anstatt die Strings aus dem C++-Standardnamespace zu nehmen (die übrigens weder Teil von C noch von der Objektorientierung sind).

Ein um den C++ Klassenbegriff erweitertes Subset von C++ ist ideal für alles, was mit Textanalyse und Textmanipulation zu tun hat

Und warum ist es dazu so gut geeignet? Was kann "C mit Klassen", was andere Sprachen nicht können?

denn nur dort gibt es Code-Bibliotheken, die wirklich hilfreich sind. Mit C++ programmiert so einer wie du dich da zu Tode ...

Schonmal was von der STL gehört? Oder von Boost? 

Insbesondere was das Suchen der Ursachen deiner eigenen Programmierfehler betrifft, wirst du mit C++ wahrscheinlich verzweifeln. Viele solcher Fehler kann man mit C# gar nicht erst machen.

Das ist dann eher ein Problem der IDE und wie man mit ihr umgehen kann. Oder ein Problem, dass man nicht C++ programmiert, sondern "C um den Klassenbegriff erweitert". 

0
@ceevee

Zu ceevee's erstem Einwand:

Programmiert habe ich vor allem, um viel von dem zu automatisieren, was ich sonst immer wieder von Hand hätte erledigen müssen (was fehleranfällig und langweilig gewesen wäre).

Vor allem habe ich -- so über 30 Jahre hinweg -- mehrere Skriptsprachen, Pascal, C, C++ und Java verwendet. Diejenigen meiner Werkzeuge, die mir selbst heute noch fast unentbehrlich erscheinen, sind in C++ (genauer: in einem C++ Subset, das i.W. C + Klassen darstellt) realisiert. Sie immer wieder neuen Aufgaben anzupassen gelingt mir extrem schnell und bedarf keiner schwergewichtigen Umgebung.

Ich hatte zudem viel mit Wartung und Reengineering von Code zu tun, den andere erstellt hatten: C, C++, Java sowie Code in diversen Skriptsprachen oder gar in COBOL, das ich selbst NICHT beherrsche.

Hierbei viel mir auf: Extrem schwer verständlich war vor allem der Code, den Leuten geschrieben hatten, die jede Ecke und jedes Feature von C++ (und Microsofts MFC) genau kannten. Ich begann zu begreifen, dass man solche Programmierer am besten so schnell wie möglich los werden sollte, denn Code, den in all seinen Details nur sein Autor selbst noch versteht, ist schwierig durch andere zu pflegen und von da her eher gefährlich denn nützlich, auf jeden Fall aber ein Verursacher allzu hoher Wartungskosten.

Daher mein Prinzip:

Man verwende nur diejenigen Features von C++ (oder anderer komplexer Sprachen), deren Verwendung sich wirklich bezahlt macht: in Geld -- also nicht nur vom Vergnügen her, etwas Kompliziertes verstanden und angewandt zu haben.

0
@ceevee

Zu ceevee's zweitem Einwand:

Stringklassen zu verwenden habe ich aufgegeben, nachdem mir klar wurde, wie ineffizient sie arbeiten. 

Zudem wurde mir sehr schnell offensichtlich, dass sich Algorithmen für Textanalyse und/oder Texttransformation sehr viel einfacher programmieren lassen, wenn man den Text, der zu analysieren oder umzuformen ist, einfach als Folge von Zeichen betrachtet und dabei Pointer-Arithmetik nutzt (etwas, das es in Java oder C# gar nicht mehr gibt).

Zur Ausgabe sowie zur Formatierung von Text finde ich die aus C stammende printf() Funktion immer noch weit praktischer als alle anderen Mechanismen. Dass nicht nur ich so denke, zeigt die Tatsache, dass die Entwickler von Java dem Druck der Anwender nachgaben und printf() dann ja doch noch auch aus Java heraus verfügbar gemacht haben. Ein weiser Entschluss!

0
@ceevee

Zu ceevee's drittem Einwand:

Boost kenne ich nicht, die STL allerdings finde ich fürchterlich: Mit ihr hat man sich allzu sehr verkünstelt. Ich gab schon bald auf, sie weiter zu nutzen.

0
@ceevee

Zu ceevee's viertem Einwand:

Es gibt keine IDE, die uns davor schützen könnte, mit C oder C++ irrtümlich über das Ende eines selbst allokierten Speicherintervalls hinaus zu schreiben. 

Der vielleicht wichtigste Vorteil von C# und Java ist: Man muss Heap-Speicher nicht mehr selbst verwalten (womit es dann ja auch gar nicht mehr möglich ist, entsprechende Fehler zu machen). 

0

Kommt darauf an wie alt du bist ^^ Ich habe mit 12 angefangen zu programmieren und hab mir mit Büchern schwer getan. Selber habe ich es mir durch Youtube beigebracht. Solltest du aber 14< sein dann kann ich die Bücher nur weiterempfehlen (habe die auch).

Kennt ihr ein gutes Buch für Programmieren?

Wäre schön wenn es in python wäre und wenn Neutronale Netze drinnen sind :P

...zur Frage

Welches Buch zum Java erlernen?

Hallo ich möchte Java lernen habe aber null Erfahrung was programmieren an geht. Kennt jemand ein passendes Buch dafür das Java von vorne bis hinten beschreibt? Preis ist egal.

...zur Frage

c++ 'richtig' lernen

ich will als vorbereitung zum studium c++ lernen. hab breits in einem anderen studium an der uni java gelernt. ich hab ein buch über c++ programmierung zum 2009 standart (von galileo computing, jürgen wolf). der selbe author hat auch ein aktuelles buch zum 2011er standart. macht es mehr sinn direkt mit dem aktuellesten standart anzufangen oder macht das keinen unterschied?

danke

...zur Frage

Ist 27 noch ein gutes Alter um Programmieren zu erlernen?

Ich arbeite sehr gerne mit und am Computer. Zurzeit befinde ich mich in einer Umschulung in Richtung IT-Security. Ich habe starkes Interesse das Programmieren zu erlernen. Nun stelle ich mir die Frage ob das in meinem Alter noch möglich ist um später damit, evtl. mit 30 Jahren, noch Geld zu verdienen? Sehr viele beginnen ja schon in jungen Jahren damit. Ist es da für mich möglich mit den "Digital Natives" mit zu halten ?

...zur Frage

Buch für Fortgeschrittene C-Programmierung?

Hallo, ich wollte gerne die Programmiersprache C lernen und habe schon die Bücher : "C-Programmierung Eine Einführung, RRZN Handbuch" und "Jürgen Wolf: C von A bis Z, Galileo Computing (3. Auflage)" durch.

Jetzt wollte ich gerne noch mehr lernen und habe mich nach Büchern für Fortgeschrittene umgeschaut. Dabei bin ich auf das Buch "Guido Krüger: Go To C-Programmierung" gestoßen. Jedoch soll dieses Buch ziemlich schlecht übersetzt worden sein (z.B. Übersetzer statt Compiler).

Kann mir jemand noch gute Bücher empfehlen?

...zur Frage

Wer kennt ein gutes Buch für Python Programmierung?

Hallo, ich suche ein Einsteigerfreundliches Buch zum Programmieren in Python.

...zur Frage

Was möchtest Du wissen?