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



  • Hi,

    nachdem jetzt schon wieder eine Frage zu C aufgetaucht ist die auf laienhaften Beispielen von Buchautor Jürgen Wolf aufbaut, platz mir langsam die Hutschnur.

    Ich bitte hier alle Fortgeschritten und Profis einmal den Anfängern darzulegen warum die Bücher C und C++ von A bis Z nur sehr bedingt zum ernsthaften Lernen geeignet sind und warum trotzdem die Rezensionen bei Amazon so gut sind.

    Wenn ich sehe das Herr Wolf schon wieder in der Startlöchern mit neuen Grundlagenbüchern steht wird mir echt schlecht.

    Bitte helft die Anfänger zu warnen und das mit stichhaltigen Argumenten und nicht unter der Gürtellinie.



  • Ist so ein Thread überhaupt erlaubt?



  • legal? schrieb:

    Ist so ein Thread überhaupt erlaubt?

    Wenn es wahr ist wieso nicht?



  • legal? schrieb:

    Ist so ein Thread überhaupt erlaubt?

    Rezensionen bei Amazon & Co. sind doch auch erlaubt, und da können Privatpersonen ihre negativen Erfahrungen und Meinungen niederschreiben. Wieso sollte das hier plötzlich ein Problem sein? Es steckt ja kein kommerzielles Interesse dahinter oder so...


  • Mod

    Die Frage ist nur, was sollen wir hier überhaupt schreiben? Fachliche Argumente wird ein Anfänger wohl kaum verstehen. Es bleibt nur zu bestätigen, dass im Forum immer wieder dumme Fragen auftauchen, die auf Beispiele in den Büchern von J.W. zurückzuführen sind. Und die offen zugänglichen Inhaltsangaben lassen einen erfahrenen Programmierer darauf schließen, dass der J.W. zumindest für C++ keinen guten Lehrplan hat. Zu erläutern warum, würde wie gesagt wohl nicht viel bringen.



  • JürgenWürgen schrieb:

    HIch bitte hier alle Fortgeschritten und Profis einmal den Anfängern darzulegen warum die Bücher C und C++ von A bis Z nur sehr bedingt zum ernsthaften Lernen geeignet sind und warum trotzdem die Rezensionen bei Amazon so gut sind.

    Vielleicht liegts daran:
    http://www.c-plusplus.net/cms/modules.php?op=modload&name=mbBooks&file=index&func=isbn&isbn=3898423921
    🙂



  • Ich hab mal das http://openbook.galileocomputing.de/c_von_a_bis_z/ kurz durchgeklickt und finde es jetzt nicht so schlecht. Was ist denn so schlecht?



  • _matze schrieb:

    legal? schrieb:

    Ist so ein Thread überhaupt erlaubt?

    Rezensionen bei Amazon & Co. sind doch auch erlaubt, und da können Privatpersonen ihre negativen Erfahrungen und Meinungen niederschreiben.

    Der erste eintrag klingt aber eher nach hetzen statt objektiv was sagen "lass uns alle jedem von seinen buechern abraten, die sind ja schlecht" tadam.

    @topicstarter
    wie waere es mit einem beispiel aus seinem buch das so grausam ist, dass man von diesem buch abraten muss.



  • Es bleibt nur zu bestätigen, dass im Forum immer wieder dumme Fragen auftauchen, die auf Beispiele in den Büchern von J.W. zurückzuführen sind.



  • volkard schrieb:

    Es bleibt nur zu bestätigen, dass im Forum immer wieder dumme Fragen auftauchen, die auf Beispiele in den Büchern von J.W. zurückzuführen sind.

    Das ist ärgerlich. Aber es gibt sicher noch andere schlechte Bücher. Mein Vorschlag: einen Absatz zur Rezension hinzufügen, der davor warnt.

    Wenn jemand ein irreführendes Buch publiziert, ist das nicht unser Problem. Man sollte eher dazu aufrufen, den Verleger mit Beschwerden zu überhäufen.
    🙂



  • mngbd schrieb:

    volkard schrieb:

    Es bleibt nur zu bestätigen, dass im Forum immer wieder dumme Fragen auftauchen, die auf Beispiele in den Büchern von J.W. zurückzuführen sind.

    ...Wenn jemand ein irreführendes Buch publiziert, ist das nicht unser Problem...

    Doch. Denn es bleibt zu bestätigen, dass im Forum immer wieder dumme Fragen auftauchen, die auf Beispiele in den Büchern von J.W. zurückzuführen sind.
    Das belastet das Forum, den Ruf der deutschen Informatiker und am Ende geht die deutsche Wirschaft baden, weil so viele mit so schlechten Büchern angefangen haben.
    Warum nochmal ist es nicht unser Problem?



  • mngbd schrieb:

    JürgenWürgen schrieb:

    HIch bitte hier alle Fortgeschritten und Profis einmal den Anfängern darzulegen warum die Bücher C und C++ von A bis Z nur sehr bedingt zum ernsthaften Lernen geeignet sind und warum trotzdem die Rezensionen bei Amazon so gut sind.

    Vielleicht liegts daran:
    http://www.c-plusplus.net/cms/modules.php?op=modload&name=mbBooks&file=index&func=isbn&isbn=3898423921
    🙂

    FAIL



  • Hier ist mal ein Beispiel von gestern oder vorgestern und davon gibt es viel viel mehr:

    RisH schrieb:

    Hi,

    ich sitze gerade an dem OpenBook von Galileocomputing "C von A bis Z" und habe zwei Fragen zu folgendem Beispiel:

    /* ptr13.c */
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #define MAX 255
    
    char *eingabe(char *str) {
       char input[MAX];
    
       printf("Bitte \"%s\" eingeben: ",str);
       fgets(input, MAX, stdin);
       return strtok(input, "\n");
    }
    
    int main(void) {
       char *ptr;
    
       ptr = eingabe("Vorname");
       printf("Hallo %s\n", ptr);
       ptr = eingabe("Nachname");
       printf("%s, interssanter Nachname\n", ptr);
       return EXIT_SUCCESS;
    }
    

    1. Wieso ist die Funktion "*eingabe" ein Zeiger und welchen Sinn macht das?
    2. Ein Kapitel zuvor wurde in dem Buch erwähnt, dass ein Zeiger !NUR! eine Adresse, einer Variable, als Wert haben kann/darf. Nur wieso darf er hier plötzlich einen String als Wert haben?

    Ich freue mich über jeden Versuch mir die Antworten, auf meine Fragen, näher zu bringen 😃 und bedanke mich jetz schon Mal ganz lieb im Voraus.

    LG
    RisH

    EDIT:
    Tut mir echt Leid, doch habe erst jetzt gesehen, dass ich ausversehen im C++ Unterforum gelandet bin. Könnte ein Mod den Beitrag bitte verschieben?
    Aber die Syntax ist ja eigentlich die gleiche.

    seldon schrieb:

    RisH schrieb:

    char *eingabe(char *str) {
       char input[MAX];
    
       printf("Bitte \"%s\" eingeben: ",str);
       fgets(input, MAX, stdin);
       return strtok(input, "\n");
    }
    

    Wenn das so wirklich da drin steht, würde ich mir an deiner Stelle schleunigst ein besseres Buch besorgen - der Code, so wie er da steht, erzeugt undefiniertes Verhalten (die Funktion gibt verdeckt einen Zeiger auf eine lokale Variable zurück). Wenn das bei dir funktioniert, ist das reiner Zufall, und wenn der Autor das so geschrieben hat, hat er von C nicht genug Ahnung, um ein Buch darüber zu schreiben - das ist ein böser Anfängerfehler.

    seldon schrieb:

    Das ändert aber auch nichts daran, dass er danach nicht einfach input aus der Funktion zurückgeben kann - input wird ungültig, sobald die Funktion verlassen wird.

    Was Jürgen Wolf und Galileo Press angeht - naja, ein renommierter Fachverlag wird Galileo Press mit solchen Autoren jedenfalls nicht. Vielleicht hat man sich auf das Markt+Technik-Konzept eingeschossen, Bücher von Deppen an Deppen zu verkaufen. Geld ist auf die Weise ja zu machen.



  • Wenn man sich auf seiner Seite www.pronix.de anschaut wie er zu den unterschiedlichsten Themen Bücher innerhalb kürzester Zeit rausbringt dann hat man doch schon die Erklärung warum die meisten Werke nicht gerade mit tiefen Wissen getränkt sind.

    So etwas wie C oder C++ Fachbuch zu schreiben verlangt lange Erfahrung und wird nicht mal eben in einem Jahr fertig gemacht. Das ist als wenn du dir den Führerschein von jemanden beibringen lässt der gerade mal ein Jahr Fahrpraxis hat. Mir tuhen die Leute leid die sich von dem lockeren Schreibstil blenden lassen und wirklich daraus viele falsche Grundlagen lernen.

    Sorry Jürgen aber das ist meine Meinung und die darf auch mal in einem C++ Forum öffentlich gemacht werden.



  • Beispiele schrieb:

    Hier ist mal ein Beispiel von gestern oder vorgestern und davon gibt es viel viel mehr:

    RisH schrieb:

    char *eingabe(char *str) {
       char input[MAX];
    
       printf("Bitte \"%s\" eingeben: ",str);
       fgets(input, MAX, stdin);
       return strtok(input, "\n");
    }
    

    Ich hab das mal nachgeschlagen, und interessanterweise ist der Autor sich ja sogar bewusst, dass man keine Adressen lokaler Variablen zurückgeben darf. Er scheint aber zu glauben, dass das strtok auf magische Weise einen Zeiger zurückliefert, den man weiter zurückgeben kann. Unverständlich.



  • Ich hatte mir C++ von A bis Z begleitend für die Ausbildung gekauft. Habe aber schnell aufgehört zu lesen, da ich nach kurzer Zeit zuviel des Codes hinterfragt habe. (Was macht der da? Wieso jetzt so? Das hätte ich aber anders gemacht .. etc.)

    Darauf hin wollte ich mir den Primer kaufen bin aber doch beim Buch "Der C++ Programmierer" gelandet und finde es sehr gut.

    Alles in allem muss ich aber auch Sagen, dass ich Bücher meist nur Überfliege und mir hin und wieder mal etwas rauspicke.

    Wenn ich etwas lerne, dann möchte ich auch das es gut ist. Deswegen bin ich ja hier angemeldet :). Lese immer wieder interessante und nützliche Dinge und habe einiges hier lernen dürfen.

    Danke an dieser Stelle ;)! 👍

    PS: Als verteidigung möchte ich aber hinzufügen, dass Code-Beispiele für VB aus dem Netz wohl 100000 mal schlimmer sind als dieses Buch :D:D:D.

    Selbst die meisten MSDN-Einträge funktionieren nie auf anhieb 😃



  • Und trotzdem geht es nicht um konkrete Einzelpunkte. Man kann das Buch nicht retten, indem man die paar eindeutig falschen Codebeispiele repariert.

    Daß die User

    1. Wieso ist die Funktion "*eingabe" ein Zeiger und welchen Sinn macht das?
    2. Ein Kapitel zuvor wurde in dem Buch erwähnt, dass ein Zeiger !NUR! eine Adresse, einer Variable, als Wert haben kann/darf. Nur wieso darf er hier plötzlich einen String als Wert haben?

    fragen, ist doch fatal.

    Was er braucht, ist ein Ghost-Writer. Wird er aber nicht machen. Er wird so schlau sein, und regelmäßig die Foren nach Fehlern fragen. Oh, hat er ja schon. Ich mag aber hier nicht seine Arbeit machen. Dazu sehe ich zu wenig Eigenleistung. Soll er sich doch einen Informatik-Studenten für ein paar Kröten mieten.



  • ja, das beispiel ist schon recht buggy.

    aber dass anfaenger verstaendnisprobleme mit dem gelesenen aus buechern haben ist mir nichts neues. wenn es danach ginge wuerde ich jedes buch verbannen das meint es lehrt "spieleprogrammieren" (am besten noch sammt c++ und mathe grundlagen) von A bis MMORPG (und das waeren sicher die allermeisten buecher).

    Das Cuda buch was jetzt ankam hat auch weniger inhalt als das online PDF und sieht aus als ob jemand (was man aufgrund der gleichen farbgebung und schriftzeichen sieht) es als grundlage genommen haette, es zusammenstrich um weniger seiten, sprich druckkosten, zu haben und dann publishte.

    es gibt so dermassen viel schund.

    ich wuerde da eher einen anderen weg gehen und statt irgendwas schlecht zu machen, ganz explizit die perlen rauspicken fuer die einzelnen bereiche und den leuten empfehlen. Es passiert ja nicht selten dass leute hierher kommen um buecher empfohlen zu bekommen, da hilft es nicht wenn wir irgendwo jedes buch was auf deutsch ist in unserer buchecke als review mit link zum amazon partnerprogram reinstellen und dazu noch banner ueber den foren blinken mit werbung fuer eben sowas.

    Da wuerde ich lieber ueber jedem forum die sammlung von buechern sehen die die moderatoren dieser foren aufgrund eigener erfahrung empfehlen. das wuerde sicherlich auch weit mehr geldflus im partnerprogram bieten.



  • wir hatten vor einigen Jahren bereits auf viele Fehler auf seinen eigenen Forum hingewiesen. Wir wurden von den Moderatoren eher belächelt und nicht ernst genommen, immer nach dem Schema "jaja, in der Printausgabe ist es aber richtig".

    Wenn ich mich recht erinnere, wurde die Seite sogar für ne Zeit lang ausgeschaltet, um sie zu bearbeiten und die Online-Ausgabe zu verbessern. Verbessert hat sich zumindest leider nicht.

    Zum gezeigten BSP. Er sagt im nächsten Abschinitt, man solle keine lokale Arrays zurückgeben, blablabla. Auch wenn es stimmen sollte, dass strtok ein dynamisc allokierten? static char[] ?? - Zeiger zurückliefert und deshalb geht, finde ich es unverantwortlich so etwas überhaupt als funktionierendes Beispiel anzugeben. Ungefähr so, als wenn im Buch "Heimwerker für dummies" stünde: "Kaufen sich doch keinen Hammer, einen großen Schraubenzieher tut es auch, und wenn doch nicht, nehmen Sie doch einen Stein.".



  • Na diesen Thread hier kann er nicht ignorieren oder löschen. Schön dass hier endlich mal ein paar Leute Eier zeigen und sagen was viele schon lange denken.

    Vielleicht können wir wenn genug Postings zusammenkommen das mal den Verlag zukommen lassen?

    Mir wird auch ganz schlecht wenn ich sehe dass er bald noch zwei Grundlagenbücher rausbringt, vielleicht wird dort ja alles anders aber irgendwie glaube ich nicht das er inzwischen C oder C++ wirklich richtig gelernt hat.


Log in to reply