Bücher sind für mich eines der wichtigsten Weiterbildungsmittel.
Ich kann mit ein paar Stunden Aufwand von Jahren der Erfahrungen des Autors profitieren.
Hier sind meine persönlichen Favoriten im Bereich der allgemeinen Software-Entwicklung die ich als "must-read" bezeichnen möchte.

1. Clean Code


Clean Code ist das bekannteste Werk von Robert C. Martin, der auch unter dem Alias "Uncle Bob" bekannt ist.
Er beschreibt im ersten Teil verschiedene Prinzipien, Patterns und Praktiken die zu besserem Code führen. Weiter zeigt er anhand von Fallbeispielen wie man Code leicht verbessern könnte.
Eine Liste von Smells im dritten kann schlussendlich noch helfen die Dinge beim Namen zu nennen.
Wenn doch nur alle Entwickler diese Prinzipien in der Praxis auch befolgen würden!

2. The Pragmatic Programmer


Eine Ergänzung zu Clean Code für die Karriere als Software Entwickler. In diesem Buch geht es neben Source-Code auch um Themen wie Kommunikation, Tools und Teams.
Mein Lieblingsbeispiel aus dem Buch: "Select isn't broken".
Es ist sehr selten dass man einen Bug im OS, dem Compiler oder einer Library findet. Meist ist der Fehler in der Applikation.

3. Test Driven Development. By Example


Das beste Werk um zu lernen wie Test Driven Development (TDD) in der Praxis funktionieren kann.
Kent Beck erklärt das TDD-Vorgehen wie man es sich leicht merken kann:
1. Rot - Erstelle einen Test der fehlschlägt
2. Grün - Schreibe die einfachstmögliche Implementierung die den Test zum laufen bringt.
3. Refactoring - Eliminiere duplizierten Code und behebe Sünden aus Schritt 2.

Er erklärt es anhand von einfachen Beispielen und in Mini-Schritten, so dass man leicht folgend kann.

4. Working Effectively with Legacy Code


Wer ins kalte Wasser geworfen wird und für ein bestehendes Projekt Support und Weiterentwicklung übernehmen soll, findet in diesem Buch einige Herangehensweisen wie man mit den gegebenen Schwierigkeiten wie zum Beispiel fehlenden Tests umgehen kann.
Anhand ziemlich konkreter Problemstellungen beschreibt der Autor, Michael Feathers, Beispiele und mögliche Lösungsansätze.

5. Design Patterns. Elements of Reusable Object-Oriented Software.


Wohl das meist empfohlene Standard-Werk für Software-Entwickler. Das Buch ist etwas anstrengend zu lesen, da es eine Sammlung von Patterns ist.
Ein Problem mit diesem Buch ist, dass manche Leser nach der Lektüre überall nur noch Patterns sehen und nach möglichen Anwendungen für Pattern X suchen.

Wie bereits bemerkt ist das nur meine persönliche Auswahl. Ich bin sehr interessiert an euren Buch-Tipps zum Thema Software-Entwicklung im Allgemeinen.