Buchtipp

Java Coding Problems

Tam Hanna

Programmieren ist eine jener Wissenschaften, die man am besten durch Übung erlernt. Da man oft nicht die Zeit hat, stundenlang sinnlos zu programmieren, bietet der PackT-Verlag nun ein Lehrbuch mit Java-Problemen an. Der didaktische Aufbau ist gelungen. Auf 809 Seiten stellt der Autor eine Gruppe verschiedener Probleme vor, die er in insgesamt 13 Kapitel unterteilt.

AUTOR(EN)

Anghel Leonard

TITEL

Java Coding Problems

UNTERTITEL

Improve your Java Programming skills by solving real-world coding challenges

SEITEN

816

PREIS

39,88 Euro

VERLAG

Packt Publishing

JAHR

2019

ISBN

978-1789801415

Der PT-Entwickler soll sich einige Aufgaben aussuchen und versuchen, eine Lösung zu finden. Der Autor präsentiert umfangreiche Beispiellösungen, die didaktisch mehr als sauber implementiert sind. Leonard ist sich der raschen Weiterentwicklung von Java bewusst und setzt deshalb auf Version 12 des JDK. Als Entwicklungsumgebung kommt NetBeans zum Einsatz – der Code lässt sich naturgemäß auch mit anderen IDEs verwenden.

Im ersten Aufgabenbereich beschäftigt sich der Autor mit Problemen, die Strings, Zahlen und Mathematik betreffen. Hier findet sich eine interessante Liste von Aufgaben, die von sehr schwierig (Verarbeitung von Unicode) bis einfach und nur wegen des Hintergrundwissens interessant reichen. Wer die Musterlösungen ansieht, stellt allerdings schnell fest, dass der Autor keine Angst hat, dem PT-Leser technische Informatik zuzumuten. Bei der Arbeit mit Objekten kehrt Leonard die Reihenfolge insofern um, als er dem angehenden Entwickler als Erstes einfache Aufgaben zumutet – Werfen einer Exception beim Vorfinden einer Nullinstanz – und das fachliche Niveau erst danach (aggressiv) anhebt. Neben lustigen Problemen mit tiefen und flachen Objektkopien findet man auch einige Themen aus der OOP-Forschung.

Interessant ist die Arbeit mit Datenstrukturen. Neben einfacheren Aufgaben findet sich eine Beispielimplementierung seltener Suchalgorithmen, darunter interessante Suchverfahren, die in der Praxis oft Zeit sparen. Es sei allerdings angemerkt, dass dieses Kapitel die Lektüre von Knutth oder Sedgewick auf keinen Fall ersetzen kann. Die darauffolgenden Ausführungen zur Dateiverarbeitung sind dann wieder wie gewohnt – interessant ist dabei eigentlich nur der Abschnitt, der sich mit der Tokenisierung von Strings auseinandersetzt und ungewöhnliche Vorgehensweisen präsentiert.

Fragt man den Normalentwickler nach dem für ihn angsteinflößendsten Teil des Java-Standards, bekommt man in vielen Fällen Reflection als Antwort. Der Autor ist sich dieser Tatsache bewusst. Neben der statischen bzw. dynamischen Analyse des Inhalts einer Klasse demonstriert das Buch auch, wie man die durch Reflection gewonnenen Erkenntnisse in die Ausführung von Methoden oder die Veränderung von Werten umsetzt. Damit ist der Großteil der Aufgaben erledigt. Die nächsten beiden Kapitel beschäftigen sich mit grundlegender und fortgeschrittener funktionaler Programmierung, es folgt eine Vorstellung der Methoden zur Parallelisierung. Hier geht Leonard noch einmal richtig in die Vollen: Es gibt kaum ein Feature des Threading-API, das nicht durch eine Programmierübung demonstriert wird. Die beiden folgenden Abschnitte zu Optionals und zum HTTPClient geben ebenfalls keinen Anlass zur Kritik.

Aus der Logik folgt, dass ein 800 Seiten langes Lehrbuch beim Abdrucken der diversen Antworten immer bis zu einem gewissen Grad Mut zur Lücke beweisen muss. PackT hat die Snippets allerdings richtig getroffen, in vielen Fällen finden sich zudem tiefergehende Grafiken mit Zusatzinformationen. Wer mit einem der im Inhaltsverzeichnis genannten Themenkreise Probleme hat, dürfte den Kauf des Lehrbuchs mit Sicherheit nicht bereuen. Hat man die Aufgaben durchgearbeitet (oder zumindest die abgedruckten Lösungen aufmerksam gelesen), verfügt man über einen wesentlich tiefergehenden Einblick in die jeweilige Materie. Von der englischen Sprache sollte man sich dabei nicht abschrecken lassen.

Geschrieben von
Tam Hanna
Tam Hanna
Tam Hanna befasst sich seit der Zeit des Palm IIIc mit der Programmierung und Anwendung von Handcomputern. Er entwickelt Programme für diverse Plattformen, betreibt Onlinenewsdienste zum Thema und steht unter tamhan@tamoggemon.com für Fragen, Trainings und Vorträge gern zur Verfügung.
Kommentare

Hinterlasse einen Kommentar

avatar
4000
  Subscribe  
Benachrichtige mich zu: