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


  • Mod

    cvcv schrieb:

    Nun ja, den geposteten Thread kann man wohl aber wirklich nicht auf JW. zurück-führen. Ich kann mir nicht vorstellen, dass es einem Autor nicht gelingt, printf() hinreichend zu erklären, zumal JW's Schreibstil nun doch ziemlich gut ist. Das liegt wohl am Leser.
    Und natürlich kann ein Forum in diesem Fall zig mal besser Abhilfe schaffen, als ein Buch, vor allem bei so einem speziellen Thema. Man kann einem Buch schlecht explizite Fragen stellen und dann auf eine Antwort hoffen ...

    MAn sollte noch erwähnen, der hiesige Threadersteller hat keinerlei Programmierkenntnisse und hat den "C Grundkurs" von Jürgen Wolf gelesen, nicht "C von A bis Z". Ich kenne nur den "C++ Grundkurs", aber wenn die beiden ähnlich sind, was ich mal annehme, dann ist der C-Grundkurs eher eine Referenz der Sprachmittel, kein Lehrbuch. Im C++ Grundkurs wurden am Anfang Ein- und Ausgabe auf 2 Seiten beschrieben, so dass man den Rest des Buches nachvollziehen kann und dann war's das. Keine große Erklärung, sondern einfach nur gesagt "Ausgabe geht damit und jetzt geht's weiter".



  • cvcv schrieb:

    Nun ja, den geposteten Thread kann man wohl aber wirklich nicht auf JW. zurück-führen. Ich kann mir nicht vorstellen, dass es einem Autor nicht gelingt, printf() hinreichend zu erklären, zumal JW's Schreibstil nun doch ziemlich gut ist.

    Was hat sein Scheibstil mit seinen Programmierkenntissen zu tun ?



  • Wenn sich volkard mal was einbildet, dann ist es auch so und deshalb sieht er bei jeder dummen Frage jetzt ein Jürgen Wolf Opfer.



  • @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.

    @Sheldor Viel angebrachter wäre wohl die Frage : Was haben seine Programmierkentnisse mit der genannten Fragestellung des Threads zu tun ? Jeder Vollidiot sollte wissen, wie prinf() funktioniert, so unglaublich schlecht ist JW. nun auch nicht.
    Wenn es um solche Verständisprobleme geht dann hat der Schreibstil eben sehr viel damit zu tun. Wenn sich ein Autor vollkommen unverständlich ausdrückt, sei es weil er komplexe oder einfach nur falsche Satzkonstruktionen verwendet oder wieso auch immer, dann kann der Leser das Thema ja schlecht verstehen. JW. hingegen schafft es durchaus, sich passend und nachvollziehbar auszudrücken.

    Ich behaupte einfach, dass dieser OP bei jedem anderen Buch das gleiche Problem gehabt hätte. Ist ja auch nicht schlimm sondern passiert und genau dazu sind Foren schliesslich da.


  • Mod

    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.



  • 1. Achso, naja dann ist es wohl einfach der falsche Typus von Buch, worauf du wohl auch anspielst.

    2. Ja, ok , das glaube ich gut und gerne. Aber zmnd soweit wie es für den OP in jenem Thread nötig gewesen wäre, kann das jeder Autor bzw. jedes Buch über C oder eben C++.
    Nun sagen wir jeder der für sein Buch einen anständigen Verlag gefunden hat.

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


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


Anmelden zum Antworten