WARNUNG: Bücher von Jürgen Wolf zu C und C++ zum Lernen ungeeignet weil...


  • Mod

    cvcv schrieb:

    Btw : Sieht nach hate aus, deine Namens-Erwähnung da ^^

    Jetzt gilt es schon als abfällig, jemanden "Herr" zu nennen 😃 . Dabei war das gar nicht so gemeint.



  • Also entweder will uns jemand veralbern, oder da ist eine gewisse Auffälligkeit.
    http://www.c-plusplus.net/forum/288833
    http://www.c-plusplus.net/forum/288717



  • Wieso? So sehen JW-Codes nun mal aus... 🙄



  • 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 anderes

    Sorry 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 schreibt

    struct 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 !



  • 😕


Anmelden zum Antworten