Gutes C++ Buch!
-
Wer C++ in einem Buch für C++ Anfänger lernt, der lernt in 95% der Fällen eher C als C++. Ich kann nur GANZ STARK folgendes Buch empfehlen (sobald man die C++ basics einigermaßen kann):
C++ FAQsMan kann noch so gut Algorithmen entwickeln, aber wenn man nicht diszipliniert und durchdacht Sachen wie RAII, Exception Handling, Namenskonventionen usw. anwendet, dann wird man auch niemals ein guter C++ Programmierer sein (sondern höchstens ein guter C Programmierer)...
mfg, René~
-
NewSoftzzz schrieb:
Wer C++ in einem Buch für C++ Anfänger lernt, der lernt in 95% der Fällen eher C als C++.
Kommt vor allem auf das Alter des Buches an. Aktuelle Bücher sind inzwischen auch so weit, dass sie nichtmehr den Weg C->C++ gehen.
-
pumuckl schrieb:
Kommt vor allem auf das Alter des Buches an. Aktuelle Bücher sind inzwischen auch so weit, dass sie nichtmehr den Weg C->C++ gehen.
Dann fehlen dem lernenden aber einige Grundlagen, die er gebrauchen könnte. Z.B. das Verständnis, was ein Programm überhaupt machen soll und wie. Welcher Fahranfänger setzt sich gleich in einen Formel-1-Rennwagen? Ich finde keine geeigneten neuen Bücher, mit denen man für den nachgefragten Zweck etwas anfangen könnte.
-
berniebutt schrieb:
pumuckl schrieb:
Kommt vor allem auf das Alter des Buches an. Aktuelle Bücher sind inzwischen auch so weit, dass sie nichtmehr den Weg C->C++ gehen.
Dann fehlen dem lernenden aber einige Grundlagen, die er gebrauchen könnte. Z.B. das Verständnis, was ein Programm überhaupt machen soll und wie.
Wieso braucht man dafür C? Alleine die Threads von Neulingen in diesem Forum, die mit C angefangen haben, weisen darauf hin, dass das nicht unbedingt der beste Weg ist. Man lernt veraltete Low-Level-Techniken, die in C++ meist nicht mehr verwendet werden, aber wegen der Abwärtskompatibilität praktischerweise weiterhin funktionieren. Entsprechend fehlt oft die Motivation für einen Umstieg, und umständliche Vorgehensweisen und deren Probleme setzen sich fest. Ein Umlernen gestaltet sich meist schwieriger als unvoreingenommenes Neu-Lernen.
Man muss C nicht beherrschen, um C++ lernen zu können. Ich behaupte sogar, dass es sich eher negativ auswirkt (von wenigen vorbildlichen Anfängern, die bisher Gelerntes vorerst vergessen, mal abgesehen). Dinge wie Zeiger lernt man in C++ ebenso gut kennen, doch nebenbei wird einem auch beigebracht, von fehleranfälligen Low-Level-Mechanismen wie manueller Speicherverwaltung zu abstrahieren und moderne Konzepte wie Objektorientierung und generische Programmierung einzusetzen.
berniebutt schrieb:
Welcher Fahranfänger setzt sich gleich in einen Formel-1-Rennwagen?
Welcher Fahranfänger setzt sich vor dem Fahren mit Thermodynamik und Mechanik auseinander?
-
Nexus schrieb:
Man muss C nicht beherrschen, um C++ lernen zu können. Ich behaupte sogar, dass es sich eher negativ auswirkt (von wenigen vorbildlichen Anfängern, die bisher Gelerntes vorerst vergessen, mal abgesehen). Dinge wie Zeiger lernt man in C++ ebenso gut kennen, doch nebenbei wird einem auch beigebracht, von fehleranfälligen Low-Level-Mechanismen wie manueller Speicherverwaltung zu abstrahieren und moderne Konzepte wie Objektorientierung und generische Programmierung einzusetzen.
Schön, dann muss man aber gleich sehr viel auf einmal lernen. Ich behaupte, jeder low-level-Einstieg bringt Anfängern mehr Verständnis für das, was er tun will und noch nicht voll beherrscht!
-
berniebutt schrieb:
Schön, dann muss man aber gleich sehr viel auf einmal lernen.
Ach, ist es besser bestimmte Bereiche zweimal zu lernen? Muss ich erst Bayrisch lernen, damit ich Hochdeutsch lernen darf?
berniebutt schrieb:
Ich behaupte, jeder low-level-Einstieg bringt Anfängern mehr Verständnis für das, was er tun will und noch nicht voll beherrscht!
Man kann low-level auch in C++ Programmieren, ohne zusätzlich die C-Spezialitäten lernen zu müssen. Man muss nicht die C-Kompatibilitätsheader verwenden, wo es C++ Alternativen gibt.
-
berniebutt schrieb:
Schön, dann muss man aber gleich sehr viel auf einmal lernen. Ich behaupte, jeder low-level-Einstieg bringt Anfängern mehr Verständnis für das, was er tun will und noch nicht voll beherrscht!
Ich denke das ist einfach sehr subjektiv. Ich persönlich habe auch lieber einen detailierten Einstieg, aber viele wollen zuerst nicht mit so viel Zeugs konfrontiert werden.
Z.B bei uns an der Uni wird erstmal Eiffel eingeführt. Eine Sprache, welche ohne jegliches Low Level Zeugs auskommt. Viel sind damit anscheinend sehr gut zu recht gekommen gleich mit Klassen zu arbeiten und sich Gedanken über Polymorphie zu machen, anstatt zuerst mal über die Implementierung von Arrays, Umgang mit Zeiger usw. zu beschäftigen.Ich habe zwar auch zuerst mal C gemacht, aber wirklich programmieren gelernt habe ich richtig gleich mit C++.
-
Das sieht mir hier verdächtig nach einem weiteren "C vs. C++"-Flamewar aus und hat wohl kaum noch was mit Buchempfehlungen für den OP zu tun. Ich denk mal wenn da nichts konstruktives zum Thema mehr kommt mach ich hier dicht. Die Diskussion mit welcher Sprache man anfangen sollte hatten wir schon gefühlte 70mal ohne Ergebnis.
-
pumuckl schrieb:
Das sieht mir hier verdächtig nach einem weiteren "C vs. C++"-Flamewar aus und hat wohl kaum noch was mit Buchempfehlungen für den OP zu tun. Ich denk mal wenn da nichts konstruktives zum Thema mehr kommt mach ich hier dicht. Die Diskussion mit welcher Sprache man anfangen sollte hatten wir schon gefühlte 70mal ohne Ergebnis.
Hmm. Scheint so.
@OP
Es sei dir gesagt, dass du definitiv kein C können musst, um C++ zu lernen. Viele (unter anderem auch ich) haben das auch so hingekriegt. Jeder der was anderes behauptet liegt falsch. (Beweis durch Gegenbeispiel. ;))
Aber gewisse Paralellen lassen sich nicht abstreiten, aber gewisse Ähnlichkeiten hat jede Sprache anderen.
-
Vielen Dank für die schnellen Antworten.
-
Was ist mit Breymann, ich denke das ist nicht zu C-lastig.
Ist nicht ganz einfach, aber geht sehr in die Tiefe.
Ich glaube den gibt es mittlerweile in der 9. Auflage.
-
Der C++ Programmierer - Ulrich Breymann
Sehr gutes Buch!
-
Ulrich Breymanns Buch kann man bedenkenlos empfehlen! Sehr aktuell, echtes C++, sehr umfangreich, kein C und trotzdem werden Bits & Bytes erklärt.
-
NewSoftzzz schrieb:
Man kann noch so gut Algorithmen entwickeln, aber wenn man nicht diszipliniert und durchdacht Sachen wie RAII, Exception Handling, Namenskonventionen usw. anwendet, dann wird man auch niemals ein guter C++ Programmierer sein (sondern höchstens ein guter C Programmierer)...
Du hast übersehen, der Fragesteller ist diplomierter Elektro-Techniker. Für ihn erscheinen die fachspezifischen Algorithmen sehr viel wichtiger als einiges von dem, was deiner Meinung nach einen guten C++ Programmierer ausmacht. Disziplin und saubere Namenskonventionen waren schon immer wichtig, das ist nichts neues in C++.
-
Dieser Beitrag wurde gelöscht!