Der Begriff Softwareentwicklung bezieht sich auf eine Reihe von computerwissenschaftlichen Aktivitäten, die sich mit dem Entwurf, der Erstellung, dem Testen, der Unterstützung und dem Einsatz von Software befassen. Softwareingenieure erstellen Programme, testen neue Software, erkennen Benutzerbedürfnisse und verbessern bestehende Software. In der Softwareentwicklung gibt es rasche und ständige Veränderungen, die ein kontinuierliches Lernen für die Karriere eines Entwicklers unerlässlich machen.
Die Arbeit in der Softwareentwicklung kann eine große Belastung sein. Normalerweise fragen sich Entwickler, ob sie Bücher lesen sollten, um besser in der Softwareentwicklung zu werden. Aber die eigentliche Frage, die Sie sich stellen sollten, lautet: „Welches Buch sollten Sie für die Arbeit in der Softwareentwicklung lesen?“. Beachten Sie, dass das Lesen von Büchern Sie nicht zu einem besseren Entwickler macht. Dazu bedarf es jahrelanger Erfahrung und Übung. Aber durch die Lektüre erhalten Sie einen Einblick in die Leitprinzipien, die Sie anwenden können, und lernen, häufige Fehler während des Entwicklungsprozesses zu vermeiden.
Hier sind einige Bücher für die Arbeit in der Softwareentwicklung. Die Liste ist unvollständig, da es immer wieder neue und bessere Bücher gibt. Aber diese werden wahrscheinlich einen größeren Einfluss auf Ihre Karriere in der Softwareentwicklung haben.
- Der pragmatische Programmierer: Vom Gesellen zum Meister
Buch von David Thomas, Andrew Hunt
In dem von David Thomas und Andrew Hunt geschriebenen und veröffentlichten Buch Pragmatic Programmer geht es darum, typische Probleme der Teamdynamik und des Projektmanagements zu vermeiden und die grundlegenden Verfahren der Softwareentwicklung zu verstehen. Die Autoren erörtern häufige Probleme, die Entwicklerteams in die Irre führen. Einer der Autoren, Andrew Hunt, sagte: „Die Technik hat sich verändert, die Namen haben sich geändert – aber die Probleme, die falschen Ansätze und die Faktoren, die zu Schwierigkeiten führen, sind immer noch sichtbar.“
Das Buch ist vollgepackt mit professionellen und technischen Anleitungen für Entwickler, z.B. wie man flexiblen Code schreibt oder sein Team durch ein Projekt führt. Obwohl das Buch bereits vor zwei Jahrzehnten geschrieben wurde, hat es in vielerlei Hinsicht noch immer seine Berechtigung. Es lehrt Sie einen pragmatischen Weg mit Tipps zur Verbesserung des Entwicklungsprozesses. So raten die Autoren beispielsweise dazu, einen Texteditor zu erlernen und seine Konzepte vollständig zu verstehen, und sie befürworten die Verwendung von Software zur Versionsverfolgung selbst bei kleinen Projekten. Egal, ob Sie ein neuer oder ein erfahrener Entwickler sind, Sie können die Lektionen in diesem Buch anwenden und Sie werden Ihre persönliche Produktivität und Genauigkeit verbessern. Sie erwerben Fähigkeiten und entwickeln Gewohnheiten und Einstellungen, die die Grundlage für den Erfolg in Ihrer Karriere bilden.
- Eine Philosophie des Softwaredesigns
Buch von John Ousterhout
Dieses Buch aus dem Jahr 2018, geschrieben von einem zertifizierten Software-Ingenieur namens John Ousterhout, ist ein echter Neuling im Buchclub der Softwareentwicklung. A Philosophy of Software Design erörtert das elementare Problem, das mit dem Softwaredesign verbunden ist, nämlich die Kontrolle der Komplexität. Das Buch beleuchtet die philosophischen Aspekte des Softwareentwicklungsprozesses und stellt eine Reihe von Designprinzipien vor, die bei der Softwareentwicklung umgesetzt werden sollten. A Philosophy of Software Design konzentriert sich darauf, zusammengesetzte Softwaresysteme in Module wie Methoden und Klassen zu zerlegen, die Sie unabhängig voneinander anwenden können. Der Autor erklärt Programmierprinzipien, die zu exzellenten und wartbaren Programmen führen, wie z.B. die Beachtung des richtigen Abstraktionsniveaus für Ihren Code. Das Buch konzentriert sich nicht auf eine bestimmte Programmiersprache; deshalb ist es weniger präskriptiv und mehr anwendbar. Der Autor stellt fest, dass Abstraktionen, die über einfache Schnittstellen (tiefe Module) verfügen, aber zusammengesetzte Funktionen verbergen, dazu beitragen, die Komplexität von Programmen zu verringern. Tiefe Module tun dies besser als flache Module, denn flache Module haben einfache Funktionalitäten, aber komplexe Schnittstellen.
- Sauberer Code: Ein Handbuch für agiles Software-Handwerk
Buch von Robert C. Martin
Sie werden guten Code erst dann erkennen, wenn Sie schlechten Code sehen, und genau das zeigt Ihnen dieses Buch. Dieser 2002 von Robert C. Martin geschriebene Klassiker konzentriert sich darauf, wie man Code schreibt, der leicht zu lesen und wartbar ist. Nicht nur für die Anwendung selbst, sondern auch für andere Entwickler, die in Zukunft an dem Code arbeiten könnten. Das Buch ist in drei Abschnitte unterteilt – die Prinzipien, Muster und Praktiken von sauberem Code. In seinem Buch stellt der Autor hässlichen, schwer zu lesenden, zu wartenden und zu verstehenden Code vor. Anschließend stellt er die Disziplinen, Werkzeuge und Techniken des echten Softwarehandwerks vor. Clean Code zeigt mit klaren Illustrationen, wie man schlechten Code in einen leicht zu wartenden Code umstrukturiert. Das Buch hebt die regelmäßigen Fehler hervor, die Entwickler machen, und erklärt das Prinzip der objektorientierten Programmierung. Clean Code ist für Java-Amateurentwickler unverzichtbar. Es behandelt Beispiele und echte Fallstudien in Java und ist auch auf andere objektorientierte Programmiersprachen anwendbar. Der Autor betont, dass mieser Code ein Unternehmen in die Knie zwingen kann, denn wenn man erst einmal mit schlechtem Code anfängt, wird immer mehr mieser Code angehäuft, was die Fehlersuche erschwert. Damit ein Code als sauber gilt, sollte er für andere Teammitglieder und Endbenutzer leicht verständlich sein.
- Entwurfsmuster: Elemente von wiederverwendbarer objektorientierter Software
Von Erich Gamma, Richard Helm, Ralph Johnson und John Vlissides
Ein Meisterwerk aus dem Jahr 1994, geschrieben und zusammengestellt von vier Autoren, Erich Gamma, Richard Helm, Ralph Johnson und John Vlissides. Die Autoren sind in der Welt der Entwicklung als „Gang of Four“ bekannt. Obwohl das Buch bereits vor zwei Jahrzehnten geschrieben wurde, sind Design Patterns immer noch anwendbar und für Entwickler, die ihre Programme kompetent strukturieren wollen, unerlässlich. Das Buch bietet einen Einblick in die drei Kategorien von Design Patterns. Nämlich: Schöpferische Entwurfsmuster: ermöglichen es Ihnen, neue Objekte auf unterschiedliche Weise zu formen, Strukturelle Entwurfsmuster: für das Prototyping und Verhaltensentwurfsmuster: die verschiedene Aktionen modellieren. Das Buch erklärt auch, wie Sie flexiblere und wiederverwendbare Designs erstellen können, ohne die Designlösungen neu zu entdecken. Die Autoren beschreiben und bewerten wiederkehrende Designs in objektorientierten Systemen. Das Buch lehrt Sie auch, wie diese bedeutenden Muster in Ihren Softwareentwicklungsprozess passen und wie Sie sie zur Überwindung von Designproblemen einsetzen können. Für jedes Entwurfsmuster wird erläutert, in welchen Situationen es angewendet werden kann und wann es unter Berücksichtigung anderer Entwurfseinschränkungen eingesetzt werden kann. Dieses Buch ist eine Pflichtlektüre für Entwickler, die an komplexen Projekten und Systemen arbeiten.
- Refactoring: Verbesserung des Designs von bestehendem Code
Buch von Martin Fowler
In seinem Buch schreibt Martin Fowler über die Verbesserung des Designs eines bestehenden Codes. Martin Fowler spricht in seinem Buch über den Refactoring-Prozess und nimmt sich Zeit, um zu erklären, wie man die verschiedenen Refactorings durchführt – das Verhalten der erhaltenden Transformationen. Das Buch definiert Refactoring als Veränderung eines Softwaresystems, die nicht das äußere Verhalten des Codes ändert, sondern die interne Struktur verbessert. Das bedeutet, dass Sie Ihren bestehenden, aber funktionierenden Code aufräumen. Dazu gehört das Umbenennen von Methoden und das Auflösen von switch-Anweisungen in eine polymorphe Form. Der Autor erklärt, dass Sie einen falschen Code entfernen und ihn durch Refactoring in einen besseren umgestalten können. Das Buch beschreibt die siebzig Refactorings, die Motivation dafür und wie man sie ausführt. Eine der grundlegenden Strategien für das Refactoring besteht darin, den Code um sinnvolle Codegruppierungen zu gruppieren und die Vermischung von Verarbeitungsschritten zu verhindern. Der Autor geht weiter und erklärt, warum Sie Ihren Code refaktorisieren sollten, wie Sie Code erkennen, der refaktorisiert werden muss, und wie Sie dies unabhängig von der von Ihnen verwendeten Programmiersprache effektiv umsetzen.
Fazit
Dies sind einige der bewährtesten und anerkanntesten Bücher für die Arbeit in der Softwareentwicklung. Wenn ich einem Entwicklerkollegen eine Empfehlung geben soll, würde ich für ihn The Pragmatic Programmer und Clean Code wählen. Wenn Sie Ihre Fähigkeiten und Ihr Wissen im Bereich der Softwareentwicklung erweitern möchten, sollten Sie eines dieser Bücher oder alle lesen, um Ihren Horizont über verschiedene Aspekte der Softwareentwicklung zu erweitern.