Gute Bücher

Eine kleine Auswahl an hervoragenden Büchern, die man als Software Engineer gelesen haben sollte. Die Reihenfolge sagt nichts über die Qualität der Bücher aus.

Design Patterns. Elements of Reusable Object-Oriented Software.
(Erich Gamma, et al)

Sollte man als Software-Engineer einfach gelesen haben!

PHP Design Patterns
(Stephan Schmidt)

Für diejenigen die mit Smalltalk oder C++ nichts anfangen können und sich nur auf PHP beschränken wollen, können anstelle des Gammas auch das hier lesen. Ich empfehle beide, damit man auch mal über den Tellerrand schaut.

Vom Mythos des Mann-Monats. Essays zum Software-Engineering
(Frederick P. Brooks)

Der Klassiker zum Thema Management von Softwareprojekten. Wenn man sich schon immer mal gefragt hat warum Softwareprojekte so oft aus dem Ruder laufen, der sollte diese Buch lesen. Es besteht aus mehreren kurzen Essays. Der Autor managte sebst bei IBM große Hard- und Softwareprojekte. Dieses Buch basiert auf seinen eigenen Erfahrungen und Beobachtungen. Es ist nach 20 Jahren immer noch brandaktuell.

Scrum - Agiles Projektmanagement erfolgreich einsetzen
(Roman Pichler)

Scrum ist einer von vielen agilen Softwareprozessen. Er ist maßgeschneidert für Projekte mit häufig wechselnden Anforderungen und setzt auf dem Gedanken des Lean Management auf. In diesme Buch wird der gesamte Prozess ausgiebig beschrieben. Dieses Buch eignet sich hervoragend für den ersten Kontakt mit Scrum. Auch ein Blick in die Buchverweisliste im Anhang ist sehr lohnend.

Refactoring: Improving the Design of Existing Code
(Martin Fowler, et al)

Refactoring oder eingedeutscht refaktorisieren ist eine Tätigkeit beim Programmieren, bei der die Code-Qualität verbessert wird ohne dabei das äußerliche Verhalten der Software zu verändern. In dem Buch werden verschiedene Refaktorisierungs-Muster vorgestellt und gezeigt wann man sie korrekt anwendet. Refactoring sollte nach Fowler ein integraler Bestandteil der Software-Entwicklung sein, um die Software wartbarer zu halten.

UML konzentriert
(Martin Fowler)

Sehr schönes Buch um die wichtigen Dinge der UML an praktischen Beispielen zu lernen. Mir gefällt besonders die offene Art wie Fowler auch bewusst rät die Spezifikation an manchen Stellen ausser Acht zu lassen, da es nur unnötiger Balast ist. UML ist leider gerade wegen diesem Balast verschriehen, da viele glauben es dient nur dazu viel Papier zu generieren und teure Tools zu verkaufen. Tatsächlich bietet UML viel Hilfe beim Konzipieren und Verstehenvon Software.

JavaScript: The Good Parts
(Douglas Crockford)

JavaScript ist zu unrecht verschriehen. Viele haben der Sprache gegenüber Vorurteile. Wenn man aber die funktionale Programmierung verstanden hat, dann wünscht man sich so manches JavaScript-Feature auch in anderen Sprachen. Nichts desto Trotz wurden bei der Entwicklung von JavaScript gravierende Design-Fehler begangen. Die schleppen wir nis heute mit uns herum. Sie sind größtenteils auch für die Verwirrung und die Vorurteile verantwortlich. Crockford (der Erfinder von JSON) geht in diesem Buch auf die guten Seiten von JavaScript ein und beschreibt warum man die bad parts besser &qupot;unlerned".