C++ kennen lernen!
-
Ja, und wenn ich mir schon das HelloWorld-Programm anschaue, stelle ich fest, das es auf meinem ISO-C++-Compiler schon in der ersten Zeile vom Preprozessor einen Error geben würde. Ganz davon abgesehen, das die Klassen und OO erst sehr spät in dem Buch vorkommen. Es ist das typische C/C++-Buch, das man eigentlich meiden sollte.
-
kreater schrieb:
nur weil da was von "in 21 tagen" steht, heisst das nicht, dass man jedes kapitel in je einem tag absolvieren muss, falls dir das nicht klar war. es gibt keine offensichtlichen kritik punkte an diesem buch und da selbst mein programmier lehrer dieses buch als unterrichtshilfe nimmt, denke ich, kann es nicht so schlecht sein.
Ich kann dir sagen was an den Büchern dieser Reihe schlecht ist, zumindestens bezogen auf alle Bücher die ich davon schon in der Hand hatte, und bezogen auf die Bücher wo ich von anderen die Mankos gehört habe (Was genau die selbsen Mankos waren).
Es geht dabei auch nicht darum das man sich rigeros an die Tage halten muss, aber die Bücherqualität leidet sehr stark unter der Zielsetzung. Die Bücher sind so aufgebaut das man den Inhalt in 21 Tagen durchhaben kann. Auf der Strecke bleibt bei vielen das Verstehen da wichtige Details kaum beachtung finden, und das worum es beim Programmieren eigentlich geht als solches auf der Strecke bleibt. Diese Reihe mag für diejenigen mit Unterstützung anderer Bücher und Dozenten die, die Lücken füllen geeignet sein, zum Selbststudium eines Anfängers in der Regel aber nicht.
Gut, mag sein das M&T ausnahmsweise mal wieder ein gutes Buch herausgebracht hat, das wäre aber das erste seit 15 Jahren von dem ich gehört hätte. Und sowenige von denen hatte ich in den letzte 15 Jahren nicht in der Hand (wenn gleich ich selbst schon etwa 10 Jahre keine mehr von denen kaufe).
cu André
-
kreater schrieb:
es gibt keine offensichtlichen kritik punkte an diesem buch
Doch, die gibt es. Die "in 21 Tagen"-Reihe versucht innerhalb von 21 Lernabschnitten, fuer die jeweils ca. 1 Tag angesetzt wird, ein Thema abzuhandeln, das minimal 2-3 Monate, eher laenger braucht. Das Resultat ist ein oberflaechliches Halbwissen, das man einigen Beitraegen hier im Forum von der ersten Zeile an ansieht
da selbst mein programmier lehrer dieses buch als unterrichtshilfe nimmt, denke ich, kann es nicht so schlecht sein.
Lehrer sind leider kein Massstab. Es ist zwar loeblich, dass du deinen Lehrer als oberste Autoritaetsperson anerkennst, aber gerade Lehrer tendieren leider oft dazu, das, was sie vor 10-20 Jahren gelernt haben, auch heute noch weiterzuverbreiten. In Gechichte und Mathe mag das angehen, bei so schnellebigen Dingen wie einer programmiersprache leider nicht.
-
Ich kann für den Einstieg das Buch "C++ - Objektorientiertes Programmieren von Anfang an" von Helmut Erlenkötter (~10€, glaube ich) empfehlen.
Es ist verständlich geschrieben und befähigt den Leser zu einfachen Konsolenanwendungen mit allen wichtigen Basics. Dabei wird für komplette Einsteiger auch erklärt, was denn eigentlich Variablen oder Funktionen sind. Windows-Funktionen werden nicht berücksichtigt, die sollte ein Anfänger aber sowieso erstmal meiden.
Ich habe das Buch damals aufgrund seiner kompakten Größe als Möglichkeit gesehen, C++ mal anzutesten und zu entscheiden, ob diese Sprache die richtige Wahl für mich ist. Weiterführende Lektüre im Anschluss ist natürlich Pflicht. Da reichen meiner Meinung nach aber auch die zahlreichen Tutorials im Internet.
Gruß Matze
-
pumuckl schrieb:
Lehrer sind leider kein Massstab. Es ist zwar loeblich, dass du deinen Lehrer als oberste Autoritaetsperson anerkennst, aber gerade Lehrer tendieren leider oft dazu, das, was sie vor 10-20 Jahren gelernt haben, auch heute noch weiterzuverbreiten. In Gechichte und Mathe mag das angehen, bei so schnellebigen Dingen wie einer programmiersprache leider nicht.
Wie Recht du hast! Uns wurde damals in der Berufsschule ein C++-Lehrer vorgesetzt, der mit Sicherheit niemals ein einziges, richtiges Programm geschrieben hat. Ständig wurde er von uns Schülern korrigiert und wusste kaum Fragen zu beantworten. Dass er mir nicht mal sagen konnte, wie in C++ die Entsprechung für die Clipper-Funktion CHR() (int=>string) ist bzw. wie ich aus meinem int ein char* kriege (also z.B. itoa) war schon peinlich...
Gruß Matze
-
10 EUR sind ja wirklich günstig.
Gibts auch irgendwo ein Inhaltsverzeichnis zu sehen? Habe auf der Verlagshomepage keine gefunden, nur die Beispiel-Codes als Download. Ehem... also ich habe da beim sporadischen Rauspicken der Beispiel-Codes kein einziges Mal den Einsatz der String-Klasse gesehen.
Selbst in bspl0098.a.h wurde im klassischen Adresse-Beispiel kein String benutzt, sondern fröhlich char-Arrays. Nach 98 Beispielen sollte man schon std::string erwarten. (eigentlich schon am Anfang!) In den insgesamt 31 Aufgaben war in Aufg18.cpp noch strcpy im Einsatz. Spätere Aufgaben sahen auch nicht besser aus.Ich gebe zu, ich habe nicht das Buch sondern nur die Beispiel-Codes dazu. Aber es sieht mir nach einem klassichen C/C++-Buch und nicht C++-Buch aus.
Ich würde das keinem Empfehlen!
-
Du hast Recht, die std::string Klasse wird im Buch nicht benutzt und nur am Rande erwähnt, glaube ich. Es handelt sich aber, wie gesagt, eher um ein Büchlein als ein Buch. Es werden die Grundlagen vermittelt (und das sind für mich char-Arrays), und das Buch ist auch für absolute Programmier-Neulinge ohne Vorkenntnisse geeignet.
Ich finde es gar nicht verkehrt, wenn ein Anfänger erstmal char* in- und auswendig lernt. Danach kann man sich mal ansehen, was einem std:string oder CString zu bieten haben. Unter diesem Aspekt ist das Buch eine gute Sache, und auch weil es verständlich geschrieben ist. Wie gesagt, weitere Lektüre ist Pflicht.
BTW: Vielleicht liegt es daran, dass ich selbst noch ziemlich am Anfang stehe in Sachen C++-Programmierung, aber ich habe nie verstanden, warum viele es kritisch sehen, wenn man in C++-Programmen "C-Funktionen" (die oft zum Standard gehören) benutzt. Was spricht denn dagegen?
Gruß Matze
-
_matze schrieb:
Ich finde es gar nicht verkehrt, wenn ein Anfänger erstmal char* in- und auswendig lernt.
Ich finde es ein Fehler, da man sich nicht gleich mit Pointerarithmetik und den dazu gehörenden Problemen konfrontiert werden sollte. Da wäre es besser wenn man mit std::string anfängt und mit char* aufhört als umgekehrt.
_matze schrieb:
BTW: Vielleicht liegt es daran, dass ich selbst noch ziemlich am Anfang stehe in Sachen C++-Programmierung, aber ich habe nie verstanden, warum viele es kritisch sehen, wenn man in C++-Programmen "C-Funktionen" (die oft zum Standard gehören) benutzt. Was spricht denn dagegen?
Fehleranfälligkeit, unnötige Komplexität und andere Herangehensweisen. C++ ist auch ohne die C-Bibliothek mächtig genug um grade Anfänger ins straucheln zu bringen. Zudem tendieren Leute die mit C in Berührung kamen dazu C++ in vielen Teilen wie C zu verwenden - Kenntnisse in C kann man sich später immer noch erarbeiten - zu Begin rate ich davon aber dringens ab.
cu André
-
Einige C-Bibliotheken sind schon _sehr_ sinnvoll. Zum Beispiel <cmath>. Da hat C++ nichts vergleichbares.

-
Wenn es in C++ keinen Kandidaten gibt, ist es sicherlich mehr als richtig, auf die C-Lib zuzugreifen, wenn man keine externe C++-Alternative findet. Aber bei String, Vector u.ä. ist es definitiv nicht so. Also steht <cmath> garnicht zur Diskussion.
Weißte wie mir dieses char-pointer-Handling in C++ vorkommt? Wie die Autos von Fred Feuerstein. Die benutzen zwar Autos, müssen am Ende aber trotzdem mit den Füssen laufen.
Das ist nicht der Sinn eines Autos und somit nicht von C++.
-
Aber wenn es rollt, rollt es. Und wenn es bergab geht, geht es ganz schnell.

-
Fellhuhn schrieb:
Aber wenn es rollt, rollt es. Und wenn es bergab geht, geht es ganz schnell.

Ja, aber C++ Neulinge sollten lieber nicht nach dem Motto: "Runter kommen sie alle" und "Je höher desto Platsch" lernen ;p
-
Fellhuhn schrieb:
Einige C-Bibliotheken sind schon _sehr_ sinnvoll. Zum Beispiel <cmath>. Da hat C++ nichts vergleichbares.

korrigiert mich, wenn ich mich irre, aber cmath ist doch in c++ implementiert... basiert zwar auf math.h, aber während math.h fast nur über #define arbeitet, werden in cmath durchaus auch template-Funktionen verwendet
-
Oh, stimmt. Dann halt <ctime>. :p
-
Hab da ein ideales Buch für Dich. Hab erst vor kurzem mit C++ angefangen zu Programmieren und hatte auch noch 0% Vorkentnisse.
Diese Buch erklärt alles von Anfang an (ist jedoch nur für den Einstieg!):Beschreibung des Buches:
Seiten: 384
Preis: 16,95 EUR [D]
ISBN: 3-8272-6967-9Dieses Buch zeigt, dass auch C++ ganz easy sein kann. Speziell auf den Programmierneuling zugeschnitten, fängt es ganz von vorne an und führt leicht verständlich in die Grundlagen dieser leistungsfähigen Programmiersprache ein. Viele praktische Beispiele, die dank des beiliegenden Compilers sofort ausprobiert werden können, begleiten jeden neuen Befehl.
viel Spass beim Pogrammieren wünscht
CMan
-
Hab da ein ideales Buch für Dich. Hab erst vor kurzem mit C++ angefangen zu Programmieren und hatte auch noch 0% Vorkentnisse.
Diese Buch erklärt alles von Anfang an (ist jedoch nur für den Einstieg!):Beschreibung des Buches:
Seiten: 384
Preis: 16,95 EUR [D]
ISBN: 3-8272-6967-9Dieses Buch zeigt, dass auch C++ ganz easy sein kann. Speziell auf den Programmierneuling zugeschnitten, fängt es ganz von vorne an und führt leicht verständlich in die Grundlagen dieser leistungsfähigen Programmiersprache ein. Viele praktische Beispiele, die dank des beiliegenden Compilers sofort ausprobiert werden können, begleiten jeden neuen Befehl.
viel Spass beim Pogrammieren wünscht
CMan