Dieses Review ist aus der Sicht eines langjährigen Java Programmierers.
Das Buch besteht aus 600 Seiten, sowie einer DVD mit allen Beispielen, BlueJ und weitere Hilfen. Für mich was es erstaunlich angenehm zum lesen, und im Gegensatz zu einigen anderen Fachbüchern hatte ich nie das Bedürfnis das Buch in die Ecke zu werfen weil der Autor irgendeinen Unsinn zusammenschwaffelt ;-) .
Das Buch besteht aus drei Teilen:
1. Grundlagen: wie ist die Syntax, was ist eine Variable, etc.
2. Objektorientiertes Programmieren: Vererbung, Assoziation, Interfaces, etc.
3. Schwieriges Zeugs: Swing, Collections, Multithreading, etc.
1. Grundlagen
Für komplette Anfänger ist vorallem die erste Hälfte des Buches interessant. Da kann man bequem von vorne beginnen, und sich nach hinten durchlesen. Die Kapitel bauen aufeinander auf, man wird also nie auf ein Codeschnippsel treffen das unbekannte Konstrukte enthält. Das Buch ist gefüllt mit kleinen Beispielen, in der zweiten Hälfte sind die Beispiele meist gekürzt und der komplette Code findet sich auf der beiligenden DVD. Im ersten Teil geht Florian alle wichtigen Syntaxelemente durch, und bespricht sie ausführlich. Dabei geht er auch auf die wichtigsten Variationen ein. Das Buch verzichtet weitgehend auf komplizierte Fachbegriffe. sozusagen wenig Theorie und viel Praxis. Florian verzichtet im ersten Teil bewusst über Klassen und Objekte zu sprechen, und das ist auch richtig so. Einsteiger sind schon genug von "i = i+1" verwirrt und sollten nicht noch gleichzeitig Objektphilosophie studieren.
2. Objektorientiertes Programmieren
Es heisst ja: "nicht alles was hinkt ist ein Vergleich", die Vergleiche von Florian hüpfen aber wie junge Rehe durch den Wald ;-) Florian hat ein grosses Talent komplizierte Sachverhalte mit anschaulichen Beispielen zu erklären. Besonders gefallen hat mir wie Florian mit einem Gaukler auf einem Mittelaltermarkt das Observer Pattern erklärt. Dieser Vergleich fängt ganz harmlos an mit der Frage: "Wie kommunizieren Gaukler und Zuschauer Objekte?", und erst nach vielen Kapiteln endet alles in einem fulminanten Finale. Obwohl die Worte "Observer Pattern" erst spät fallen, wird jeder Leser verstehen wie, und noch viel wichtiger *wieso*, das Pattern funktioniert. Neue Syntaxelemente werden natürlich auch in diesem Teil eingeführt. Oft wird dabei zuerst ein Problem vorgestellt, und erst danach das Syntaxelement welches das Problem löst. In vielen Büchern ist es ja eher umgekehrt, d.h. zuerst wird die Lösung vorgestellt, dann ein passendes Problem in Form eines Beispiels gesucht. Dass Florians Reihenfolge einfacher zum lesen ist, dürfte klar sein.
Man mag es erahnen, das Buch ist ziemlich "verspielt", man wird hier nicht gleich mit Informationen erschlagen. Wenn sich alte Hasen vielleicht über zuviel blabla aufregen, dürften Einsteiger sehr dankbar sein. Wichtig auch: obwohl die Vergleiche lustig zum lesen sind, so sind sie auch immer korrekt. Hier wird also nicht Exaktheit für Spass geopfert, sondern geschickt kombiniert.
3. Schwieriges Zeugs
In der letzten Hälfte des Buches geht es um Teile der Klassenbibliothek, z.B. Swing und Collections. Auch komplexe Themen wie Exceptions, Multithreading, Networking und Datenbanken werden angesprochen. Florian scheut sich nicht in einem Anfängerbuch mit dem GridBagLayout, der JTable und dem JTree aufzukreuzen. Vielleicht ist das ein bisschen viel für jemanden der gerade erst "System.out.println" gelernt hat. Andererseits ist die Präsentation auch in diesem Teil auf hohem Niveau, und als Einstieg zu gebrauchen. Das Buch geht hier jeweils alle Methoden und Felder eines Interfaces oder Klasse durch und erklärt genau für was sie gebraucht werden. Im Vergleich zur ersten Hälfte ist die zweite Hälfte deutlich weniger wichtig.
Geneigte Käufer sollten sich im klaren sein: Florian hat ein Lehrbuch und kein Nachschlagewerk geschrieben. Wer nur an einzelnen Kapiteln interessiert ist wird durch die vielen Anspielungen an frühere Kapitel etwas verwirrt werden. Wer aber die Zeit und den Willen mitbringt sich durchzuarbeiten wird mit einem in sich konsistenten und gut verständlichen Einführungskurs belohnt. Für jemanden der sich Java im Selbststudium beibringen will dürfte das Buch eine ideale Wahl sein.
Es sollte auch klar sein, dass man mit diesem Buch die Grundlagen lernt, aber nicht wie man grosse Software mit 100en oder 1000en Klassen schreibt. Dafür gibt es dann wieder andere Bücher ;-)
4. Plus/Minus
+ Zuerst werden die Grundlagen gelernt, erst danach Klassen, Interfaces und wie man alles zusammensetzt. IMHO ist dieser Ansatz besser als das weitverbreitete "Object-first".
+ Florian hat ein Talent abstrakte und komplizierte Dinge verständlich zu erklären.
+ Das Buch ist praktisch fehlerfrei, lediglich einige Swing Beispiele sind suboptimal gewählt.
- Das einzige wirklich fehlerhafte Beispiel ist die "FileWhisperer" Klasse, zum Glück wird sie erst auf Seite 570 eingeführt. Florian wird das Beispiel für die zweite Auflage vermutlich überarbeiten.
+ Übungsaufgaben (die ich nicht gemacht habe), mit Lösungen
+ Eine brauchbare Einführung in JTree, JTable und GridBagLayout. Und das in einem Anfängerbuch!
+ Das Buch hat mir gut genug gefallen, dass ich es in einer Woche gelese habe. Das passiert mir nur bei wirklich guten Büchern, andere liegen monatelang herum.
- Einige der letzten Kapitel wirken etwas gestresst, und es ist nicht klar ob sie wirklich notwendig sind.
- BlueJ? Ok, vielleicht kein echter Negativpunkt aber wenn selbst der Autor zugiebt dass er in Wirklichkeit Netbeans verwendet...
5. Fazit
Die erste Hälfte ist für Selbstudium und als Lehrbuch sehr geeignet , aber nicht als Nachschlagewerk gedacht.
Die zweite Hälfte kann man sowohl fürs Selbststudium und als Nachschlagewerk gut brauchen.