Bild von Software-Engineering für Quereinsteiger:innen

05. Jan 2024

Software-Engineering für Quereinsteiger:innen

Und warum es mehr als Informatik ist

Ich beginne gerne mit einem Zitat von Prof. Stefan Richter, Studiengangleiter Informatik an der Fachhochschule OST: «Während die Informatik ursprünglich die Wissenschaft der automatisierten Informationsverarbeitung ist, also stark vereinfacht die Wissenschaft effizienter Algorithmen und Datenstrukturen, geht es beim Software-Engineering um die Konkrete Implementierung komplexer Softwaresysteme. Das ist in etwa vergleichbar mit dem Unterschied zwischen Physik und Maschinenbau.»

Letzten Freitag waren wieder einige Studierende bei uns zu Besuch, welche sich für unser  Company-Cross-Programm  interessieren. Darunter sind auch immer viele Nicht-Informatik Studierende, z.B. aus den Bereichen der Elektrotechnik, Mathematik, Physik oder Maschinenbau, die aber gerne nach dem Studium als Software-Entwickler:in arbeiten möchten.

Die Wirtschaft bzw. wir und unsere Kunden benötigen vor allem «Software Engineers». Reines Informatik-Wissen reicht nicht aus, um erfolgreich zu sein. Wir haben deshalb einige Punkte und Tipps zusammengetragen, die wichtig sind für den Einstieg in unser Programm bzw. für den Weg von Informatiker:innen zu Software Engineers.

 

Was Dich als Software-Engineer bei uns erwartet:

  • «Moderne» Softwareentwicklung
  • Situationsgerechter Einsatz von objektorientierter, funktionaler und prozeduraler Programmierung (kennst du den Unterschied?)
  • Situationsgerechter Einsatz von Entwicklungsmethoden und -konzepten: Agil, Wasserfall, V-Modell, …
  • Verwendung von modernen Programmierkonzepten, Patterns etc.
  • Continuous Integration, Testautomatisierung, Buildautomatisierung, DevOPS, Versionskontrolle
  • Verwendung von 3rd Party Komponenten und Frameworks, z.B.:
    • Unit testing
    • Dependency Injection
    • GUI-Frameworks
    • Kommunikations-Frameworks
    • OR-Mapper

Für den Einstieg in unser Cross-Company-Programm erwarten wir nicht, dass du das alles schon 100% beherrschst, jedoch sollten die Begriffe für dich keine Fremdworte sein und du solltest die wichtigsten Grundlagen davon kennen.

 

Wie kannst du das bereits während deinem Studium lernen?

Grundlagen von Software-Engineering anschauen: Es lohnt sich auf jeden Fall, ein Buch über Software-Engineering zu lesen. Neben der eigentlichen "Programmierung" gehört noch viel mehr Know-how zu einem guten Software-Entwickler:in, insbesondere:

  • Projektmanagement
  • Requirements Engineering
  • Risikomanagement
  • Qualitätsmanagement
  • Systemdesign/technische Konzeption/Modellierung
  • Implementierung
  • Testing
  • Einführung/Wartung/Pflege

 

OO-Kenntnisse vertiefen in Projektarbeiten

  • Zusätzlich Bücher lesen, z.B. «Head First Design Patterns»
  • OO-Design Patterns verstehen
  • Source-Code von Frameworks anschauen und verstehen
  • Code und Architekturen von erfahrenen Programmierern anschauen und verstehen
  • SOLID Principles verstehen und in Projektarbeiten berücksichtigen

 

Feedback und Hilfe von Software-Experten bei Projektarbeiten verlangen

  • Elektrotechnik Betreuer haben in der Regel die benötigten Software-Kenntnisse nicht
  • Zusätzliche Inputs und Feedback von Software-Experten (Co-Betreuer, Freunde) ist nötig

Private Projekte starten

 

Bücher-Empfehlungen

StackOverflow reicht nicht - deshalb kann ich folgende Bücher wärmstens empfehlen:

Clean Code - Refactoring, Patterns, Testen und Techniken für sauberen Code 

von Robert C. Martin

  • ein absolutes Muss für alle Software Engineers
  • beschreibt anschaulich, wie gute, wartbare und fehlerfreie Software aussieht
  • bringt zwischen den Zeilen auch viel SW Engineering Know-how

amazon.de

Head First - Design Patterns

von Eric Freeman, Elisabeth Robson, Bert Bates, Kathy Sierra

  • einfach zu lesen, aber spezielles Lernkonzept
  • mit guter Einführung in OO und UML

amazon.de

Domain-Driven Design

von Eric J. Evans

  • starke Designmethode
  • viel Hintergrundinfos zwischen den Zeilen
  • gute Beispiele

amazon.de

Clean Architecture - A Craftsman's Guide to Software Structure and Design

von Robert C. Martin

  • sehr gut strukturiert, sehr angenehm zum Lesen
  • erklärt, was Software Architektur eigentlich ist
  • fasst viele wichtige Prinzipien (Programmierparadigmen, SOLID-Prinzipien, Boundaries und Schichten, Integration von Testing in Architektur, etc.) anschaulich zusammen

amazon.de

Für das Thema Software-Engineering habe ich leider noch keinen «Knüller» gefunden. Hier wäre ich auch sehr dankbar um Hinweise und Empfehlungen. Folgende Bücher und Links sind mindestens teilweise empfehlenswert:

Mein Kollege Christian Ewald hat mir noch folgende Bücher und Links empfohlen:

 

Der beste Einstieg in die Software-Entwicklung ist natürlich unser Cross-Company-Programm für Junior Software Engineers. Melde Dich bei uns, wenn du interessiert bist.


Schliessen
Stamp Icon-Print Icon-Clear
S
M
L
XL
XXL