Aus Linux-Magazin 12/2020

Zwei lesenswerte Bücher über das Programmieren

Das erste Buch hilft unerfahrenen Programmierern, die häufigsten Fehler zu vermeiden. Das zweite setzt Erfahrung mit Python 3 voraus, ist dann aber nicht minder nützlich.

Schon im Vorwort von “Weniger schlecht programmieren” bekennen sich Kathrin Passig und Johannes Jander zu einem realistischen Ziel: Sie wollen gar nicht gestandenen Kernel-Entwicklern deren Job erklären. Stattdessen haben sie sich den Gelegenheitsprogrammierer als Zielgruppe auserkoren, der zwar auch im Unternehmen Code beisteuern kann, sich aber darauf beruft, er tue das nur für sich und aus Spaß an der Freude. Wird dieser Code dann irgendwann doch professionell verwendet, erweist er sich oft bald als unverständlich und nicht wartbar, als schlecht dokumentiert und fehleranfällig. Dem will das Buch vorbeugen, indem es ein Bewusstsein für die häufigsten Fehler und Probleme beim Programmieren entwickeln hilft.

Was die Autoren dann als Stolpersteine identifizieren, vermag zwar nicht zu überraschen, wird aber originell und erhellend aufgedröselt: schlechte Formatierung, gemischtsprachige Kommentare, keine durchgängige Namenskonvention, verwirrende Benennung von Variablen, Funktionen oder Klassen sowie fehlende Kommentare. Als hilfreich erweist sich in diesem Zusammenhang eine Liste englischer Verben, die häufig in Funktionsnamen auftauchen und die hier auf ihre Bedeutungsnuancen abgeklopft werden. Das alles bringen Passig und Jander dem Leser in einer eingängigen und humorvollen Weise näher, die sich leicht aufnehmen lässt und deren Lektüre Spaß macht. Zahlreiche Beispiele und Zitate unterstützen das Verständnis.

Die Autoren zeigen aber nicht nur, wie man Fehler im eigenen Code vermeidet, sondern gehen auch auf Techniken ein, fremden Code zu lesen. Daneben untersuchen sie, wie man sich gegebenenfalls am besten um Hilfe bemüht, wie man selbst anderen hilft, ohne zu belehren, und wie man im Team mit anderen Programmieren gut zusammenarbeitet. Weiter geht es um die systematische Suche nach den beim Coden unvermeidlichen Fehlern, also um das Debugging, das Refactoring, viele Facetten des Testens. Auch die Nutzung von Bibliotheken anstelle von Eigenbau sowie Editor oder IDE nebst Versionsverwaltung kommen zur Sprache.

Kurz: Für alle, die sich im Programmieren versuchen wollen, ohne dass das ihr tägliches Brot wäre, erweist sich “Weniger schlecht programmieren” als unbedingt empfehlenswerte Fundgrube nützlicher Ideen.

Infos

Kathrin Passig, Johannes Jander:

Weniger schlecht programmieren

O’Reilly, 2014

430 S., 25 Euro

ISBN 978-3-89721-567-2

Studienmaterial

Das zweite Buch, “Algorithmen in Python”, stellt eine breite Auswahl an Algorithmen nebst deren Implementierung in Python vor. Den größten Gewinn aus der Lektüre zieht derjenige, der die meisten der Algorithmen schon einmal gesehen hat, andere Implementierungen zum Vergleich heranziehen kann, oder sich am besten sogar mit einer eigenen Version daran versucht. Zudem sollte der Leser unbedingt sattelfest in Python 3 sein: Autor David Kopec erklärt zwar oft, was gemacht wird, aber kaum, wie man das in Python-Syntax umsetzt. Auch ein wenig Oberstufen-Mathe im Hinterkopf ist nicht von Nachteil.

Wer diese Voraussetzungen erfüllt und Gefallen an einer intellektuellen Herausforderung findet, dem beschert die Lektüre einige Aha-Momente. Mit Beispielen wie der Fibonacci-Folge oder den Türmen von Hanoi geht es recht einfach los; sie illustrieren einige grundlegende Techniken wie Rekursion, Memoisation, Bitmanipulation und Komprimierung. Danach schließt sich ein Kapitel über diverse Suchalgorithmen an, wie Tiefen- und Breitensuche. Der folgende Abschnitt widmet sich Problemen, die man löst, indem man bestimmte Bedingungen erfüllt – sogenannte Constraint-Satisfaction-Probleme. Ein Beispiel ist die Fragestellung, wie sich acht Damen so auf einem Schachbrett verteilen lassen, dass keine eine andere schlagen kann.

Weiter geht es mit Graphenalgorithmen wie dem bekannten Dijkstra-Algorithmus sowie mit genetischen Algorithmen. Es schließt sich ein Kapitel über Clustering mit k-Means als Beispiel an. Anschließend wird ein einfaches neuronales Netz als Modell programmiert. Danach geht es erneut um Suche, diesmal aber im Kontext der Spieltheorie, und im letzten Kapitel um vermischte Aufgaben, die sich anderswo nicht einordnen ließen.

Alles in allem erweist sich “Algorithmen in Python” als anspruchsvolles, sehr interessantes Buch für den erfahrenen Python-Programmierer.

Infos

David Kopec:

Algorithmen in Python

Rheinwerk, 2020

292 S., 30 Euro

ISBN 978-3-8362-7747-1

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDFUmfang: 1 HeftseitePreis €0,99
(inkl. 19% MwSt.)
LINUX-MAGAZIN KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS Readly Logo
E-Mail Benachrichtigung
Benachrichtige mich zu:
0 Kommentare
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben