Skip to content

Humble Audiobook Bundle

Mal wieder eine neue Idee von den Humble-Machern. Das Humble Audiobook Bundle enthält fünf Hörbücher und drei weitere, wenn man mehr als den Durchschnitt (aktuell 5,90 US-Dollar) zahlt. Als Genre gibt es eine bunte Auswahl aus Thriller und Fantasy zum Lesen.

Die MP3-Audiodateien sind DRM-frei. Jeder kann den Preis selbst bestimmen und in variablen Anteilen auf die Hörbuch-Macher, die Humble-Anbieter, die Electronic Frontier Foundation und die Charity-Organisation Worldreader aufteilen. Das Angebot besteht noch bis zum 4. Februar 2014.

Ich selbst höre keine Hörbücher, da ich das Buch lieber selbst lese. Dennoch ist das ein sehr nettes Angebot. Sollte es nächste Woche noch erweitert werden, kaufe ich es vielleicht doch noch.

Buch: Weniger schlecht programmieren

Titel Weniger schlecht programmieren
Autor Kathrin Passig und Johannes Jander
Sprache Deutsch
Genre Sachbuch
Herausgeber O'Reilly, 2013
Seitenanzahl 456 Seiten

Man sollte sich seine Ziele nie zu hoch stecken. Dann lieber die Messlatte etwas niedriger hängen und die vorhandenen Hürden nach und nach nehmen. Das haben sich auch die Autoren des Buches „Weniger schlecht programmieren“ gedacht. Anstatt gleich ein guter Programmierer zu werden, fängt man hier lieber klein an.

Zielgruppe

Auch wenn der Titel „Weniger schlecht programmieren“ witzig klingt und auch sofort das Interesse weckt, steckt dahinter eine einfache Botschaft. Das Buch richtet sich vor allem, aber nicht nur, an Programmiereinsteiger und Hobby-Programmierer, die zwar vielleicht schon seit Ewigkeiten programmieren, aber nicht wirklich verstehen, was sie tun. Der Copy&Paste-Code aus dem Internet zusammengeklaubt, funktioniert zwar irgendwie und durch Versuch und Irrtum konnte der Code auch angepasst werden, aber so richtig hat man keine Ahnung, was man tut. Genau für diese Personen ist das Buch geschrieben.

Hintergrund hiervon sind die vier Stufen der Kompetenzentwicklung. Diese bauen sich auf von der unbewussten Inkompetenz, bei der eine Person nicht weiß, was sie nicht weiß (die bekannten „unknown unknowns“ von Donald Rumsfeld), hin zur bewussten Inkompetenz, bei der die Person immerhin weiß, was sie nicht weiß, über die bewusste Kompetenz, bei der die Person weiß, was sie weiß und es auch anwenden kann, bis man schlussendlich bei der unbewussten Kompetenz ankommt, bei der die Anwendung des eigenen Wissens ganz unbewusst geschieht und wie von Zauberhand geht.

Die Autoren Kathrin Passig und Johannes Jander haben sich ihr eigenes Ziel ebenfalls niedrig gesteckt und wollen die Leser nur von Stufe 1 auf Stufe 2 heben, wobei manchmal vielleicht sogar die Stufe 3 erreicht wird.

Inhalt

Das Inhaltsverzeichnis kann man auf der O'Reilly-Webseite nachlesen, weswegen es hier nicht wiederholt wird. Einige Kapitel und Inhalte verdienen aber besondere Beachtung.

Passig und Jander gehen auf sehr viele bekannte Konzepte und Regeln ein, die man als weniger schlechter Programmierer kennen sollte. Das geht vom Kiss-Prinzip („Keep it simple stupid“) über das YAGNI-Prinzip („You Ain’t Gonna Need It“) bis zum Pareto-Prinzip, was einigen auch als 80/20-Regel bekannt ist, d.h. dass die letzten 20% einer Aufgabe 80% der Gesamtzeit einnehmen.

Weniger bekannt, aber ebenso wichtig ist Eagleson's Law. Dies sagt aus, dass jeder selbstgeschriebene Code, den man mehr als sechs Monate nicht betrachtet hat, genauso aussieht, als hätte ihn jemand anderes geschrieben. Wer selbst schon mehrere Jahre programmiert, weiß sofort, was das bedeutet. Das ist auch der Grund, wieso die Autoren in ihren ersten drei Kapiteln so intensiv auf vernünftige Namensgebung und Kommentare eingehen. Etwas, was ziemlich oft missachtet wird – dabei ziemlich oft unbewusst.

Wer in dem Buch viele Codebeispiele sucht, wird vergebens suchen. Bereits in der Einleitung weisen die Autoren darauf hin, dass das Buch kein Kodierhandbuch ist. Ob man die Klammern nun ans Ende der Zeile oder zu Beginn der nächsten Zeile setzt (C++-Programmierer wissen, was gemeint ist) oder wie viele Leerzeichen der Code eingerückt werden soll, ist egal (Python-Programmierer dürfen jetzt widersprechen). Wichtig ist, dass es einheitlich und klar verständlich ist, was man macht.

Neben dem Text – und es ist wirklich viel Text, den die 456 Seiten enthalten – gibt es auch immer wieder kleine Anekdoten von Kathrin Passig und Johannes Jander und deren Programmierer-Freunde aus dem Alltag. Vor allem die Geschichten, bei denen etwas schief ging, regen zum Denken an, ob man selbst vielleicht einmal diesen Fehler gemacht hat – und es womöglich gar nicht bemerkte.

Beispielsweise ist die Van-Halen-Anekdote sehr interessant, dass diese bei ihren Bandauftritten keine braunen M&Ms im Backstagebereich bei der Verpflegung haben wollten. Diese vertraglich festgehaltene Regel diente allein dem Zweck zu prüfen, ob die Veranstalter der Musikveranstaltung den Vertrag wirklich gelesen und vor allem bis in kleinste Detail eingehalten hatten. Wenn es braune M&Ms gab, war die Wahrscheinlichkeit hoch, dass auch beim Bühnenaufbau irgendwas (Sicherheitsrelevantes) nicht passte.

Sehr interessant sind die Kapitel „Hilfe suchen“ und „Lizenz zum Helfen“. Das erste beschäftigt sich mit dem Thema, wie man richtig fragt, wenn man ein Problem hat. Das Thema ist deshalb interessant, weil es nicht nur für Programmierer relevant ist, sondern für jeden, der ein Problem hat. Viel zu oft schreibt man als Fehlerbeschreibung „Geht nicht!“ und ärgert sich dann darüber, dass einem keiner helfen will. Umgekehrt geht das zweite Kapitel darauf ein, wie man sich als Helfer zu verhalten hat, wenn man nicht gleich als arrogantes Arschloch herüberkommen will, das nur „RTFM“ durch die Gegend blökt.

Weitere interessante Kapitel sind die zum Unit-Testing und Refactoring. Auch auf Datenbanken und deren spezielle Probleme beim Programmieren und Benutzen wird eingegangen, sodass sich nicht nur Nutzer „klassischer“ Programmiersprachen durch das Buch angesprochen fühlen sollten.

Fazit

Schriftstellerin Kathrin Passig ist keine Unbekannte für die, die sich in der digitalen Welt heimisch fühlen. Dementsprechend ist es klar, dass sie weiß, wie man Inhalte vermitteln kann. Auch wenn sie selbst etwas programmiert, ist Johannes Jander der Software-Entwickler, der die Fehler gemacht hat, die man als schlechter Programmierer so machen kann. Zusammen ergibt sich ein wirklich gutes Team, dass zwischen interessanten, unterhaltsamen und lehrreichen Absätzen wechselt.

Sehr gut ist auch, dass das Buch von zwei deutschsprachigen Autoren geschrieben wurde, die auf einige Eigenheiten bei der Programmierung in deutscher Sprache eingehen. Sei es die Wahl der Sprache in den Kommentaren oder der Hinweis auf Unicode – etwas, womit sich viele englischsprachige Entwickler nicht herumschlagen (müssen), es aber vielleicht manchmal doch besser tun sollten (wenn ich an der Stelle auf „Gone Home“ verweisen darf).

Wichtig ist, was auch die Autoren im Buch erwähnen, dass viele Hinweise und Tipps nicht in der ganzen Fachwelt so gesehen werden. Es gibt viele Diskussionen (vor allem bei Namenskonventionen, was z.B. die Länge oder Aussehen von Methodennamen angeht) unter Programmieren und jeder hat da wohl seine eigene Meinung und Stil. Als Leser sollte man also immer im Hinterkopf haben, dass es nicht die eine Wahrheit gibt, wenn es ums Programmieren geht.

Etwas überbetont kamen mir die Hinweise auf Versionskontrollsysteme vor. In fast jedem Kapitel betonen die Autoren, dass ein Versionskontrollsystem nahezu unumgänglich ist. Sicherlich ist es hilfreich und ich selbst möchte es nicht missen, aber oft ist die Einrichtung vor allem für Programmieranfänger auf der Kompetenzstufe 1 so komplex, dass dies übertrieben wirkt.

Insgesamt ist „Weniger schlecht programmieren“ ein sehr unterhaltsames Buch, auch wenn man selbst schon mehrere Jahre im Geschäft ist. Vor allem, wenn man sich für einen guten Programmierer hält, sollte man einmal einen Blick hinein werfen. Man kann immer noch etwas lernen. :) Zum Ende flaut das Buch etwas ab, da sehr viele Themen aufgenommen werden, die sicherlich wichtig sind, aber nicht ganze Kapitel einnehmen könnte. Das wirkt dann teilweise etwas zusammengeschustert – so wie einige Misc-Klassen auf der Arbeit. Auf der anderen Seite kann man die für einen uninteressanten bzw. nicht passenden Passagen so schneller überblättern.

Am besten haben mir die zwei Kapitel zur Hilfesuche und Hilfestellung gefallen, da dies etwas ist, was man abseits der Programmierung auch in den Alltag mitnehmen kann - auch wenn es dabei natürlich oft um technische oder zumindest Technik-verwandte Themen geht.