WARNUNG: Bücher von Jürgen Wolf zu C und C++ zum Lernen ungeeignet weil...
-
Ich hatte jetzt mit "C von A bis Z" angefangen und bin durch einen anderen Post hierher gelangt... wusste nicht, dass das Buch so schlecht sein soll. Habe mir nun "C -Kurs AOL-Programmierforum" aus eurem Tutorialarchiv heruntergeladen, ich hoffe, das wird mir besser als Grundlage dienen.
-
[19:23:42] <Paprikachu> ich geb dir n tipp: struct node { node* prev; node* next; T data; };
[19:23:53] <Hacker> aja
[19:23:55] <Hacker> genau
[19:24:02] <Hacker> ok, mach mich dran es zu lernen
[19:24:51] <Hacker> sag mal, machts da sinn den struct alsn typedef zu machen?`
[19:25:02] <Paprikachu> nö
[19:25:04] <Paprikachu> wozu
[19:25:10] <Hacker> kp
[19:25:18] <Paprikachu> das macht man nur in C
[19:25:27] <Hacker> ???
[19:25:35] <Hacker> wie dass? gibt kein typedef in C
[19:25:39] <Paprikachu> türlich
[19:25:48] <Hacker> ??????
[19:25:49] <Paprikachu> typedef struct {} foo;
[19:25:56] <Hacker> ????????????
[19:26:01] <Hacker> seit wann?
[19:26:12] <Paprikachu> immer schon
[19:26:16] <Hacker> in c++ von a bis z steht, soweit ich mich erinner was anderesSorry Hacker, ich kann nicht anders
-
kp. Hab nachgeguckt, steht nicht so da, hab ich aber so verstanden
-
Dickes LOL.
Zur Erklärung:
In C gilt (galt? Bin nicht auf dem neuesten C-Stand, sorry. Hatten die das nicht auch angepaßt?), daß man schreibtstruct Node{Node* prev; Node* pred; double data;};
und man verwendet es mit
struct Node n;
Man kann (konnte?) nicht schreiben
Node n;
Aber mit typedef kann man das dann doch hinkriegen.
Erstmal plump:struct Node{Node* prev; Node* pred; double data;}; typedef struct Node NodeType;
und jetzt geht weiterhin natürlich
struct Node n;
aber auch das praktische
NodeType n;
Ok, und dann hat man sich angewöhnt, es so zu machen:
struct Node_tag{Node* prev; Node* pred; double data;}; typedef struct Node_tag Node;
nebst
Node n;
Und später sogar
typedef struct {Node* prev; Node* pred; double data;} Node;
nebst
Node n;
Das war in C++ aber nie ein Thema.
In C++ war schon immer, daß man mit struct oder class Typen baut, die sich sozusagen wie int anfühlen.struct Node{Node* prev; Node* pred; double data;};
nebst
Node n;
Falls C++ von A-Z da einen typedef echt reingehauen hat, war das ein Versehen, weil er den Code von C gecopypastet hat und nicht nach C++ umgestellt. Kann ich aber kaum glauben. So panne ist auch Jürgen Wolf nicht.
-
volkard schrieb:
So panne ist auch Jürgen Wolf nicht.
Oh, Schei..., dann bin ich ja panne. Ich hab nähmlich auch in C++ die Angewohntheit
typedef struct tagFoo { int bar; char foobar; double barfoo; } Foo;
zu schreiben.
Ach ja zum Thema JW (hab den Thread jetzt erst entdeckt): Ich persönlich habe noch nie ein JW-Buch in der Hand gehabt, find sie aber, nach dem was ich hier im Forum gelesen hab, ganz gut. Jediglich der Titel passt nicht. Müsste eher heißen: "C++ - wie man es nicht machen sollte". :p
-
Volkard was du an C Code schreibst ist falsch. Einfach mal was wildes zusammen schreiben ist genau so schlimm wie der Herr Wolf. Vor allem weil du deine Snippets einfach kurz mit deinem Compiler hättest testen können, z.B. gcc -c -std=c89.
Man muss in der Definition des structs schon einen gültigen Bezeichner aus dem "tag space" verwenden, in den meisten deiner Fälle ist das "struct Node" statt "Node".
Übrigens ist
typedef Node_tag Node; Node Node; /* <-- Deklaration einer Variablen Node vom Typ Node. */
auch legal, aber empfohlen wird, wie in deinem letzten Beispiel ein _tag anzuhängen.
Ansonsten wer wirklich 0.02€ Ahnung von C haben will der kommt um
Expert C Programming | ISBN: 0131774298
nicht herum. Da steht alles drin was einen Elektrotechniker von einem C Guru unterscheidet.
-
Jonas OSDever schrieb:
Oh, Schei..., dann bin ich ja panne. Ich hab nähmlich auch in C++ die Angewohntheit
typedef struct tagFoo { int bar; char foobar; double barfoo; } Foo;
zu schreiben.
Naja, da kann ich Dich beruhigen.
Das ist in C++ ganz sicher nicht mehr nötig.
-
C-Expert schrieb:
Volkard was du an C Code schreibst ist falsch. Einfach mal was wildes zusammen schreiben ist genau so schlimm wie der Herr Wolf. Vor allem weil du deine Snippets einfach kurz mit deinem Compiler hättest testen können, z.B. gcc -c -std=c89.
Kindchen, ich habe persifliert, was Praxis ist. Hast Du an meiner historischen Herleitung was auszusetzen?
-
Also ich habe "C von A bis Z" gelesen fand es gut und habe mir direkt "C++ von A bis Z" bestellt und bin es auch durchgegangen.
Nach einigen Fragen hier im Forum wurde ich vom volkard nicht besonders freundlich in die Existenzkrise gestürzt.
Am Anfang mag man vieles nicht glauben aber da ich schon über 5 Jahre C++ programmiere und einiges aber bei weitem nicht alles mittlerweile selbst einschätzen kann gruselt es mir was ich da über Jahre hin programmiert habe.
J. Wolfs C oder C++ Bücher haben meiner Software sehr großen Schaden hinzugefügt. Selbst heute muss ich vieles im alten Code verändern/wrappen/abfangen. So wird es euch allen ergehen wenn ihr mit Wolfs Büchern anfängt und irgendwann richtig programmieren lernt.
Ich glaube dass ich das nächste mal beim erlernen einer neuer Sprache viel vorsichtiger sein und mich nicht auf die Amazon Rezensionen von Leihen verlassen werde.
Mein Dank an Diejenigen die mich permanent angeflamed und manchmal zur Verzweiflung gebracht haben: volkard,krümmelkacker,seppj,...
Es könnte zwar ein wenig freundlicher gehen aber es hat geholfen.
-
asddsdsasad schrieb:
Es könnte zwar ein wenig freundlicher gehen aber es hat geholfen
Und das soll es doch auch, Jungchen. Alles ist heile (◕‿◕)
-
Ihr treibt JW in Hartz 4 wenn ihr so weiter macht
-
SeppJ schrieb:
cvcv schrieb:
@SeppJ Nun, ich kenne das Buch nicht, villeicht gibt es eine .pdf-Version um mal reinzuschauen. Aber Ausgabestreams sollte selbst JW. noch anständig erklären können.
1. Er will in dem Buch gar nicht vollständig erklären. Er nimmt an, dass man einigermaßen weiß, was man tut und nur noch einen Fingerzeig braucht, um zu kapieren. Und das macht das Buch sogar ganz gut, siehe mein Review.
2. Ich bezweifle, dass Herr Wolf in der Lage wäre, die Streams wirklich gut zu erklären. Die Streams sind ziemlich komplex, sehr abstrakt und sehr mächtig. Ich behaupte sogar mal, dass nur wenige Leute hier im Forum die Streams richtig im Detail verstanden haben (Werner Salomon zum Beispiel) und ich zähle mich selber nicht dazu.
Die meisten Anfängerbücher hinterlassen hingegen den Eindruck, dass cin und cout nur objektorientierte Varianten von scanf und printf sind.Über die Streams gibt es sogar ein eigenes Buch
Standard C++ IOStreams and Locales | ISBN: 0201183951
und kann es eigentlich nur empfehlen. Hätte vor dem Lesen (ist schon Jahre her) nicht gedacht, dass die Streams und auch die Locales doch so vielseitig sind. Im alltäglichen Gebrauch und den normalen Büchern bekommt man davon leider nur sehr wenig mit.@cvcv, warum soll er mit so etwas das Buch anfangen? Für ein Hello World und erste Programme spielt das doch absolut gar keine Rolle und vor allem hängt man so auch niemanden ab. In einem anderen Buch erklärt ja auch niemand seitenweise jeden Aspekt einer Funktion bevor er die ersten Programme mit einem printf abdruckt.
-
Eigentlich schon fast eine Frechheit wie hier jemand schlecht gemacht wird, der
sich bemüht sein Fundierte Wissen weiter zu geben.Jeder sollte sich einmal vor den Spiegel stellen und fragen ob er noch nie Fehler gemacht hat.
Ich nutze das Buch C von A bis Z neben meiner Ausbildung zum Systeminformatiker.
Das Buch wurde mir von meiner Firma gestellt und Empfohlen. Auch viele weitere Bücher, aber als Nachschlagewerk ist es durchaus zu gebrauchen. Viele Sachen sind dort gut und verständlich erklärt. Nur sollte ein gewisses Verständnis für die Mathematik herrschen.Trotzdem, finde ich es wirklich absolut unpassend wie hier geschrieben wird.
Den ich bezweifel das sich hier der Großteil überhaupt einmal dran gesetzt hat
ein Buch zu schreiben, in diesem Umfang.Und getreu dem Motto ... " Wenns dir passt mach es besser " empfehle ich jedem,
der mit dem Buch nicht zurecht kommt. Schreib selbst ein oder *** halten.
-
markthom87 schrieb:
Trotzdem, finde ich es wirklich absolut unpassend wie hier geschrieben wird.
Den ich bezweifel das sich hier der Großteil überhaupt einmal dran gesetzt hat
ein Buch zu schreiben, in diesem Umfang.Und? Ich kann doch auch RTL-Seifenopern ablehnen, ohne je selber eine gedreht zu haben.
markthom87 schrieb:
Und getreu dem Motto ... " Wenns dir passt mach es besser " empfehle ich jedem,
der mit dem Buch nicht zurecht kommt. Schreib selbst ein oder *** halten.Nö, viel einfacher. Es gibt gute Bücher auf dem Markt. Die werden hier auch oft genug empfohlen. Warum nicht einfach ein gutes kaufen?
-
markthom87 schrieb:
Eigentlich schon fast eine Frechheit wie hier jemand schlecht gemacht wird, der
sich bemüht sein Fundierte Wissen weiter zu geben.Fundiert? Das dachte ich auch mal:
http://www.c-plusplus.net/forum/p2107747
Wenn man schon mit einem Beispiel mit w_char macht, das eben ausdrücklich über ASCII hinausgehen soll und dann ein Beispiel liefert, das genauso schlecht läuft wie mit einem reduzierter Zeichensatz, dann sollte man nicht von einem Autor sprechen, der "fundiertes Wissen" haben soll. Ich denke, das können nur Leute mit "fundiertem Wissen" beurteilen und dazu gehörst du mit Sicherheit nicht dazu.
L. G.
Steffo
-
"Wer hoch fliegt fällt auch Tief" und dazu gehörst wohl du !
-
-
kennt JW diesen thread?
-
Keine Ahnung, aber im Sinne einer guten Suchmaschinenindizierung solltet ihr lieber den Namen Jürgen Wolf jedesmal ausschreiben und nicht einfach durch JW abkürzen.
-
markthom87 schrieb:
bemüht sein Fundierte Wissen weiter zu geben.
Dann hast du noch keine Praxiserfahrung. Es genügt nicht sich zu bemühen. Es geht hier um Bücher woraus die Leute lernen sollen. Wenn ich eine Publikation schreibe dann gehe ich sie mindestens 20 mal durch um zu schauen ob sie auch an wirklich jeder erdenklichen Stelle wasserdicht ist. Wolfs Bücher dagegen sind noch nicht einmal ordentlich korrekturgelesen. Nicht einmal die Mindestanforderungen an die Beispiele sind erfüllt.
Dadurch sind alle Leute die von ihm C oder sein C-- (von C++ darf man nicht sprechen) programmieren lernen ad hoc programmierbehindert.
markthom87 schrieb:
Jeder sollte sich einmal vor den Spiegel stellen und fragen ob er noch nie Fehler gemacht hat.
Das gilt vielleicht für kostenlose Tools aber ganz sicher nicht für Bücher oder Publikationen.
markthom87 schrieb:
Ich nutze das Buch C von A bis Z neben meiner Ausbildung zum Systeminformatiker.
Da haben wir es: "ein Systeminformatiker". Bei dir juckt es wohl keinen wenn dein kleines Programm abstürzt. Bei mir im Bereich Computer Vision würde es zu einer blind agierenden Maschine führen, beim Flugzeugbauer wäre es noch ein wenig kritischer.
markthom87 schrieb:
Das Buch wurde mir von meiner Firma gestellt und Empfohlen.
Mein Beileid. Du solltest die Kompetenz deiner Firma ganz stark in Frage stellen. Es ist ja nicht so dass J. Wolf nur hier so berühmt ist. Er fühlt sich berufen zu jedem Thema ein Buch zu schreiben und so sieht es auch im Endeffekt aus.
markthom87 schrieb:
Auch viele weitere Bücher, aber als Nachschlagewerk ist es durchaus zu gebrauchen.
Aber nur um die Funktionsdeklaration zu lesen, zu mehr auch nicht. Aber dafür brauchst du das Buch nicht zu schleppen. Es gibt hinten im Buch diesen Pappkarton mit allen Funktionsdeklarationen auf einmal. Das ist zu gebrauchen aber das sollte man selbst als kleiner Systeminformatiker im Kopf haben.
markthom87 schrieb:
Viele Sachen sind dort gut und verständlich erklärt. Nur sollte ein gewisses Verständnis für die Mathematik herrschen.
Was für Mathematik? Von was redest du da? Als Systeminformatiker lernt man nichts über Mathematik. Blamier dich doch nicht mit solchen Aussagen. Ich hoffe dass du an dieser Stelle nur einen Kurzschluss hattest oder so etwas...
markthom87 schrieb:
Trotzdem, finde ich es wirklich absolut unpassend wie hier geschrieben wird.
Hör mal, wir wissen doch das du nicht für das Denken zuständig bist. Du hast auch eindrucksvoll gezeigt dass es auch seine Gründe hat. Lass es einfach. Zu ziehst einen falschen Schluss nach dem anderen.
markthom87 schrieb:
Den ich bezweifel das sich hier der Großteil überhaupt einmal dran gesetzt hat ein Buch zu schreiben, in diesem Umfang.
Das wäre ja noch etwas... wenn jeder so einen Unsinn produzieren würde. Kannst du denn als Systeminformatiker überhaupt nichts einzuschätzen? Du zerstörst mein ganzes Azubi Bild.
markthom87 schrieb:
Und getreu dem Motto ... " Wenns dir passt mach es besser " empfehle ich jedem,
der mit dem Buch nicht zurecht kommt. Schreib selbst ein oder *** halten.Ich empfehle dir mit deiner Einstellung nicht in der Öffentlichkeit aufzutreten. Anscheinend kannst du noch nicht einmal einschätzen wie stark man sich damit blamiert.