Der pragmatische Programmierer
„Bei der Programmierung geht es darum, zu versuchen, die Zukunft weniger schmerzhaft zu gestalten.“ Dieses Zitat aus dem Geleitwort bringt auf den Punkt, warum man das Buch lesen sollte.
Es ist eines dieser seltenen Fachbücher, die ich nach Jahren immer noch im Regal stehen habe (die erste Auflage). Und immer wieder versucht bin, sie anderen ins Regal zu stellen. Jetzt ist die Jubiläumsausgabe da.
Ziel der Autoren ist, die Freude am Programmieren (wieder) zu wecken. Unabhängig von bestimmten Sprachen, Vorgehen oder Frameworks werfen die beiden einen Blick auf das, was gut funktioniert. Wie man Leute zu gutem Handwerk verhilft und Teams zu einem guten Klima verhilft.
Erläutert werden neben Best Practices auch Fallstricke. Gute Beispiele und interessante Analogien machen das Buch außerdem zu einer Fundgrube für Argumente in Gesprächen mit verschiedenen Stakeholdern. Übungen aus den Abschnitten werden im Anhang durch Lösungen bzw. Lösungsvorschläge ergänzt.
Zielgruppe: Leute, die nicht nur den Arbeitstag rumkriegen möchten, sondern stolz auf ihr Werk sein möchten. Und die keine Scheu haben, einmal Aufgebautes mit der Zeit auch immer wieder anzupassen.
Was macht das Buch aus?
„Pragmatisch“ ist m. E. nicht der treffendste Begriff dafür. Eher geht es darum, wirklich gute Programmierarbeit zu leisten, die robust ist und sich immer mit dem Fluss der Welt anpassen lässt.
In diesem Sinne lautet die Analogie für das Programmieren viel mehr Gartenbau als Hausbau: Man bereitet den Boden, macht es Schädlingen schwer und sieht zu, wie sich das große Ganze entwickelt. Wildwuchs ist schnell im Blick und wird sanft in die richtigen Bahnen gelenkt. Und am Ende kann man die Hängematte auspacken und genießen, was man geschaffen hat.
Aus dem Vorwort der Jubiläumsausgabe (eher frei zitiert):
20 Jahre sind in Bezug auf Software viele Lebensalter. […] Gleichzeitig haben 20 Jahre keinerlei Auswirkungen auf den gesunden Menschenverstand. Die Technologie mag sich geändert haben, die Menschen nicht. Praktiken und Ansätze, die damals eine gute Idee waren, sind auch heute noch gut. […] Ergänzt werden die überarbeiteten Teile durch Inhalte, die die sich verändernden Einstellungen und Umgebungen reflektieren: Von der agilen Bewegung […] über eine steigende Akzeptanz funktionaler Programmiersprachen bis hin zur Berücksichtigung von Privatsphäre und Sicherheit. […]
Fazit: Unbedingt (wieder) empfehlenswert. Mit Anspruch an das eigene Berufsethos.
Themen: Wie man…
- … den Verfall von Software bekämpft (Entropie)
- … flexiblen, dynamischen und anpassungsfähigen Quelltext schreibt
- … das eigene Handwerkszeug optimal nutzt
- … sich vor Sicherheitslücken schützt
- … Probleme bei nebenläufigem Code löst
- … Teams bildet
- … effektiv testet
- … Anwender:innen begeistert
- Anforderungen und (unlösbare) Rätsel
- Persönliche Verantwortung
- Architekturtechniken
- Orthogonalität & Umkehrbarkeit
- Zeitliche Kopplung
- Geschwindigkeit: Leistungsfähigkeit von Algorithmen
- (Falsche) Zustände
- Aktoren und Prozesse
- Design by Contract
- Ressourcen balancieren
- Programm vs. reale Welt
- Prototypen & PostIts
- Schlauer werden: Wissensportfolio
- Kommuniziere! Schreiben, reden, …
Die Rezension zur älteren Ausgabe in der Zeitung: Pragmatisch diesseits und jenseits der Logik
David Thomas und Andrew Hunt: „Der pragmatische Programmierer. Für Einsteiger, fortgeschrittene Programmierer und alte Hasen“. Hanser 2021. 39,99 EUR. ISBN 978-3-446-46384-4.
Website zum Buch: https://pragprog.com/titles/tpp20/the-pragmatic-programmer-20th-anniversary-edition
Maria