Neue Wege als Software Engineer – Von Java nach .NET

Guster-Michael_01

Michael ist heute im .NET/Sitecore-Squad bei Namics in St.Gallen als Software Engineer tätig. Nach seinem Start im Java-Umfeld Ende 2013 entschied er sich nach gut einem Jahr mit einem internen Wechsel in die .NET-Entwicklung dazu, seinen persönlichen Karrierepfad neu auszulegen und sich gleichzeizig den neuen Herausforderungen zu stellen. Wie es ihm dabei erging und welche Gründe ihn dazu bewogen haben, erfährt ihr im nachfolgenden Interview-Post.

Wie und warum hast Du damals (wann war das?) mit der Java-Entwicklung begonnen?

Mich hat schon immer fasziniert, wie strukturierter Text eine komplette Business Logik repräsentieren kann und zu einem mächtigen Werkzeug wird. Deshalb habe ich mich im Herbst 2010 während meines Systemtechniker- Studiums an der NTB für die Fachrichtung Ingenieurinformatik entschieden. Von den Java-Basics, über Design Patterns, Web Services, bis hin zur Implementierung des Protokolls KMIP4J in der Bachelorarbeit, war einiges dabei. Ab 2013 durfte ich bei Namics meinen Horizont im Web-Umfeld erweitern mit der Software Entwicklung rund um Adobe’s CMS AEM.

Was hast Du dabei als besonders spannend empfunden und für Deine Laufbahn als Entwickler im Webumfeld gelernt?

Ich durfte viele spannende Projekte begleiten, wie z.B.

  • Die Microsite Phonak Brio (www.brio.phonak.com)
  • Migration von CQ 5.3 auf  AEM 5.6.1 und diverse Weiterentwicklungen bei der Privatklinikgruppe Hirslanden (www.hirslanden.ch)
  • Migration auf AEM 6.0 und Relaunch des Kanton ZH Webauftritts (www.zh.ch)

Dabei habe ich vor allem gelernt, dass zum Programmieren nicht nur das Beherrschen der Sprache gehört, sondern auch Kenntnisse über den ganzen Technologie Stack und Weitblick.

Was war Dein persönlicher Beweggrund, Dich gegenüber neuen Technologien zu öffnen?

Da die Technologien im Webumfeld ständig im Wandel sind, muss man schon eine gewisse Flexibilität und Lernbereitschaft mitbringen. Aber wie es so ist, wird man irgendwann zum Routinier bzw. man erhält bei der Arbeit eine gewisse Routine, die einem ein gutes Gefühl gibt.

Nachdem ich ein Jahr als Software Engineer im Java-Umfeld mit dem CMS AEM gearbeitet habe, war es zuerst nicht einfach meine Wohlfühl-Zone und mein Team zu verlassen und einen Umstieg auf C# und das CMS Sitecore zu wagen. Anfangs war es hauptsächlich die Berührungsangst die es zu überwinden galt, und der Gedanke, dass ich nun wieder bei Null beginnen muss.

Ich stand vor allem persönlich an einem Punkt wo ich mir selbst die Frage stellte,

„Wie sieht meine Software Engineering Zukunft, aus?“

„Muss ich nun die „Religion“ Java aufgeben?“

„Spezialisiere ich mich weiter auf Java, oder stelle ich mich diversifizierter auf?“

Schlussendlich hat mich die Neugier getrieben und ich habe den Schritt gewagt. Eine interne Schulung, sehr hilfsbereite Teamkollegen und interessante Projekte haben mir den Umstieg enorm erleichtert.

Inwiefern konntest Du bei deinem Umstieg von Deiner bisherigen Erfahrung profitieren?

Was die Sprache betrifft, hatte ich während meinem Bachelor Studium ein Semester lang Kontakt mit C#, wobei ich die Grundlagen der Sprache kennen gelernt habe. Schon da ist mir aufgefallen, dass Java und C# über sehr ähnliche Konzepte verfügen. Beide Sprachen sind objektorientiert, typensicher, verwenden Garbage Collection, haben ein sehr ähnliches Exception Handling, etc.

C# bringt ein paar neue Funktionen mit sich, wie z.B. Delegates und Lamda-Expressions, wobei letzteres auch endlich in Java 8 verfügbar ist. Mit der Berufserfahrung aus dem Java-Umfeld, ist der Umstieg daher sehr intuitiv verlaufen. Die grösste Herausforderung war, den neuen Technologie Stack zu verstehen, die neuen Libraries kennen zu lernen und sich an die neue Entwicklungsumgebung zu gewöhnen.  Auch beim Wechsel vom CMS AEM auf Sitecore, gab es viele Parallelen.

Für diesen Switch musste ich – ehrlich gesagt – mehr Engagement aufwenden als für die Sprache, da dies ein neuer Baukasten war, welcher von Grund auf neu erforscht werden musste.

Wie können wir uns Deinen Einstieg in die .NET-Entwicklung vorstellen?

Als ich mich dafür entschieden hatte, ging alles ganz schnell:

  • eine halbe Woche C# Entwickler-Workshop von unseren internen Cracks,
  • eine halbe Woche Sitecore Schulung,
  • anschliessend direkte Mitarbeit auf dem Projekt.

Danach hatte ich jederzeit die Möglichkeit auf meinen Coach oder unsere Mitarbeiter zuzugehen, um sie mit Fragen zu löchern. Damit die Code-Qualität sichergestellt war, haben wir regelmässig Code-Reviews durchgeführt. Das hat mir sehr geholfen meinen Code sauber zu halten und die Do’s & Dont’s zu lernen.

Neben der Projektarbeit durfte ich mich ausgiebig in die API’s und die Sitecore Dokumentation einlesen, was ja auch zum Developer-Business gehört. Nach ca. einem halben Jahr ist wieder Routine eingekehrt, die mir die nötige Sicherheit beim Entwickeln gibt und für zusätzlich Motivation sorgt.

Wie sieht bei Dir der Blick in künftige Entwickler-Glaskugel aus?

Rückblickend war und ist es die richtige Entscheidung sich für was Neues zu öffnen. Durch den Switch zwischen der Java- und der .NET-Welt bin ich entwicklungstechnisch diversifizierter aufgestellt und einsetzbar. Dieser Modus spricht mir eigentlich sehr zu, da ich den Spass am Entwickeln aus beiden Welten erleben kann. Jedoch birgt es die Gefahr zu generalistisch unterwegs zu sein. Wenn ich also in die Glaskugel blicke, werde ich mich im .NET- bzw. Sitecore-Umfeld vertiefen.

Was mir auf jeden Fall wichtig ist für die Zukunft: Stay Tuned!

It seems as if Java was built to keep a developer from shooting himself in the foot.  It seems as if C# was built to give the developer a gun but leave the safety turned on.  And it seems as if when C++ was built, they just handed the programmer a fully loaded bazooka with an open-ended license to use it.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

*

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>