Zum Inhalt springen
Startseite » Blog » Stehenbleiben ist Rückschritt – wie ich als Entwickler jeden Tag dazu lerne

Stehenbleiben ist Rückschritt – wie ich als Entwickler jeden Tag dazu lerne

Auf ihrem Blog hat Psychologin Angelika Jahnke im August zu der Blogparade aufgerufen „Lebenslanges Lernen: Was habe ich als letztes gelernt?„. Dieses Thema hat mich etwas zum Nachdenken gebracht.

Für mich als Softwareentwickler und als wissbegierigen Menschen, gehört Lernen seit dem Kindesalter einfach zum Alltag dazu. Die Frage „Was hast Du als letztes gelernt?“ ist für mich daher nicht so leicht zu beantworten, da ich jeden Tag etwas dazulerne. Manchmal ist das ein einzelnes Aha-Erlebnis, manchmal sind es viele kleine Dinge die ich lerne – aber tatsächlich lerne ich jeden Tag. Bewusst.

Zu den Dingen, die ich im Lauf der Zeit gelernt habe, gehört die Erkenntnis, dass nicht alle Menschen gerne lernen. Denken, überlegen, Schlüsse ziehen – was dem einen Vergnügen bereitet ist für den anderen nur anstrengend. Das ist mir besonders bewusst geworden, durch das, was vor kurzem jemand zu mir gesagt hat: „Das ist wirklich schlimm, dass Du in Deinem Job, den ganzen Tag dasitzt und denken musst.“ Ich empfinde genau das Gegenteil. Durch aktives, bewusstes Lernen entdeckt man jeden Tag einen neuen Aspekt der Arbeit, der Menschen im persönlichen Umfeld, aber auch der Welt um uns herum – und das ist einfach unfassbar spannend.

Ich bin nun 42 Jahre alt und seit Januar 2010 hauptberuflicher Softwareentwickler. Ich habe schon die unterschiedlichsten Menschen kennengelernt. Manche versäumen es, sich weiterzuentwickeln und in ihrem Fachgebiet Schritt zu halten. Das ist nicht nur schade, sondern manchmal sogar gefährlich. Zum Beispiel wenn man in puncto Softwaresicherheit nicht am Ball bleibt. Zugegeben Schritt zu halten in einer beruflichen Umgebung die permanent weiterbeschleunigt, ist nicht einfach. Da muss man wirklich gut überlegen, in welchen Bereichen man auf dem Laufenden bleiben sollte und bleiben will.

Der richtige Fokus

Ich interessiere mich für vieles, aber da wir alle nur 24 Stunden pro Tag haben, müssen wir das Wichtige vom Unwichtigen trennen – und manchmal sogar das Wichtige vom noch Wichtigeren. In meinem Fall – aus beruflicher Sicht – bedeutet das, dass ich mir gut überlegen muss mit welchen Technologien und Frameworks ich mich beschäftige.

2011 habe ich damit begonnen das Symfony-Framework einzusetzen. Es ist super geeignet, um Webanwendungen und Online-Portale zu entwickeln. Es hat einen soliden Datenbank-Layer namens Doctrine, ist hervorragend objekt-orientiert aufgebaut und wird permanent weiterentwickelt. Das sind gute Vorraussetzungen für eine solide Softwarebasis.

2014 bin ich dann mit dem Zend Framework in Kontakt gekommen (heute Laminas), da mein Arbeitgeber, sein eigenes Framework darauf aufgebaut hatte. Vor einem Jahr kam dann noch Laravel dazu.

Da mir jedoch sowohl Laravel als auch Zend viel zu viele Ecken und Kanten aufweisen, (Bei Laravel / Eloquent fehlt mir z. B. ein vernünftiges Datenbankmodell, bei dem ich auf den ersten Blick sehe, welche Properties eine DB-Tabelle hat) bin ich Symfony stets treu geblieben.

Dementsprechend habe ich mich vor allem darauf konzentriert – da sind wir nun beim Thema „Fokus“ – meine Skills für Symfony weiterzuentwickeln. Das hat dazu geführt, dass ich nun wesentlich dynamischere Webapplikation entwickle, als noch vor einigen Jahren (Stichworte SymfonyUX und TwigComponents). Da ich meinen Fokus auf Symfony gesetzt habe, kann ich mit Symfony innerhalb kürzester Zeit Wepapplikationen, Backends und APIs entwickeln, die stabil laufen. Ganz nach dem Motto: Wenn Du einen Brunnen graben willst, dann grabe nicht viele kleine Löcher, sondern nur eines – und das tief!

Der Schlüssel dazu ist, sich auf einige wenige Themen zu fokussieren und darin die eigenen Fähigkeiten gezielt zu verbessern.

Wenn Du einen Brunnen graben willst, dann grabe nicht viele kleine Löcher, sondern nur eines – und das tief!

Mein Credo – aber nicht von mir

Offen sein für Neues

„Das haben wir schon immer so gemacht, und so machen wir das weiter.“ Diesem Motto folgen leider viele. Klar, es ist bequem. Man kennt sich mit den Tools aus, die man seit Jahren verwendet. Hier trifft allerdings auch der Spruch zu: „Wer nicht mit der Zeit geht, geht mit der Zeit.“ Um im Berufsleben nicht abgehängt zu werden, muss man auf dem Laufenden bleiben und offen für Neues sein.

Wer nicht mit der Zeit geht, geht mit der Zeit.

Dafür muss man vielleicht die eigene Einstellung ändern. Eine bewusste Entscheidung treffen, sich für andere Sichtweisen und für neue Herangehensweisen zu öffnen.

Vor zwei Jahren habe ich begonnen mit einem Freund zusammen zu arbeiten, der überhaupt nicht auf meine Lieblingsprogrammiersprache PHP gesetzt hat. Angular, TypeScript, Node.JS, Express-Webserver – das waren dann die neuen Schlagworte. Letztes Jahr kamen dann noch Laravel, Eloquent und TailwindCSS durch ein anders Projekt dazu. … und damit musste ich mich erst einmal anfreunden. Der Schlüssel dazu war: Ich wollte für Neues offen sein. Ich wollte sehen, was diese Frameworks und Programmiersprachen können und ob ich sie für meine anderen Projekte zukünftig einsetzen möchte. Und was soll ich sagen? Mit manchen Dingen kann man sich anfreunden, mit manchen nicht.

Mit Laravel und Eloquent kann man mich immer noch jagen, aber Angular, TailwindCSS, VisualStudio Code habe ich lieben gelernt. So habe ich beim neuen Schließfachkonfigurator für meinen Kunden Locktec GmbH voll auf Angular und Tailwind gesetzt (den Link zum neuen Konfigurator gibt es nach dem Rollout diesen Herbst).

Kleine Schritte in die richtige Richtung sind auch Fortschritte

Manch einer denkt vielleicht, Fortschritte müssen groß und sichtbar sein, damit sie etwas bringen. Oft sind es jedoch die vielen kleinen Dinge, die uns in ihrer Gesamtsumme ein Stück weiterbringen.

Dazu ein Beispiel aus der PHP-Entwicklung: In PHP möchte man manchmal prüfen, ob ein bestimmter Schlüssel in einem Array existiert. Wenn ja, möchte man mit dem entsprechenden Wert des Arrays weiterarbeiten. Wenn nein, möchte man z. B. einen Standardwert verwenden. Bis vor einigen Jahren musste man dazu diesen Weg gehen:

if (isset($myArray['myKey']) {
    $myValue = $myArray['myKey'];
} else {
    $myValue = "Nicht gesetzt";
}

Das war eine Menge Tipparbeit für wenig Ergebnis. Seit einiger Zeit (seit PHP 7) gibt es dazu den Null-Coalescing-Operator ?? (frag mich bitte nicht, wie man das ausspricht), der die Tipparbeit deutlich reduziert:

$myValue = $myArray['myKey'] ?? "Nicht gesetzt";

Es ist kein großer Lernaufwand, sich diesen Operator (??) zu merken, aber wenn man diesen jeden Tag mehrmals verwendet, macht das aufs Jahr gesehen mehrere Stunden Arbeitszeit aus.

Kleinigkeiten die man lernt, können in ihrer Summe manchmal großes bewirken. Eine ähnliche Schlußfolgerung findet man wohl in dem Buch Die 1%-Methode. Das Buch werde ich mir demnächst einmal zu Gemüte führen. 1% Verbesserung pro Tag, bringt nicht 365% Verbesserung pro Jahr, sondern ca. 3500 %. Diesen Effekt unterschätzt man nur zu leicht.

Was habe ich als letztes gelernt?

Das war ja die eigentliche Frage der Blogparade. Achtung fachchinesisch: Im vergangenen Monat habe ich gelernt, wie ich Symfony-Projekte eher komponentenbasiert aufbaue (ähnlich wie in Angular) und weniger templatebasiert. Dadurch spare ich deutlich Entwicklungszeit, da die einzelnen Teile der Webanwendungen viel besser wiederverwendbar sind.

Zu den Dingen, die ich den letzten Monaten gelernt habe gehören unter anderem:

Aus dem einen oder anderen Punkt werde ich wohl einen separaten Artikel erstellen und hier veröffentlichen – wenn nicht schon geschehen.

Schreibe einen Kommentar

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

WordPress Cookie Hinweis von Real Cookie Banner