Vorsicht Algorithmen! Ob nun so explizit oder auch in der täglichen Berichterstattung über die Tech-Giganten mitschwingend wie ein Foucaultsches Pendel im Spiegelkabinett, allein der Begriff lässt viele erschaudern oder schlicht kapitulieren vor der Abstraktheit. Verwirrend und faszinierend zugleich. Das ist natürlich eine sehr populäre Einleitung zu einem Buch, was sich eigentlich an Programmierer aller Lernstufen richtet. Mir geht es bei diesem Review aber vor allem auch darum euch zu motivieren sich damit zu beschäftigen. Denn der Autor hat es so anschaulich hinbekommen die Konzepte zu vermitteln, dass sich mit diesem Buch alle mal bilden können, die sich in der Internet-Sphäre bewegen. Und sei es nur, da man eine App nutzt, welche „zaubern“ kann.
Neulich auf Insta. Da suchte ich nach Bildern, welche T-Shirts mit Katzen zeigen. Zufällig fiel mir in den Resultaten auf, dass eine ganze Reihe der Shirts gar nicht getaggt waren mit dem Felltier oder gar nen Bildtitel / Beschreibung sie verrieten. Wie hat die App denn bitte die zusätzlichen gefunden? Jaja, die Algorithmen! Diese sind das Thema des Buchs. Und um eure Motivation zu erhöhen sich mit ihnen zu beschäftigen: Man braucht nur die Zeitung auftzuschlagen (haha, ein Satz für die Sammlung „Was eure Kinder nicht mehr verstehen“) oder seine Finger aufs Display legen und findet alltäglich zahllose Beispiele für die Anwendung der „Algos“. Sei es was Wettervorhersagen angeht, selbstlernende Systeme in der Überwachung, Dating-Apps mit wundersamen Pairing und nicht ganz so tollen Matches in eurem Lieblingsspiel Clash Royale, Empfehlungen bei Amazon und… Algos schlummern überall, wenn man nur ein Smartphone in die Hand nimmt. Oder um beim Beispiel Insta zu bleiben: ist es nicht wundersam, dass man sich hier innerhalb von Sekunden anmelden kann? Wie findet denn das „System“ so schnell unser Login in der Datenbank? Dafür hat mir das Buch erst die Augen geöffnet.
Das Buch hier liefert genau anhand solcher Beispiele, also der Anmeldung bei Facebook etwa, das nötige Wissen. Es ist kein „populäres“ Buch im Stil einer Aufweckung wie das von Drösser, sondern schon eher ein Fachbuch, um anzuwenden, also letztlich zu programmieren.
Uns wurde vom mitp-Verlag „Algorithmen kapieren“ von Aditya V. Bhargava für ein Review zugeschickt. Die Neuerscheinung ist eine Übersetzung aus dem Amerikanischen von Knut Lorenzen und ist hier auf Amazon für 30 Euro erhältlich (Affiliate-Link). Kapieren ist als Übersetzung vom Kunstwort „Grooking“ (genutzt von Robert A. Heinlein in Stranger in a Strange Land) dabei ein schon recht ambitioniertes Wort, denn wahrhaftes Verstehen liegt auf einer tiefen Wissensebene. Mein Leseziel war es, im Kopf mal etwas Strukturen aufzubauen, zu verstehen welche Algorithmen es gibt und wie man sie generell nutzt, anwendet, analysiert, einordnet. Ja, überhaupt mal einen Zugang zu finden, welcher nicht so lahm anfängt und die Begriffe definiert. Von wegen „vor 1200 Jahren prägte der Herr Abu Dschaʿfar Muhammad ibn Musa al-Chwārizmī“ den Begriff uns so. Wir lesen übrigens gern Bücher aus dem Bereich der Technik, Fotografie, Software und allem, was Blogger so interessiert und nehmen uns stets die Zeit für das komplette Buch. Jeder, der sich etwa für machinelles Lernen und Bots interessiert, selbst programmiert oder es lernen möchte, sollte es sich mal anschauen.
Traut euch…
Auf 270 Seiten wird in „Algorithmen kapieren“ von einer „Einführung in Algorithmen“ bis hin zur „Dynamischen Programmierung“ und vielen schrittweise komplizierter werdenden Beispielen das Thema vermittelt. Es gibt Übungen zu jedem der 10 Kapitel, einen Ausblick sowie ein sehr sympathische Einleitung, welche einem die Verwendung des Buches näherbringt. Das Inhaltsverzeichnis selbst liest sich schon recht anspruchsvoll, wenn man das so quer über die Landau-Notation, Rekursion, Dijkstra-Algorithmus, Graphen und OCR die Augen schweifen lässt. Wobei man das ein oder andere selbst als purer Anwender bestimmt schon mal gehört hat, etwa die Hashtabellen.
Es geht dem Autor darum Algorithmen nicht mehr „langweilig und trocken“ zu vermitteln, sondern anhand von anschaulichen Beispielen. Dazu nutzt er nicht nur bloßen Text, sondern auch viele Skizzen und Bilder, welche alle recht sketchy sind. Das hat offenbar auch einen Rezensenten auf Amazon dazu angestachelt ein negatives Review zu schreiben, welches aber einem Mißverständnis unterliegt. Auch, wenn hier Herr Maus vom Cover grüßt, ist dies kein Buch für Kinder. Obwohl…
Das Original des Buchs hat in den USA offenbar sehr viele positive Stimmen erhalten. Auf dem Cover sind 4 aufgedruckt, etwa von einem Mitarbeier bei IBM, welcher verspricht, dass sich das Buch wie ein Roman lese. Zugegeben. Viele der Comicbildchen sind wirklich nur pure Auflockerung und bringen fürs Verständnis nix. Etwa wenn es in der Positionierung von 4 Personen nebeneinander im Kino geht. Sie nehmen eben genau die Hemmschwelle, von welcher jetzt schon mehrfach die Rede war. Generell aber sind die Zeichnungen extrem förderlich. Im Kapitel 4 zu Quicksort etwa, wenn es um die Aufteilung einer Fläche in gleichgroße quadratische Parzellen geht.
Der ein oder andere hat es vielleicht schon gemerkt, dass wir bisher relativ wenig inhaltlich wiedergegeben haben, sondern rein auf die Didaktik des Buchs hin schreiben sowie die Relevanz des Themas. Der Grund dafür liegt auf der Hand – es braucht eben ein Buch, um das Thema zu verstehen. Und dieses Buch sollte man linear lesen, ja beinahe studieren. Und entsprechend fällt mein Gesamturteil dennoch so aus, dass ich das Niveau ab Kapitel 6 doch recht hoch finde, sodass ich diese Kapitel mehrfach lesen musste, um sie zu verstehen. Wer sich also vor etwas „Arbeit „nicht scheut, sollte sich dieses Buch zulegen. Ganz so einfach ist es letztlich also doch nicht.
Insgesamt ist „Algorithmen kapieren“ ein sehr gutes Buch, um sich dem Thema nicht nur populär zu nähern, sondern wirklich anwendungsbezogen zu verstehen und einen ersten Fuß ins Feld der Programmierung zu setzen.