Entscheidungshilfe C++ Bücher
-
Hallo und guten Abend liebe Leser,
Ich bin ganz neu in der Programmierwelt und habe mir gleich C++ als erste zu erlernende Programmiersprache ausgesucht.
Ich hatte nach einem Einsteigermedium gesucht, habe viele Amazon Rezensionen gelesen und einige in die engere Auswahl genommen.
Ich hatte mich dann für "Einstieg in C++ - Das Praxis-Training" von Thoman Theis
entschieden, wobei das Ausschlaggebende dabei war, dass es in der Stadtbibliothek vorhanden war und die anderen nicht.
Bevor ich mit diesem richtig angefangen hatte zu lernen, habe ich den Crashkurs von OrangeOnBlack durchgearbeitet.Nun ist es so, dass ich bald auch "Einstieg in C++ ..." durchhabe und da setzt sich meine Frage an.
Ich moechte mir nach dem eine weiterfuehrende Literatur zulegen, aber kann mich zwischen drei Werken nicht entscheiden, deshalb wuerde ich euch um Beistand bei der Entscheidung bitten.
1.Werk: Die C++ Programmiersprache, Bjarne Stroustrup (Hanser Verlag, Deutsch)
2.Werk: Einführung in die Programmierung mit C++, Bjarne Stroustrup (Pearson Verlag, Deutsch)
3.Werk: Der C++ Programmierer, Ulrich Breymann (Hanser Verlag, Deutsch)
Was meine Ueberlegungen hierzu sind, dass die Entscheidung eigentlich recht einfach sein sollte und zwar das 1.Werk, da das 2.Werk NICHT "das erste Teil" einer zweibaendigen Buchreihe ist, sondern es eine Art vereinfachte Form darstellt, aber ich habe trotzdem die Befuerchtung, dass wenn ich das 1.Werk zulege, ohne das 2.Werk zugelegt zu haben, dass ich irgendwas "verpasse".
Beim 3.Werk weiß ich nicht ob es ein Zwischending von meinem Niveau und das von dem 1.Werk ist, oder ob es einfach das deutsche Gegenstueck zum 1.Werk ist und somit das gleiche Niveau hat.
Ich wuerde mich freuen von euren Erfahrungen/Wissen zu profitieren.
Mit freundlichen Grueßen
-
Der C++ Programmierer, Ulrich Breymann (Hanser Verlag, Deutsch)
Hab ich als einstieg in die C++ Welt gelesen.
Geht von Grundlagen über Fortegschrittene Themen auf alle Niveaubereiche ein.Kann ich sehr empfehlen.
-
anfaengerc++ schrieb:
habe viele Amazon Rezensionen gelesen und einige in die engere Auswahl genommen.
Uh eine schlechte Idee, damit musst du vorsichtig sein. Es lesen auch Leute diese Bücher, die sich zuvor nie mit C++ beschäftigt haben. Diese Leute können die Qualität eines Buches gar nicht beurteilen, geben aber 5 Sterne Bewertung, weil es keine Rechtschreibfehler gibt oder sonstwas.
Unterm Strich gibt es dann nur eine handvoll Bücher für Anfänger: http://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list + das deutsche Buch Der C++ Programmierer von Breymann
Den fetten Stroustrup Schinken (Die C++ Programmiersprache) würde ich mit als Anfänger defintiv nicht zulegen, ist mehr ein Referenzbuch.
Der Breymann ist gut und für Anfänger, aber nicht einfach. Jemandem mit Realschulabschluss würde ich den auch nicht in die Hand drücken.
Also ich würde den Primer von Lippmann nehmen, falls du in Englisch gut bist. Als deutsches Buch würde ich den Breymann nehmen.
-
Der Breymann ist gut und für Anfänger, aber nicht einfach. Jemandem mit Realschulabschluss würde ich den auch nicht in die Hand drücken.
Ok dann bin das komplette gegenbeispiel. Habs noch vor dem Realschulabschluss gelesen. Aber du hast recht, einfach ist es Stellenweise nicht.
Was die Beispiele angeht find ich, sind sie wie in fast jedem Buch, bei den Haaren herbeigezogen und einfach nur Realitätsfern.
Da hilft einfach nur Praxis, Praxis und nochmal Praxis.
-
@axels.: Danke für deine Empfehlung.
@out: Ich wollte eigentlich noch auf das eingehen, was ich für Erfahrungen mit den Amazon Rezensionen gemacht habe (eine Rezension über Rezensionen quasi), aber ich wollte meinen Text nicht noch länger werden lassen als er es eh schon ist.
Aber kurz zusammengefasst kann man sagen das viele bei Werken wo die Themen einfach nur "drübergewischt" werden, zu gute Rezensionen schreiben.
Ich habe letztes Jahr angefangen Mathematik zu studieren und bin eigentlich einer der gerne alles genau definiert haben möchte und lieber auf zu viel Informationen setzt, statt auf zu wenige. Das Werk mit den ich momentan arbeite ist an manchen stellen einfach nur "mach das, weil isso".(An der jetzigen Uni wird java für Programmieren 1 und 2 gelehrt (habe beides nicht besucht). Ich werde voraussichtlich nächstes Jahr zu einer anderen Uni (LMU) wechseln und dort wird für Programmieren 1 und 2 C++ gelehrt)
Ich möchte weil mich C++ schon seit langem interessiert und weil ich es für die Uni brauchen werde, schon jetzt beginnen es zu lernen.
Mein primäres Ziel ist es mindestens so viel zu wissen, dass mir die beiden Vorlesungen keine Schwierigkeiten bereiten und ich schon einigermaßen kleine Projekte selber angehen kann.
Ich denke ich werde, nach dem ich mit dem jetzigen Werk fertig bin, die beiden Werke von Stroustrup in Angriff nehmen.
Mein Gedanke war ob ich doch nicht gleich mit dem "Die C++ Programmiersprache" anfangen sollte wenn ich schon nach dem Werk das ich bald durchhabe schon genug Vorwissen habe um für "Die C++ Programmiersprache" gewachsen zu sein.
Und wenn ich "Die C++ Programmiersprache" durchaben sollte, sollte ich von dem Buch "Einführung in die Programmierung mit C++" nichts verpasst haben, oder was denkt ihr?Ich habe schon die Tutorials von OrangeOnBlack durch und mein jetziges Werk beinhaltet:
1. Erste Schritte mit C++
01:21 Std.1.1 Einleitung00:27 Min.
1.2 Die Sprache C++ kennenlernen06:57 Min.
1.3 Die Entwicklungsumgebung für Windows einrichten02:39 Min.
1.4 Die Entwicklungsumgebung für Ubuntu Linux06:33 Min.
1.5 Die Entwicklungsumgebung für OS X07:26 Min.
1.6 Das erste Programm: Hallo Welt!08:26 Min.
1.7 Einfache Datentypen verwenden06:01 Min.
1.8 Die Manipulatoren07:16 Min.
1.9 Die Rechenoperatoren09:15 Min.
1.10 Daten über die Konsole eingeben03:53 Min.
1.11 Fehler im Code finden06:10 Min.
1.12 Weitere Datentypen15:58 Min.2. Operatoren und Kontrollstrukturen
01:00 Std.2.1 Einleitung00:26 Min.
2.2 Verzweigungen mit »if« und »else«04:16 Min.
2.3 Vergleichsoperatoren einsetzen07:13 Min.
2.4 Mehrfache Verzweigungen07:21 Min.
2.5 Logische Operatoren verwenden11:47 Min.
2.6 Verzweigungen mit »switch« und »case«05:53 Min.
2.7 Schleifen mit »for«11:16 Min.
2.8 Schleifen mit »do-while«05:14 Min.
2.9 Schleifen mit »while«07:04 Min.3. Funktionen, Zeiger und Referenzen
00:55 Std.3.1 Einleitung00:23 Min.
3.2 Funktionen definieren und aufrufen10:21 Min.
3.3 Daten an Funktionen übergeben05:41 Min.
3.4 Mit Rückgabewerten arbeiten05:55 Min.
3.5 Zeiger und Adressen04:50 Min.
3.6 Zeiger als Parameter verwenden05:39 Min.
3.7 Referenzen übergeben07:53 Min.
3.8 Vorgabewerte verwenden03:01 Min.
3.9 Variable Parameterlisten06:51 Min.
3.10 Funktionen überladen04:35 Min.4. Felder und Strukturen
01:15 Std.4.1 Einleitung00:20 Min.
4.2 Statische Felder09:56 Min.
4.3 Felder und Zeiger04:47 Min.
4.4 Dynamische Felder mit »new« und »delete«07:56 Min.
4.5 Zeichenketten verwenden11:51 Min.
4.6 Zeichenketten als Benutzereingabe09:37 Min.
4.7 Strukturen definieren und nutzen04:23 Min.
4.8 Zeiger auf Strukturdaten09:55 Min.
4.9 Felder von Strukturdaten06:00 Min.
4.10 Strukturdaten in Strukturen11:10 Min.5. Vordefinierte Funktionen
01:05 Std.5.1 Einleitung00:28 Min.
5.2 Zufallszahlen generieren16:26 Min.
5.3 Mathematische Funktionen16:33 Min.
5.4 Datum und Uhrzeit ausgeben08:31 Min.
5.5 Zeiten messen und berechnen11:08 Min.
5.6 Daten mit dem Betriebssystem austauschen12:10 Min.6. Objektorientierung mit C++
01:04 Std.6.1 Einleitung00:28 Min.
6.2 Klassen, Eigenschaften, Methoden und Objekte10:32 Min.
6.3 Die Beispielklasse erweitern09:26 Min.
6.4 Konstruktoren und Destruktoren14:22 Min.
6.5 Statische Elemente definieren06:54 Min.
6.6 Operatoren überladen11:40 Min.
6.7 Objekte als Eigenschaften10:49 Min.7. Vererbung und Polymorphie
01:05 Std.7.1 Einleitung00:28 Min.
7.2 Die Vorteile der Vererbung03:41 Min.
7.3 Vererbung – die Basisklasse07:38 Min.
7.4 Vererbung – die erste abgeleitete Klasse09:30 Min.
7.5 Vererbung – die zweite abgeleitete Klasse04:59 Min.
7.6 Zugriffsbereiche unterscheiden05:08 Min.
7.7 Konstruktoren und Destruktoren bei der Vererbung07:45 Min.
7.8 Das Prinzip der Polymorphie12:35 Min.
7.9 Mehrfachvererbung13:51 Min.8. Datenströme programmieren
01:02 Std.8.1 Einleitung00:27 Min.
8.2 Datenströme schreiben09:08 Min.
8.3 Datenströme lesen08:05 Min.
8.4 Daten formatiert schreiben06:06 Min.
8.5 Daten an beliebiger Stelle lesen04:31 Min.
8.6 Daten an beliebiger Stelle schreiben05:42 Min.
8.7 String-Streams zusammensetzen und schreiben05:43 Min.
8.8 String-Streams lesen und zerlegen04:56 Min.
8.9 CSV-Dateien schreiben08:27 Min.
8.10 CSV-Dateien lesen09:37 Min.9. Templates und die Klassen der STL
01:46 Std.9.1 Einleitung00:32 Min.
9.2 Funktions-Templates09:26 Min.
9.3 Klassen-Templates05:43 Min.
9.4 Die Standard Template Library12:02 Min.
9.5 Iteratoren und Arrays11:13 Min.
9.6 Stapel und Vektoren13:34 Min.
9.7 Warteschlangen verwenden09:18 Min.
9.8 Listen einsetzen12:44 Min.
9.9 Mit Sets arbeiten10:50 Min.
9.10 Maps verwenden11:11 Min.
9.11 Algorithmen der STL10:21 Min.10. Ausnahmebehandlung und fortgeschrittene OOP
00:50 Std.10.1 Einleitung00:26 Min.
10.2 Kopierkonstruktor und Zuweisungsoperator12:18 Min.
10.3 Befreundete Elemente erzeugen08:18 Min.
10.4 Namensbereiche definieren06:35 Min.
10.5 Ausnahmen behandeln08:15 Min.
10.6 Ausnahmen »werfen«06:29 Min.
10.7 Eigene Fehlerklassen definieren05:38 Min.
10.8 Eigenschaften initialisieren02:25 Min.11. Grafische Benutzeroberflächen mit der Qt-Bibliothek
01:09 Std.11.1 Einleitung00:22 Min.
11.2 Qt in Windows installieren02:17 Min.
11.3 Qt in Linux installieren02:17 Min.
11.4 Qt in OS X installieren03:43 Min.
11.5 Eine GUI-Anwendung gestalten07:12 Min.
11.6 Die erste GUI-Anwendung programmieren06:30 Min.
11.7 Kopfrechenprogramm – Aufgabe anzeigen09:30 Min.
11.8 Kopfrechenprogramm – Eingabe prüfen04:33 Min.
11.9 Auswahl-Elemente gestalten07:52 Min.
11.10 Auswahl-Elemente auswerten07:20 Min.
11.11 Weitere Elemente gestalten08:38 Min.
11.12 Weitere Elemente auswerten09:30 Min.12. Datenbanken mit SQLite
00:52 Std.12.1 Einleitung00:36 Min.
12.2 Datenbank und Verbindung erzeugen07:52 Min.
12.3 Eine Tabelle anlegen06:26 Min.
12.4 Daten erzeugen04:09 Min.
12.5 Die Daten anzeigen05:42 Min.
12.6 Die Daten auswählen09:23 Min.
12.7 Daten nach der Eingabe auswählen07:10 Min.
12.8 Die Anzeige der Daten sortieren03:38 Min.
12.9 Daten ändern und löschen07:43 Min.
-
Ich rate dir wirklichn von online Tutorials ab. Hab eben einen kurzen Blick in das OrangeOnBlack Tutorial geworfen:
void bei leerer Paramterliste, Behandlung von Arrays und Zeigern relativ weit am Anfang. Also ein gutes C++ Buch behandelt das für mich relativ weit am Ende so als Zusatzinfo.Den fetten Referenzschicken vom Struppi lese ich wenn ich zu viel Zeit habe, mich schon mit C++ ausgenne und Hardcorler bin. Das Buch geht auch oft tiefer rein und hat Inhalte die ich eigentlich nicht wissen muss.
Wenn du eins vom Struppi nehmen willst, dann nimm Programming Principles and Practice Using C++ (Second Edition). Das nimmt er auch im Unterricht bei seinen Studenten.