Kurzversion: Frank Ellers Buch „C# Anfangen Anwenden Verstehen“ ist TOTALER MÜLL. Wer ernsthaft C# lernen will: entweder Online-Tutorials lesen, dann Jon Skeet oder von Anfang an ein brauchbares Einführungsbuch von einem ernsthaften Autor. Der Rest dieses Artikels flamed nur ein Bisschen, um die Spitze des Eisberges der Hässlichkeit von Frank Ellers Buch aufzuzeigen.
Nachdem ich eine Weile „C# in depth covering C# 2 and 3“ von Jon Skeet gelesen hatte, wurde mir klar, dass mir ein paar Grundlagen von C# fehlen. Details, die nicht immer auffallen, aber doch zu wichtig sind, um sie auszulassen. Chikari war so freundlich, mir ein Einführungsbuch auszuleihen, das bei ihm herumlag. Dies war besagtes „Werk“ von Frank Eller.
Was gleich auffällt: das Buch ist syntaktisch veraltet. Das hat mich nicht gestört, ich wollte ja explizit C# 1 lernen. Was etwas später auffällt: die Beispiele sind hingeklatscht. Anders kann man es nicht nennen; eine Reduktion auf das Wesentliche oder Gedanken über die didaktische Darstellung sind nicht erkennbar. Nur ein Beispiel von vielen: vor Codebeispielen hängen praktisch immer drei Zeilen Kommentar, die nur dem Zweck dienen, das Programm auf der Mitgelieferten CD auffindbar zu machen. Was aber viel schlimmer ist: es steht unglaublich viel hohles Gelaber im Fließtext. Oftmals lese ich zwei Seiten, nur um dann die entscheidende Zeile zu finden, die viel Text davor vollkommen überflüssig macht. Und das passiert auch nur, falls glücklicherweise so eine Zeile existiert. Ansonsten muss ich mich durch den Labertext beißen, und herausfinden, was die eigentliche Aussage ist.
Richtig übel wird es allerdings inhaltlich. Switch-case funktioniert nur mit Konstanten? Wird nicht erwähnt. && und || Operatoren sind short-circuiting; der 2. Teil wird nur bei Bedarf ausgewertet? Steht nicht dabei, da steht nur sowas wie „und-Verknüpfung: Beide Bedingungen müssen wahr sein“. WELL, NO SHIT SHERLOCK!
Das geht ständig so weiter. Frank Eller hat wirklich einen Sondertitel für Inkompetenz verdient; er bringt zB folgendes fertig: zuerst erklärt er lang und breit, dass .NET mehrere Sprachen unterstützt. Dann nennt er die Funktion, Schlüsselwörter als Bezeichner einsetzen zu können „unnötig“. Siehe Flips Blogeintag: Verschiedene Sprachen haben verschiedene Schlüsselwörter; die Funktion ist unabdingbar, falls ein Bezeichner aus Code einer anderen Sprache ein Schlüsselwort in der eigenen Sprache ist!
Bevor ich endgültig ausraste, schließe ich die Beispiele mit einem Zitat: „Waren mit 8 Bit noch 2^7 Zeichen (= 255 Zeichen) darstellbar, sind es jetzt 2^15 Zeichen (=65535 Zeichen). Diese Anzahl genügt, um alle Sprachen dieser Welt und noch einige Sonderzeichen unterzubringen.“
Ein Tipp: meiner Meinung nach enthalten die 2 Sätze 7 Fehler. Gut, 3 davon sind Wiederholungsfehler. 8 Bit *können* 2^8 Zeichen darstellen; die -1 ist bei der Theoretischen Betrachtung unsinnig, und selbst wenn das beides nicht so wäre, ist 2^7 weder 255, noch 256, sondern 128. Analoges gilt für die andere Rechnung, und der zweite Satz ist völlig falsch, denn Unicode enthält bereits über 100000 Symbole.
So, ich habe keine Lust mehr, im Müll zu wühlen. Aber glaubt mir, das ist nur die Spitze des Eisberges, in wenigen Minuten zusammengeschrieben. Finster, wollen wir das Buch verbrennen, damit es keinen Schaden mehr anrichten kann?
Eine Antwort auf „Kurzreview „C# Anfangen Anwenden Verstehen“ von Frank Eller“
Ich hab vor ein paar Jahren sein Delphi 5 Buch geschenkt bekommen. Das war auch nicht besser.
90% entsprach der Delphi Hilfe mit anderer Formatierung und er hat es trotzdem geschafft einen Haufen Ungenauigkeiten und Fehler rein zubringen.