"Modernes C++ Design" oder "C++ Templates"?
-
Hallo,
ich hab bald den Primer fertig gelesen (wurd auch langsam Zeit). Außerdem hab ich je ein Viertel von einem Buch über die STL (heißt auch "Die STL" oder so) und Java gelesen. Wegen letzterem kenn ich Design Patterns ein wenig. Jetzt stellt sich für mich die Frage, ob ich mir
C++ Templates | ISBN: 0201734842 (http://www.c-plusplus.net/titelanzeige.php?ISBN=0201734842) oder Modernes C++ Design | ISBN: 3826613473 (http://www.c-plusplus.net/titelanzeige.php?ISBN=3826613473)
besorgen soll. Ich wollte mir vorher noch "Effektiv C++ programmieren" und "Mehr effektiv C++ programmieren" besorgen, eventuell auch noch "Exceptional C++". IMHO sind meine Englischkenntnisse gut genug, um "C++ Templates" zu lesen. Bin ich schon weit genug, um mich an "Modernes C++ Design" oder "C++ Templates" zu versuchen?
-
Also IMHO kannst Du aus Effective C++ und (More) Exceptional C++ wesentlich mehr für's everyday-programming ziehen, als aus den beiden anderen Büchern. Insbesondere wenn Du noch nicht so viel Erfahrung hast.
-
"C++ Templates" hab ich leider nicht gelesen. Aber "Modernes C++ Design" ist IMHO ziemlich gut, da du dort Lösungen von vielen Designproblemen findest. Außerdem versteht man auch den Aufbau von Teilen der Boost-Library besser.
Aber ich würde vorher Effektiv C++ und Exceptional C++ lesen, da du damit erstmal lernst, typische Programmierfehler zu vermeiden.
-
Modern C++ Design ist echt 'heavy'. Da würde ich lieber zuerst C++ Templates lesen - denn ohne gutes Template wissen, steht man bei Alexandrescu schnell an.
C++ Templates ist relativ leicht, weil alles schön langsam erklärt wird.
Aber Effective C++ wäre wohl jetzt wirklich am besten für dich.
-
Shade Of Mine schrieb:
C++ Templates ist relativ leicht, weil alles schön langsam erklärt wird.
Das würde ich so nicht unterschreiben wollen. Der erste Teil (das Tutorial) ist eine hervoragende und leicht verständliche Einführung in die Welt von Templates. Der zweite Teil (die Theorie) ist alles andere als leicht, da muss man schon etwas beißen (ok, wer den Standard nebenbei in der U-Bahn lesen und verstehen kann, der wird über die Komplexität des zweiten Teils lachen, aber wer kann schon den Standard nebenbei in der U-Bahn lesen?).
Der dritte und vierte Teil ist keinesfalls ohne und imo etwa auf dem Niveau von Modern C++ Design. Dafür aber besser strukturiert und weniger "freaky".Ich halte beide Bücher für sehr empfehlenswert. Im entweder-oder-Fall würde ich eher zu "C++ Templates" raten. Was die Reihenfolge bezüglich (More) Effective C++ bzw. (More) Exceptional C++ (Style) angeht, schließe ich mich meinen Vorrednern an. Zumindest eines der 5 Bücher sollte man zuvor gelesen haben.
-
HumeSikkins schrieb:
Der zweite Teil (die Theorie) ist alles andere als leicht, da muss man schon etwas beißen (ok, wer den Standard nebenbei in der U-Bahn lesen und verstehen kann, der wird über die Komplexität des zweiten Teils lachen, aber wer kann schon den Standard nebenbei in der U-Bahn lesen?).
Mit 'leicht' meinte ich: es wird alles schön erklärt.
Wenn wir zB Modern C++ Design betrachten oder auch Generative Programming, da muss man viel Wissen mitbringen um mitzukommen. Denn es wird logischerweise nicht alles erklärt und dann heisst es auch noch immer so schön "und dies zu implementieren sei dem leser vorbehalten" womit auch nicht immer alles klar ist.
Der dritte und vierte Teil ist keinesfalls ohne und imo etwa auf dem Niveau von Modern C++ Design. Dafür aber besser strukturiert und weniger "freaky".
Fand ich ehrlich gesagt nicht so schlimm - denn die ganzen Basics und die Theorie steht ja am Anfang drinnen und es wird auch schön alles ausschweifend erklärt.
Dass es trotzdem kein Bilderbuch ist, ist klar
Und Effective C++ liest sich auch besser und leichter. Aber C++ Templates ist kein Buch das einem schnell "zu schwer" werden kann - weil ja wirklich alle infos vorhanden sind.
Im Gegensatz zu Modern C++ Design ist es ja auch ein Template Lehrbuch - Modern C++ Design beschreibt der Untertitel besser: "Generic programming and design patterns applied" - es geht dort ja darum, wie man mit Hilfe von Templates Design Pattern schön wiederverwendbar macht. Ohne fundierte Grundlagen bringt es einem also nicht viel.
Deshalb halte ich "C++ Templates" durchaus für Anfänger (im Sinne von: erstes C++ Lehrbuch + (Effective C++|Exceptional C++) durchgelesen) durchaus für angebracht, während ich von Modern C++ Design lieber noch abraten würde (vorallem weil die Praxisrelevanz für 'Anfänger' fehlt).
-
Die Frage ist, wie viel ich von C++ Templates nachher habe. Im Primer steht schon relativ viel über Templategenerierung und vor allem auch über die Auflösung. Die dürfte mir klar sein. Aber wenn das andere zu schwer ist... Also, (Mehr) Effektiv C++ programmieren wollt ich mir auf jeden Fall kaufen. Exceptional C++ wohl auch.
-
Ich merke grad, dass mein Post so ne abschließende Wirkung hatte. Also muss noch einer her
Allein vom Inahlt her würd ich eher zu Modern Design tendieren, weil mein Design noch arge Schwierigkeiten hat (so zu werden, wie ichs mir vorstelle
). Das Buch baut ja auch auf Templates auf. Reichen dafür die Templatelektionen vom Primer?
-
modern c++ design ist _echt_ ein harter brocken. Ich glaub ich kann von mir sagen,d ass ich in punkto templates schon einiges an ahnung hab, aber zb das thema virtuelle fabrik hat mich einiges an schweis und arbeit gekostet, um dahinterzukommen, was da genau passiert. Im endeffekt sag ich, dass man nie genug vorwissen über templates haben kann, um da ranzugehen, obwohl ich sagen würde, dass es ein pflichtbuch ist, um mal einen ausblick auf das zu bekommen, was profis mit der sprache machen
-
otze schrieb:
Im endeffekt sag ich, dass man nie genug vorwissen über templates haben kann, um da ranzugehen
In Exceptional C++ Style bringt es Sutter in bezug auf Alexandrescu wirklich auf den Punkt:
Es geht um den Variant Typ (ein schnelleres boost::any) und Sutter meint bezüglich dass sich Alexandrescu damit beschäftigt hat:
"it can involve weird templates, and just one quote from "Discriminated Unions" (CUJ) says it all: 'Did you know that unions can be templates'"
Das trifft es exakt: was Alexandrescu mit Templates anstellt ist in meinen Augen schon fast Magie - das zu verstehen ist dann natürlich auch extrem kompliziert: also vor jemanden der Modern C++ Design liest und sich denkt: so hätte ich es auch gemacht hätte ich echt angst... *Seitenblick auf Hume...?*
-
Also zuerst C++ Templates?
-
Modern C++ Design wird Dir nicht wirklich helfen ein besseres Design zu finden. Dort ist beschrieben, wie man einige Patterns sehr elegant und flexibel in C++ implementieren kann. Es werden auch die verwendeten Techniken sehr genau erklärt, so daß Du sowas auch bauen kannst, aber letztlich geht es in dem Buch nicht wirklich um Design(also Entwurf) im klassischen Sinne.
MfG Jester