Schlechtes Buch?
Verfasst: Dienstag 8. Dezember 2009, 18:40
Derzeit wird das "Kompendium der Web-Programmierung" von Thomas Walter (Prof. Dr.) für 10 Euro verramscht (Normalpreis 66,95 Euro).
Das Buch ist optisch und vom Material her sehr hochwertig gemacht, hinterlässt insgesamt einen "wertigen Eindruck". Nach einigen Kapiteln allgemeiner Grundlagen folgt ein Teil "Serverseitige Webprogrammierung" mit je einem eigenen Kapitel über Perl, PHP, Python und Ruby; außerdem noch eins über CGI und SSI. Dann ein Teil "clientseitige Programmierung" mit Kapiteln zu JavaScript, Ajax und Flash. Das Kapitel über Java-Applets trägt die Überschrift "Gescheiterte Technik: das Applet".
In einem weiteren Teil gibt es dann u.a. noch Kapitel zu fastCGI und verschiedene Frameworks, u.a. PEAR, django und Ruby on Rails.
Für jemanden wie mich, der davon wenig mehr als nichts versteht, eine preiswerte Gelegenheit, sich ein wenig Überblickswissen zu verschaffen.
Als erstes habe ich mir das Kapitel über Python angesehen (davon verstehe ich etwas mehr als etwas weniger als nichts). Und die erste Freude über das vermeintliche Schnäppchen trübte sich:
Das Kapitel basiert auf Python 2.5 - das ist okay. Allerdings wird print äußerlich wie eine Funktion behandelt (immer schön Klammern drum) und nirgends findet sich ein Hinweis darauf, dass print keine Funktion ist. Auch bei bedingten Anweisungen und in Schleifenköpfen: Jede Bedingung eingeklammert, auch wenn es nur eine ist ...
Als Eingabemöglichkeiten werden input() und raw_input() genannt. An keiner Stelle findet sich jedoch ein Hinweis darauf, worin sie sich unterscheiden. Man gewinnt den Eindruck, als wären es äquivalente Funktionen. Von der Problematik, die mit input() verbunden ist, ganz zu schweigen.
Bei der Vorstellung der numerischen Datentypen wird unterschieden zwischen "plain integer" (32 Bit) und "long integer", gekennzeichnet durch "L", die intern mit 64 Bit gespeichert werden. Das Integerzahlen quasi beliebig groß sein dürfen - kein Wort davon.
Zur Typüberprüfung wird type() empfohlen. Auf die Existenz von Dictionaries wird hingewiesen und ein Beispiel gezeigt. Es wird aber konsequent von "assoziativen Listen" gesprochen und das dict bekommt im Beispiel den Namen "hash". Nicht mal ein Hinweis darauf, dass das in Python dictionary heißt und es den Typ dict gibt.
Im Abschnitt über Dateien findet man read(), readline(), readlines(), write(), writelines() und flush(). Kein Wort darüber, dass man über Dateien iterieren kann.
Bezeichner werden in Camelcase notiert. Attribute können vom Zugriff von außen "geschützt" werden. Eine private Variable hat so auszusehen: __dummy_. Weiter gehts: __init__() ist der Konstruktur, __del__() der Destruktor.
Ich glaub, ich höre jetzt auf. Ist aber sicher noch nicht alles.
Und nun? Was mache ich mit den restlichen 550 Hochglanzseiten des Buchs? Sie behandeln ja zum größten Teil Dinge, die mir neu sind und über die ich mit Hilfe des Buches etwas lernen wollte. Woher weiß ich, dass die Inhalte in diesen Kapiteln nicht von derselben schlechten Qualität sind wie das Python-Kapitel?
Vielleicht kennt einer von euch das Buch und kann mir zu dem ein oder anderen Kapitel eine kurze Qualitätseinschätzung geben.
Das Buch ist optisch und vom Material her sehr hochwertig gemacht, hinterlässt insgesamt einen "wertigen Eindruck". Nach einigen Kapiteln allgemeiner Grundlagen folgt ein Teil "Serverseitige Webprogrammierung" mit je einem eigenen Kapitel über Perl, PHP, Python und Ruby; außerdem noch eins über CGI und SSI. Dann ein Teil "clientseitige Programmierung" mit Kapiteln zu JavaScript, Ajax und Flash. Das Kapitel über Java-Applets trägt die Überschrift "Gescheiterte Technik: das Applet".
In einem weiteren Teil gibt es dann u.a. noch Kapitel zu fastCGI und verschiedene Frameworks, u.a. PEAR, django und Ruby on Rails.
Für jemanden wie mich, der davon wenig mehr als nichts versteht, eine preiswerte Gelegenheit, sich ein wenig Überblickswissen zu verschaffen.
Als erstes habe ich mir das Kapitel über Python angesehen (davon verstehe ich etwas mehr als etwas weniger als nichts). Und die erste Freude über das vermeintliche Schnäppchen trübte sich:
Das Kapitel basiert auf Python 2.5 - das ist okay. Allerdings wird print äußerlich wie eine Funktion behandelt (immer schön Klammern drum) und nirgends findet sich ein Hinweis darauf, dass print keine Funktion ist. Auch bei bedingten Anweisungen und in Schleifenköpfen: Jede Bedingung eingeklammert, auch wenn es nur eine ist ...
Als Eingabemöglichkeiten werden input() und raw_input() genannt. An keiner Stelle findet sich jedoch ein Hinweis darauf, worin sie sich unterscheiden. Man gewinnt den Eindruck, als wären es äquivalente Funktionen. Von der Problematik, die mit input() verbunden ist, ganz zu schweigen.
Bei der Vorstellung der numerischen Datentypen wird unterschieden zwischen "plain integer" (32 Bit) und "long integer", gekennzeichnet durch "L", die intern mit 64 Bit gespeichert werden. Das Integerzahlen quasi beliebig groß sein dürfen - kein Wort davon.
Zur Typüberprüfung wird type() empfohlen. Auf die Existenz von Dictionaries wird hingewiesen und ein Beispiel gezeigt. Es wird aber konsequent von "assoziativen Listen" gesprochen und das dict bekommt im Beispiel den Namen "hash". Nicht mal ein Hinweis darauf, dass das in Python dictionary heißt und es den Typ dict gibt.
Im Abschnitt über Dateien findet man read(), readline(), readlines(), write(), writelines() und flush(). Kein Wort darüber, dass man über Dateien iterieren kann.
Bezeichner werden in Camelcase notiert. Attribute können vom Zugriff von außen "geschützt" werden. Eine private Variable hat so auszusehen: __dummy_. Weiter gehts: __init__() ist der Konstruktur, __del__() der Destruktor.
Ich glaub, ich höre jetzt auf. Ist aber sicher noch nicht alles.
Und nun? Was mache ich mit den restlichen 550 Hochglanzseiten des Buchs? Sie behandeln ja zum größten Teil Dinge, die mir neu sind und über die ich mit Hilfe des Buches etwas lernen wollte. Woher weiß ich, dass die Inhalte in diesen Kapiteln nicht von derselben schlechten Qualität sind wie das Python-Kapitel?
Vielleicht kennt einer von euch das Buch und kann mir zu dem ein oder anderen Kapitel eine kurze Qualitätseinschätzung geben.