Published
This post is written in German
Als Programmierer kommt man vielleicht in eine Phase, in der einem die eigene Phantasie davon rennt. Dann denkt man sich
innerhalb von einer Stunde ein schön aufgebautes System aus, das bloß leider auch sehr umfangreich und komplex ist. In
meiner persönlichen Entwicklung hab ich mehr als einmal Monate an etwas programmiert, dass ich mir in einer Stunde ausgedacht
hatte…
So schön das auch sein mag, so schlimm waren für mich persönlich die Folgen: Selbst wenn ein System besonders gut durchdacht
war, sobald ich an die Implementierung gedacht hab, ist der Eifer in Frust umgeschlagen. Es würde eh zu lange dauern, diese Idee
zu implementieren, also kann ich es auch gleich sein lassen.
Diese nüchterne Einsicht hätte fast dazu geführt, dass ich mit dem Programmieren aufgehört hätte. Wofür auch programmieren,
wenn man die Sachen, die man im Kopf hat, eh nicht so Umsetzen kann? Wofür, wenn man seinen eigenen Ansprüchen an schönen
Code nicht gerecht wird und damit auch keinen Spaß an der Sache hat? Ich habe mich in der Programmierung verloren… nur noch
des Programmierens halber programmiert und dabei oft die eigentlichen Probleme aus den Augen verloren.
Glücklicher weise bin ich damals mehr durch Zufall und englische Literatur auf eine andere Art der Programmierung gestoßen. Dort
ging es auf einmal um Prinzipien wie KISS (Keep it simple stupid) und DRY (Don't repeat yourself). Erst dank dieser Prinzipien hab ich
verstanden, dass es von Vorteil ist, ein System möglichst einfach zu halten. Weniger Code, weniger Fehler, übersichtlicher, schneller
zu implementieren und einfacher zu warten.
Nach einiger Gewöhnungszeit gelang es mir dann sogar wieder, mir Sachen auszudenken, die in überschaubarer Zeit programmierbar
waren. Zwar auch durch die Hilfe diverser Sprachen und Frameworks, aber in erster Linie indem ich in der Lage war, unnötige
Funktionen wegzulassen und so das System möglichst einfach zu halten. Komplexität hat zwar auch seine Schönheit, aber etwas, dass
ein Problem auf bestechend einfache und ausdrucksstarke Weise löst, hat einen ganz anderen Reiz.
Leider scheint man beim Studium auf solche Prinzipien nicht wirklich Wert zu legen. Warum auch Dinge einfach halten, wenn man sie
kompliziert machen kann? KACAP (Keep as complex as possible) scheint da der Trend zu sein. Warum sollte man als Programmierer auch
an das Problem denken, dass man eigentlich lösen wollte? Das währe ja fast so schlimm wie ein Programmierer, der leistungsorientiert
oder wirtschaftlich denken kann…
Langsam bekomme ich den Eindruck, manche Vorlesungen bewegen sich in diese
Richtung.