Was steht in meinem Software-Engineering-Bücherregal?

Auf dem neuesten Stand zu bleiben und sich ständig zu verbessern, gehört zum Job eines Softwareentwicklers.

Es gibt viele Möglichkeiten, neue Dinge im Internet zu studieren, wie MOOCs, Tutorials und Artikel. Doch manchmal ein physisches Buch ist die beste Wahl , vor allem , wenn es sich um eine „Referenz“ ist das Wissen bereitstellt , die für die Jahre dauern wird kommen. Wir können es in unser Bücherregal stellen und es jedes Mal durchgehen, wenn wir es für notwendig halten.

Dies ist eine Liste von Nachschlagewerken, die ich in meinem Bücherregal für Softwareentwicklung aufbewahre. Ich hoffe, es kann eine Inspirationsquelle für alle sein, die etwas Interessantes zum Lesen suchen! ?

Was ich in meinem Bücherregal habe

Entwurfsmuster: Elemente wiederverwendbarer objektorientierter Software

Das ist ein Klassiker.

In diesem Buch präsentiert die sogenannte "Gang of Four" die 23 Designmuster , die die objektorientierte Welt jahrzehntelang geprägt haben. Seitdem wurden neue Muster erstellt, aber die im Buch enthaltenen Muster gelten als Grundlage aller anderen Muster.

Es ist nicht einfach zu lesen, aber Sie sollten es sich ansehen, um zu verstehen, wo Sie bei jeder Gelegenheit das finden, was Sie brauchen. Lassen Sie es auf Ihrem Schreibtisch und gehen Sie es durch, wenn Sie etwas bauen und das Gefühl haben: "Was ich tue, kommt mir bekannt vor." Sie werden wahrscheinlich feststellen, dass Sie versuchen, ein bereits in diesem Buch beschriebenes Entwurfsmuster zu implementieren.

Clean Code: Ein Handbuch für agile Software-Handwerkskunst

Ich habe dieses Buch vor vielen Jahren gelesen, aber es ist mir seitdem erhalten geblieben.

Dies ist eine hervorragende Quelle für bewährte Methoden, um sauberen, lesbaren Code zu erstellen und Codegerüche zu vermeiden. Das Buch konzentriert sich hauptsächlich auf Java / OOP, aber viele Ratschläge können auf jede Sprache oder jedes Programmierparadigma angewendet werden.

Das Schreiben von wartbarem und lesbarem Code ist kein Luxus - es ist etwas, das jeder gute Softwareentwickler anstreben sollte . Dieses Buch vermittelt Ihnen das Wissen, um dies zu erreichen.

Onkel Bob kann manchmal etwas extrem sein, und ich stimme ihm nicht in allen vorgestellten Techniken zu. Mein Vorschlag: Lies es und nimm nur die Dinge mit, die du für richtig hältst. In jedem Fall ist es ein lesenswertes Buch .

Lernen Sie ein Haskell zum Wohle!: Ein Leitfaden für Anfänger

Dies ist ein Buch über die Programmiersprache Haskell. Warum also kaufen und als Referenz aufbewahren? Meine Gründe sind:

  • Es ist ein sehr gut geschriebenes und leicht zu lesendes Buch zu einem nicht so einfachen Thema wie der funktionalen Programmierung
  • Es gibt Ihnen die Grundlage für funktionales Denken, nicht nur für die Haskell-Syntax
  • Haskell ist eine sehr elegante Sprache und ich mag es

Dies ist das Buch, das mich in die funktionale Programmierung eingeführt hat. Im Moment programmiere ich hauptsächlich in Scala, aber der Übergang war viel einfacher, nachdem ich die Grundlagen von Haskell gelernt habe.

Funktionale Programmierung ist nicht einfach, aber sie wird Ihren Geist öffnen. Es kann sehr theoretisch sein und es wird sehr hilfreich sein, es mit Haskell in die Praxis umzusetzen .

Es gibt auch sehr schöne Zeichnungen im Buch, so dass Sie keine Entschuldigung haben, es nicht durchzublättern. ?

Kategorietheorie für Programmierer

Dieses Buch behandelt die Kategorietheorie , die die Grundlage des funktionalen Programmierparadigmas bildet.

Das Thema ist für Nicht-Mathematiker recht komplex, aber der Autor hat große Anstrengungen unternommen, um es für Entwickler verständlich zu machen. Ich gebe zu, dass ich einige Schwierigkeiten beim Lesen hatte, aber ich würde es gerne noch einmal durchgehen.

Dieses Buch ist nicht erforderlich, um ein großartiger funktionaler Programmierer zu werden. Lesen Sie es, wenn Sie Herausforderungen mögen und die theoretischen Grundlagen der funktionalen Programmierung vertiefen möchten.

Entwerfen datenintensiver Anwendungen: Die großen Ideen hinter zuverlässigen, skalierbaren und wartbaren Systemen

Dies ist mein Favorit, vielleicht weil ich verteilte Systeme liebe! :-D

In diesem Buch beschreibt Martin Kleppmann alle verschiedenen Aspekte verteilter Systeme, von der Serialisierung über Konsistenzmodelle bis hin zum Konsens, und geht dabei die verschiedenen Datenbank-Engines durch. Er untersucht auch neue Trends in Bezug auf datengesteuerte Anwendungen.

In einer Welt von Cloud-nativen Microservices-basierten Anwendungen ist es wichtig, die verschiedenen Aspekte eines verteilten Systems zu kennen. Das in diesem Buch bereitgestellte Wissen ist nicht an eine bestimmte Technologie gebunden und wird für Ihre gesamte Karriere in der Softwareentwicklung von Nutzen sein .

Release It!: Produktionsfertige Software entwerfen und bereitstellen

Ich lese das jetzt.

Sind wir fertig, sobald unsere Software an die Produktion gesendet wurde? Nein, das ist erst der Anfang!

Dieses Buch zeigt auf, was nach der Inbetriebnahme der Software schief gehen kann und sich echten Benutzern stellen muss. Es beschreibt Anti-Patterns, die die Stabilität unserer Software untergraben können, sowie Lösungen für solche Probleme.

Was mir an diesem Buch am besten gefällt, ist, dass jedes Kapitel mit einem Beispiel aus dem wirklichen Leben beginnt. Anschließend analysiert der Autor die Probleme, die dazu geführt haben, dass die Software in der Produktion fehlgeschlagen ist. Ich denke, aus konkreten Beispielen zu lernen ist ein sehr effektiver Ansatz.

Einführung in Algorithmen

Was kann ich zu diesem Buch sagen? Kaufen Sie es einfach und bewahren Sie es auf Ihrem Schreibtisch auf .

Wenn Sie ein Softwareentwickler sind, besteht eine hohe Wahrscheinlichkeit, dass Sie Datenstrukturen und Algorithmen studieren mussten. Es ist nicht immer einfach, mit Komplexität umzugehen oder die richtige Datenstruktur auszuwählen.

Wenn Zweifel auftauchen, öffnen Sie dieses Buch und Sie werden finden, was Sie brauchen.

Für die meisten Leute (einschließlich mir) ist dies eine sehr schwierige Lektüre. Normalerweise lese ich nur das, was ich in diesem Moment wissen muss, und halte das Buch auf meinem Schreibtisch im Blick.

Hyperfokus: So verwalten Sie Ihre Aufmerksamkeit in einer Welt der Ablenkung

Dies ist kein technisches Buch, aber es ist in den Lesungen enthalten, die mein Leben besser verändert haben.

Unsere Arbeit als Softwareentwickler besteht darin, Probleme mit unserem Verstand zu lösen. Um bei dieser Aufgabe effektiv zu sein, müssen wir uns vollständig auf das Problem konzentrieren können, das wir lösen .

Hier finden Sie viele Vorschläge und Techniken, um die Zeit zu maximieren, in der Sie sich auf eine Aufgabe konzentrieren können. Der Autor spricht auch darüber, wie wichtig es ist, dass Sie Ihre Gedanken schweifen lassen, wenn Sie kreativer sein müssen.

Das Beherrschen des Umgangs mit Ihrer Aufmerksamkeit verbessert nicht nur Ihre Arbeitsleistung, sondern auch jeden anderen Aspekt Ihres Lebens.

Was ich meinem Bücherregal hinzufügen werde

Der pragmatische Programmierer

Dies ist eines der bekanntesten Bücher in der Softwareentwicklung.

Die in diesem Buch vorgestellten Vorschläge und Techniken haben die Karrieren vieler Entwickler und Ingenieure zum Besseren beeinflusst. Das Buch wurde 1999 veröffentlicht, ist aber jetzt als neue und aktualisierte Ausgabe zum 20-jährigen Jubiläum erhältlich.

Das kannst du nicht verpassen. :-)

Refactoring: Verbesserung des Designs vorhandenen Codes

Es ist schwierig, immer qualitativ hochwertigen Code zu liefern. Fristen, Dringlichkeit und ein schlechter Tag wirken sich auf die Qualität Ihrer Arbeit aus.

Deshalb ist Refactoring so wichtig. Wenn wir beim ersten Mal keine Qualität liefern konnten, können wir sie später verbessern, um die Wartbarkeit zu verbessern. Martin Fowler (eines meiner Idole in der Welt der Softwareentwicklung) beschreibt die besten Techniken für ein effektives Refactoring.

In meinem Bücherregal ist immer Platz für Bücher, die mir helfen, besseren Code zu schreiben.

Fazit

Dies ist meine Liste der wichtigsten Bücher zum Thema Software-Engineering. Es ist keineswegs eine umfassende Liste "wichtiger" Bücher in diesem Bereich, und ich bin sicher, dass ich in den kommenden Jahren immer mehr Bücher hinzufügen werde.

Hoffentlich habe ich dir ein paar nette Tipps für das nächste Buch gegeben, das du lesen solltest. ?

Wir sehen uns!?