Buch "C von A bis Z" gut oder schlecht?



  • Ich bin auf der Suche nach einem anständigen C Buch. Das einzige, von dem ich gehört habe, war C von A bis Z von Jürgen Wolf. Viele übten Kritik an dem Buch aus, da es fehlerhaften Code enthielt, der garnicht läuft. Ich habe mich dann erkundigt und ein Statement von Jürgen Wolf persönlich entdeckt, bei dem er sich direkt an die Kritiker wendet:

    Hallo,

    Mit solchen Dingen muss ich eben leben. Das meiste was hier geschrieben steht stimmt allerdings, sofern man das Buch nicht gekauft hat und eben die Webseite verwendet. Das Open-Book auf der Webseite ist noch vor der ersten Auflage erschienen. Sprich, es wurden bis dahin noch keine Rechtschreibfehler behoben. Zugegeben, die erste Auflage enthält in der Tat viele, sagen wir, missglückte Beschreibungen. Diese wurden in der zweiten Auflage behoben. Der Mist von der zweiten Auflage wiederum wird jetzt in der dritten Auflage behoben Grafik: Smilie Zwinker.

    Ich überlege auch schon seit längerem die OpenBooks der Webseite zu schließen und erst mit der dritten Auflage des Buches ein Relaunch hinzustellen.

    Niemand ist perfekt, aber die Diskussionen in den Foren helfen mir auch weiter. Ich kann die Bücher nach und nach verbessern. Ich bin für Kritik immer offen.

    Viele Grüße
    Jürgen Wolf

    Schön und gut. Hier erzählt er, er hätte in der dritten Auflage vor alle Fehler zu beheben. Die dritte Auflage ist nun draußen seit einer Weile. Sind dort auch tatsächlich die meisten Fehler behoben? Klar, ich könnte jetzt auch einfach gut anfangen das Buch zu lesen und durchzuarbeiten, bis ich einen Fehler entdecke... Aber auf der anderen Seite bleibt dann auch die Befürchtung das der Autor entweder etwas völlig verwirrendes oder falsches erzählt. (Die Befürchtung habe ich, durch folgendes Argument: "Wenn der Code schon falsch ist, muss doch auch der Autor nicht wirklich viel Erfahrung damit haben und mir evtl. was falsches erzählen.")

    Also ist dieses Buch nun wirklich geeignet oder nicht? Wenn nicht, könntet ihr mir da gute C Bücher empfehlen? (Mir ist es egal, ob die nun Geld kosten oder nicht. Kostenlos wäre super, gäbe es aber bestimmt stichprobenartig nur selten gute Bücher.)

    MfG,
    Tarek701.



  • Die wichtigste Frage wäre erstmal: "willst du C oder programmieren lernen?"

    Oder: "Kannst du schon eine andere Computersprache?"



  • DirkB schrieb:

    Die wichtigste Frage wäre erstmal: "willst du C oder programmieren lernen?"

    Oder: "Kannst du schon eine andere Computersprache?"

    Eigentlich ist das keine wichtige Frage, weil die sich doch schon selbst beantwortet. Wenn ich danach frage, ob ein C Buch gut geeignet ist oder nicht, kann ich doch nur davon reden, dass ich C erlernen möchte. Dazu kommt doch, dass ich dieses Thema völlig absichtlich hier in dieses Forum gepostet habe. Ich hätte, wenn es mir generall ums programmieren ging, das Thema wohl eher hier reingepostet: http://www.c-plusplus.net/forum/f8 Aber entschuldige, falls ich da etwas zu ungenau war.

    "Programmieren lernen" heißt für mich in dem Kontext, wie ich es verstehe, das Erlernen, wie man Anwendungen in einer "Programmiersprache" formuliert und die vorgegebenen Anforderungen/Algorithmen in diese Sprache übersetzt. Ist fast so ähnlich wie bei den Textaufgaben aus der Mathematik, bei der man die Realsituation in der Mathematik modellieren, lösen und zurückinterpretieren muss. Nur das das Lösen eben durch den PC erfolgt und die Zurückinterpretation sich schon im Vornherein einprogrammieren lässt. (Bspw. wie ausg("Fritz hat " %x Steine") wobei %x das Ergebnis darstellt und der Befehl ausg() selbst nach all der Rechnung am Schluss steht.)

    Kann mich jetzt bei meinen Aussagen auch komplett irren. Sollte das der Fall sein, korrigiert mich da bitte.

    MfG,
    Tarek701.



  • Es gibt zwei Arten von Fehlern: Flüchtigkeitsfehler und grundsätzliche Fehler.
    Flüchtigkeitsfehler sind normal und treten in jedem Buch auf, damit sollte man leben können.
    Das schlimmere sind Fehler, wo ein Sachverhalt falsch dargelegt wird. Das sind die "missglückten Beschreibungen", die Herr Wolf erwähnt. Ich habe nur mal kurz ins OpenBook reingeschaut und da wimmelt es davon. Hoffen wir, dass diese mittlerweile behoben wurden. Diese Fehler könnten bedeuten, dass Herr Wolf gewisse Sachverhalte selber nicht richtig verstanden hat bzw. sie kurz ergooglet hat und dann seine Quellen paraphrasiert (wobei er dann etwas grundsätzlich richtiges völlig schief darstellt). Selbst wenn das behoben ist, ich zweifle daher an seiner Kompetenz. Ich habe bisher kein Buch gelesen, in dem der Author ein echter Experte war und ihm solche Fehler passiert wären.

    Was mich aber am allermeisten an seinem Buch stört, ist, dass er sich nicht an das hält, was in C als "guter Stil" gilt. Guter Stil ist natürlich subjektiv und sehr kontrovers. Aber es wurde in einigen Gebieten ein Konsens gefunden, was modernes C ausmacht und was nicht. In C von A bis Z fehlt eine Beschreibung davon völlig. (Btw: Das Buch redet zwar von Stil, meint damit aber nur Formatierung.) Ich würde sogar sagen, dass das Buch kein modernes C darstellt, sondern C wie man es vor 20 Jahren geschrieben hätte.

    Was auch völlig fehlt ist die Benutzung von Tools. C programmiert sich nur dann effizient, wenn man auf Hilfsmittel wie Debugger, Profiler, Paketverwaltung, Libraries, Unit-Tests zurückgreifen kann. Und ich meine, das gehört in ein modernes Anfängerbuch, weil es das Leben einfach so viel einfacher macht.

    Leider bin ich kein Anfänger mehr und lese deshalb keine Anfängerbücher, empfehlen kann ich nur englischsprachige (z.B. http://c.learncodethehardway.org/book/ ). Von deutschen Büchern hörte gutes vom Erlenkötter, aber wirklich kennen tu ich den nicht.



  • Online steht auf jeden Fall die dritte Auflage. Kostenlos im Internet ist's auch ok.
    Manche Sätze ergeben halt keinen Sinn und die Beispiele darfst du, wenn überhaupt, hinsichtlich des Stils nur kritisch betrachten. Ansonsten solltest du dich beim Lesen gut konzentrieren und dir größte Mühe geben, Fehler sofort als solche zu identifizieren, damit du dir nichts falsch anlernst. Aber hey, wenn du die Fehler vom Jürgen noch korrigierst, haste 'nen extra Lerneffekt.

    Aber ehrlich gesagt würde ich dir zu einer K&R-Bibel von zwei in den Entwicklungsprozess der Programmiersprache C involvierten Autoren raten, die, wie mich gerade erstaunt, auch kostenlos vollständig im Internet zu finden ist: http://net.pku.edu.cn/~course/cs101/2008/resource/The_C_Programming_Language.pdf

    KA, ob die da legal reingestellt wurde. Offline kostet die nämlich 50€.



  • Die J. Wolf Bücher strotzen nur so vor Fehler - andererseits kann man sicher auch etwas "rausziehen". Natürlich eher nicht, wenn man Anfänger ist und alles glauben muss...
    Ich sehe das ähnlich, wie es sich in den grossen Nachrichtenportalen abspielt: 90% was da steht ist eigentlich Schrott. Wer sich aber in dem einen oder anderen Bereich auskennt, kann durchaus auch profitieren. 🤡



  • Ich habe kürzlich das Buch "C Programmieren von Anfang an" von Helmut Erlenkötter durchgelesen und kann dieses wärmstens empfehlen.
    Für mich als C-Anfänger waren die Erklärungen der Sachverhalte sehr verständlich und logisch. Am Ende jedes Kapitels gibt es Übungen, um das Gelernte anzuwenden.



  • xilmon schrieb:

    Ich habe kürzlich das Buch "C Programmieren von Anfang an" von Helmut Erlenkötter durchgelesen und kann dieses wärmstens empfehlen.

    Das ist weitverbreiteter Aberglaube.
    Kein Anfänger oder Fortgeschrittener kann die Qualität eines Lehrbuches beurteilen. Seine "Empfehlungen" sind per se immer subjektiv, er erkennt keine Fehler und sonstigen Unsinn und gibt sich der Naivgläubigkeit hin, auf alles zu vertrauen, was ihm sein Lehrer/Autor erzählt.
    Da die Vorstellungswelt von Anfängern naturgemäß relativ beschränkt ist, sind es seine "Empfehlungen" demzufolge auch.

    on topic: Bücher von Pfuscher JW sind immer schlecht, nur naivgäubige Anfänger behaupten anderes.



  • Ich kann die Qualität dahingehend beurteilen, dass alle Code-Beispiele funktionierten.



  • xilmon schrieb:

    Ich kann die Qualität dahingehend beurteilen, das alle Code-Beispiele funktionierten.

    Die "funktionieren" bei JW auch.(*) Das ist ja gerade das Problem bei C, dass man Programme schreiben kann, die falsch sind, aber anfangs meistens funktionieren. Du kannst z.B. wild im Speicher rumschreiben, und solange da nichts wichtiges steht, geht das auch erstmal gut, wenn man Glück hat (das berühmte "undefined behavior".) Aber irgendwann halt nicht mehr.

    Man kann wirklich nur davor warnen, C (und Sprachen mit einer ähnlichen Philosophie, also mindestens noch C++) durch trial-and-error, learning-by-doing zu lernen. Davon würde ich zwar generell abraten, weil ein gutes Programm mehr können muss als nur funktionieren, aber in den meisten anderen modernen Sprachen bekommst du wenigstens Exceptions um die Ohren gehauen, wenn du Unsinn machst.

    (*) Wir hatten hier im Forum schon konkrete Beispiele besprochen, keine Ahnung, ob er die inzwischen gefixt hat.



  • Ja.
    Vielleicht.
    Vielleicht funktionieren sie bei dir.
    Vielleicht funktionieren sie bei dir mit einer konkreten Compilerversion.
    Vielleicht funktionieren sie bei dir mit einer konkreten Compilerversion auf einer konkreten Plattform.
    Vielleicht funktionieren sie bei dir mit einer konkreten Compilerversion auf einer konkreten Plattform mit konkreten mundgerechten Daten.
    Und wenn sich der Compiler ändert?
    Und wenn sich die Plattform ändert?
    Und wenn sich die Daten ändern?
    Ich habe mal gehört, dass sowas manchmal vorkommen soll.
    Und was passiert dann?
    Und genau dafür gibt es den C-Standard, der garantiert, dass alles genauso läuft, wie dokumentiert, aber nur, wenn man den Standard kennt, den Compiler entsprechend bedient.
    Und, kennst du den Standard?
    Das bezweifle ich, die Kenntnis des Standards geht weit über die Kenntnis der Bibliotheksfunktionen hinaus.
    Sowas bedarf jahrelanger Praxis, und ist keinesfalls durch Lesen eines Buches/Besuchen einer Vorlesung mit inkompetenten Vortragenden getan.



  • Tarek701 schrieb:

    Ich bin auf der Suche nach einem anständigen Kochbuch. Das einzige, von dem ich gehört habe, war Kochen von A bis Z von ***. Viele übten Kritik an dem Buch aus, da es ungenießbare Gerichte enthielt, die einem übles Bauchweh machen. Ich habe mich dann erkundigt und ein Statement von *** persönlich entdeckt, bei dem er sich direkt an die Kritiker wendet:

    Hallo,

    Mit solchen Dingen muss ich eben leben. Das meiste was hier geschrieben steht stimmt allerdings, sofern man das Buch nicht gekauft hat und eben die Webseite verwendet. Das Open-Book auf der Webseite ist noch vor der ersten Auflage erschienen. Sprich, es wurden bis dahin noch keine Rechtschreibfehler behoben. Zugegeben, die erste Auflage enthält in der Tat viele, sagen wir, missglückte Beschreibungen. Diese wurden in der zweiten Auflage behoben. Der Mist von der zweiten Auflage wiederum wird jetzt in der dritten Auflage behoben Grafik: Smilie Zwinker.

    Ich überlege auch schon seit längerem die OpenBooks der Webseite zu schließen und erst mit der dritten Auflage des Buches ein Relaunch hinzustellen.

    Niemand ist perfekt, aber die Diskussionen in den Foren helfen mir auch weiter. Ich kann die Bücher nach und nach verbessern. Ich bin für Kritik immer offen.

    Viele Grüße
    ***

    Schön und gut. Hier erzählt er, er hätte in der dritten Auflage vor alle Fehler zu beheben. Die dritte Auflage ist nun draußen seit einer Weile. Sind dort auch tatsächlich die meisten Fehler behoben? Klar, ich könnte jetzt auch einfach gut anfangen das Buch zu lesen und durchzuarbeiten, bis ich einen Fehler entdecke... Aber auf der anderen Seite bleibt dann auch die Befürchtung das der Autor entweder etwas völlig verwirrendes oder falsches erzählt. (Die Befürchtung habe ich, durch folgendes Argument: "Wenn der Code schon falsch ist, muss doch auch der Autor nicht wirklich viel Erfahrung damit haben und mir evtl. was falsches erzählen.")

    Also ist dieses Buch nun wirklich geeignet oder nicht? Wenn nicht, könntet ihr mir da gute Kochbücher empfehlen? (Mir ist es egal, ob die nun Geld kosten oder nicht. Kostenlos wäre super, gäbe es aber bestimmt stichprobenartig nur selten gute Bücher.)

    MfG,
    Tarek701.

    Beim Kochen wäre Dir sofort klar, daß Du nur ein Buch von einem Koch brauchst, der gut kochen kann. Der kann Dir Zusammenhänge und Stil näherbringen. Wenn ein Schönwetter-Sonntags-Gasgriller ein Grillbuch schreibt, bei dem die meisten Gerichte ungenießbar sind, was soll der Quatsch? Meinste, daß das Buch was taugt, wenn in der dritten Auflage davon keine Krankenhausbesuche mehr obligatorisch folgen? Nee, Leckersachmeck wird das nie. Oder daß er sachliche Fehler herunterspielt auf Rechtschreibfehler und missglückte Beschreibungen?

    Ich würde eher davon ausgehen, daß der Autor endgültig nicht zum Kochen berufen ist. Und eigentlich ist e seine bodenlose Frechheit, sowas zu verkaufen. Wie man am seinem Wurstbrot-Buch übrigens sehr schön sieht. Reihenweise soforttödliche Gerichte drin. Frag nach guten Büchern und lass A-Z links liegen, sowas kostet nach dem Durcharbeiten später nochmal doppelt so viel Zeit dazu, um auf richtigen Kurs zu kommen, und manchen gelingt es nie mehr.



  • Gibt es Buchempfehlungen mit fehlerfreien Inhalt?



  • Ach, wie das?
    Du hast doch selbst eines empfohlen, dessen Beispiele alle funktionieren.


Log in to reply