Bücher für Programmierer an entgegengesetzten Enden der Karriereleiter. Sie begleiten einmal das Arbeiten am oberen Ende und zum anderen den Schritt auf die unterste Sprosse.
Oft fragen Schulungsteilnehmer einen der Autoren dieser Rezension, welche Bücher sie lesen sollen, um bessere Software zu schreiben. Seine Antwort bestand bisher aus den bekannten Verdächtigen: “Design Patterns”, “Pattern-oriented Software Architecture”, “Clean Code”, “Working effectively with legacy code” und “UML Distilled”. Doch das war erst die halbe Antwort. Aus C++-Perspektive sind die Bücher von Scott Meyers, Herb Sutter und auch die “C++ Core Guidelines” ein Muss. Tausende Seiten geballtesWissen.
Und nun kommt ein wichtiges Werk hinzu: Das 300-seitige “Clean C++” von Stephan Roth. Der Autor schafft es in seinem englischsprachigen Buch, einen sehr guten Überblick über die für Software-Entwicklung relevanten Themen zu liefern. Dabei ist ihm besonders hoch anzurechnen, dass er nicht nur auf die Don’ts, sondern auch auf die Do’s eingeht.
Ein guter Einstieg
“Clean C++” besteht aus neun Kapiteln und einer Einführung zu UML. Die ersten beiden Kapitel sind vollkommen Programmiersprachen-agnostisch. In diesen Kapiteln zu Unit-Testing und den wichtigsten Prinzipien der Software-Entwicklung, etwa “Keep It Simple and Stupid” (KISS), “You Aren’t Gonna Need It” (YAGNI), “Don’t Repeat Yourself” (DRY) und “Principle Of Least Astonishment” (PLA), beschäftigt sich der Autor mit Evergreens für gute Software-Entwicklung. Dann erst setzt sich Stephan Roth die C++-Brille auf.
Weiter geht es mit Basics zu guten Namen, Kommentaren und Funktionen und dem Kapitel “Advanced Concepts of Modern C++”. Die Wurzeln von C++ liegen in der Objektorientierung, seine funktionale Ader wird aber immer dominanter. Welche Vor- und Nachteile bieten beide Paradigmen? Weitere Fragen, zu denen das Buch Antworten liefert.
Unit-Testing ist für Stephan Roth die Grundlage für Test-Driven Development (TDD). Das zeigt er durch ein ausführliches Beispiel. Abgerundet wird das Buch durch seine Sicht auf die wichtigsten Design Pattern und Idiome. Dabei liegt ihm das Design Pattern Dependency Injection besonders am Herzen, um das zu häufig verwendete Singleton-Pattern als Anti-Pattern aus unseren Codebasen zu entfernen. Recht hat er.
Was zeichnet “Clean C++” aus? Enthalten die zitierten Klassiker und C++-Bücher nicht schon das geballte Wissen? Auf jeden Fall! Das Buch “Clean C++” ist jedoch der einzige pragmatische Einstieg in die Themen rund um gute Software-Entwicklung, das sich in einer Woche gut konsumieren lässt. Ist dieser Einstieg geschafft, können die allgemeinen und C++-spezifischen Vertiefungen folgen. Die werden wohl jeden professionellen Software-Entwickler sein ganzes Leben beschäftigen.
Digitalunterricht
Das zweite Buch ist ein schmales Bändchen, das sich Anwendern ganz am Anfang ihrer Programmierer-Karriere zuwendet, nämlich Kindern, die mit dem speziell für Schüler entwickelten SoC Calliope mini das Programmieren lernen wollen. Die sechseckige Platine enthält einen Mikrocontroller und ein LED-Display nebst etlichen Sensoren sowie Anschlüsse für die Steuerung externer Motoren.
Für erste Übungen verwenden die Autoren den Editor PXT, der visuelles Programmieren erlaubt: Der Schüler zieht Funktionsblöcke aus einem Menü auf eine Arbeitspfläche. Ausgaben auf dem LED-Display kann der Editor sogar simulieren, sodass sich manche Programme auch ohne Calliope erstellen lassen. Für anspruchsvollere Robotik-Projekte taugt der Simulator jedoch nicht.
Das Buch erklärt auf einfache, verständliche und kindgerechte Weise alle Schritte bei der Programmierung – von der Idee über die Planung bis zum Kodieren und Testen. Schon die ersten Beispiele sind dabei in Teilaufgaben zerlegt und demonstrieren damit das schrittweise Herangehen an komplexere Aufgaben. Die anspruchvollsten Projekte dieser Sammlung nutzen den Lage- und Beschleunigungssensor, Schleifen und bedingte Programmausführung.
Alles in allem eine motivierende Anleitung für die allerersten Schritte als Programmierer.
Info 1

Stephan Roth:
Clean C++
Apress, 2017
300 Seiten
30 Euro
ISBN: 978-1484227923
Info 2

Nadine Bergner, Thiemo Leonhardt:
Programmieren mit dem Calliope mini für Dummies
Wiley, 2018
140 Seiten
10 Euro
ISBN: 978-352771449





