52 Punkte von xguru 2023-11-06 | 6 Kommentare | Auf WhatsApp teilen
  • Jedes Projekt, auch ein kleines, ist eine Gelegenheit, dem eigenen Werkzeugkasten neue Techniken und Tools hinzuzufügen
  • Größerer Wert entsteht, wenn man Techniken aus einem Projekt mit Tools aus einem anderen kombinieren kann, um Probleme zu lösen. Alles summiert sich
  • Am Anfang lernt man Sprachen/Bibliotheken, aber mit fortschreitender Karriere sollte sich der Interessenbereich erweitern
  • Das gilt nicht nur in technischer Hinsicht, sondern auch in Bezug auf Herangehensweisen, Methoden und Paradigmen
  • Der wahre Wert in der Entwicklung als Engineer liegt nicht nur darin, isolierte Fähigkeiten anzusammeln, sondern sie zu einem komplexen Geflecht zu verweben, das größer ist als die Summe seiner Teile

Werkzeugkasten

  • Wenn man sich Engineering-Fähigkeiten als Werkzeugkasten vorstellt, fügt man jedes Mal, wenn man etwas Neues wie einen Algorithmus/eine Sprache/ein Framework lernt, diesem Kasten im Grunde ein weiteres Werkzeug hinzu
  • Aber ein Werkzeug zu besitzen und zu wissen, wann und wie man es effektiv einsetzt, sind zwei völlig verschiedene Dinge
  • Genau darin liegt der Wert von Erfahrung
  • Jedes Projekt bietet unabhängig von seiner Größe eigene Herausforderungen, die dabei helfen zu verstehen, in welchen Situationen bestimmte Werkzeuge eingesetzt werden sollten
  • "Die Komfortzone ist bequem, aber sie lehrt selten etwas. Sucht aktiv nach Projekten, an denen ihr euch strecken könnt. Euer Werkzeugkasten wird es euch danken."

  • Doch der Werkzeugkasten ist kein statisches Objekt, sondern entwickelt sich mit seinem Nutzer weiter
  • Mit der Zeit fügt man nicht nur mehr Werkzeuge hinzu, sondern beginnt auch, sie auf neue Weise zu kombinieren, um immer komplexere Probleme zu lösen
  • Erfahrung mit RESTful API kann in einem anderen Projekt dabei helfen, Drittanbieter-Services souverän zu integrieren
  • Ein Verständnis von Multithreading kann die Performance datenintensiver Anwendungen drastisch optimieren
  • Der entscheidende Punkt ist, dass man nicht für jedes Projekt einen separaten Werkzeugkasten braucht
  • Mit einem einzigen Werkzeugkasten kann man die Vorteile der einzigartigen Anforderungen und Einschränkungen jedes Projekts nutzen

Pairing von Techniken und Tools

  • Was großartige Engineers von anderen unterscheidet, ist die Fähigkeit, Techniken aus einem Projekt mit Tools zu kombinieren, die in einem anderen Projekt erlernt wurden
  • Diese gegenseitige Befruchtung (Pollination) ermöglicht effizienteres Problemlösen und führt oft zu besseren Lösungen
  • Die Qualität eines Werkzeugkastens bestimmt sich nicht nach der "Anzahl der Werkzeuge", sondern nach der "Vielfalt der Probleme, die sich mit ihnen lösen lassen"
  • Praxisbeispiel
    • Angenommen, man hat an einer E-Commerce-Website gearbeitet und dabei ein tiefes Verständnis für Datenbanktransaktionen entwickelt, um Lagerbestände korrekt zu halten
    • In einem separaten Projekt ist man tief in die WebSocket-Programmierung für eine Echtzeit-Chat-Anwendung eingestiegen
    • Nun bekommt man die Aufgabe, ein Echtzeit-Dashboard für das Bestandsmanagement zu entwickeln
    • So lassen sich Fähigkeiten aus unterschiedlichen Projekten zu einer leistungsstarken Lösung zusammenführen
    • Man kann das tiefe Verständnis von Datenbanktransaktionen nutzen, um Zuverlässigkeit und Konsistenz der Bestandsdaten sicherzustellen, und gleichzeitig mit WebSockets Echtzeit-Updates an das Dashboard pushen
    • Die Kombination dieser Techniken hat den klaren Vorteil, dass man das Problem nicht nur löst, sondern es auf effiziente und elegante Weise löst
  • Über die Sicherheitszone hinauswachsen: Es ist wichtig, sich über die eigene Komfortzone hinaus zu strecken
    • Es ist leicht, sich zu Projekten hingezogen zu fühlen, die zum vertrauten und weniger belastenden bestehenden Skillset passen
    • Doch je vielfältiger die Erfahrungen sind, desto breiter wird die Palette an Werkzeugen und desto größer die Fähigkeit, diese fruchtbar einzusetzen
    • Man sollte aktiv nach Projekten suchen, die einen zwingen, Neues zu lernen oder auf eine Weise zu denken, die man zuvor noch nicht ausprobiert hat
    • Man wird feststellen, dass selbst Projekte, die auf den ersten Blick völlig unrelated wirken, viele Vorteile bringen können

Beweglich und anpassungsfähig bleiben

  • Technologie entwickelt sich ständig weiter, und ein Werkzeug, das man heute beherrscht, ist morgen vielleicht nicht mehr so nützlich
  • Das bedeutet aber nicht, dass das Werkzeug nutzlos wird. Vielmehr kann es die Fähigkeit fördern, sich an Veränderungen anzupassen und zu innovieren
  • Das Aufkommen Cloud-nativer Architekturen hat zum Beispiel Wissen über relationale Datenbanken nicht bedeutungslos gemacht
  • Wer die Grundlagen von SQL und Datenbankdesign versteht, kann seine Fähigkeit, mit modernen Datenspeicherlösungen zu arbeiten, erheblich verbessern

Praktische Tipps, um wertvolle Erfahrungen zu sammeln

  • Ein Tool zu meistern ist nur ein Meilenstein auf dem Weg zu verstehen, wann und wie man es einsetzen sollte
  • Es gibt verschiedene Möglichkeiten, Erfahrung zu sammeln
    • Vielfältige Projekte kuratieren: An unterschiedlichen Projekten verschiedener Größen, mit unterschiedlichen Technologien und in verschiedenen Problembereichen arbeiten. Jedes Projekt kann dem Werkzeugkasten etwas Einzigartiges hinzufügen
    • Reflektieren und dokumentieren: Nach Abschluss eines Projekts sollte man sich Zeit nehmen, um auf das Gelernte zurückzublicken. Noch besser ist es, es zu dokumentieren. Ein privates Repository mit "Lessons Learned" oder ein öffentlicher Blogbeitrag kann helfen, das Verständnis zu festigen und Wissen zu teilen
    • Sich in der Community engagieren: Über Open-Source-Beiträge oder auf Entwickler zugeschnittene soziale Plattformen kann man mit Problemen in Berührung kommen, denen man sonst nie begegnen würde
    • Mentoren finden und Mentoring erhalten: Eine der effektivsten Methoden, Gelerntes zu integrieren, ist, es anderen beizubringen. Ebenso sollte man nicht zögern, Rat bei Engineers einzuholen oder von ihnen zu lernen, die auf Bereiche spezialisiert sind, in denen man sich selbst nicht gut auskennt
    • Nie aufhören zu lernen: Online-Kurse, Webinare oder am Wochenende eine neue Sprache zu lernen – kontinuierliches Lernen ist das Schmiermittel für eine sich ständig weiterentwickelnde Karriere

Fazit

  • Technische gegenseitige Befruchtung (Pollination) ist kein bloßer Zufall, sondern die Eleganz des Engineerings
  • Die besten Lösungen entstehen oft aus unerwarteten Kombinationen von Techniken
  • Wenn man also das nächste Mal mit einem neuen Problem ringt, sollte man den Werkzeugkasten der eigenen Erfahrungen genau betrachten
  • Die Lösung findet sich womöglich nicht darin, ein neues Tool zu meistern, sondern die Werkzeuge, die man über Jahre aufgebaut hat, klug einzusetzen
  • Genau dieser mehrschichtige und nuancierte Ansatz zum Problemlösen ist es, der eine Karriere wirklich voranbringt und einen als Engineer hervorhebt

6 Kommentare

 
kan02134 2023-11-12

Ich denke, KI hat die Hürden stark gesenkt, sodass dieser Wandel schneller vorangekommen ist.

 
[Dieser Kommentar wurde ausgeblendet.]
 
zzzz2222 2023-11-06

Gebt mir doch erst mal die Gelegenheit, Erfahrung zu sammeln -_-
Bei solchen Billigbuden kann man keine Erfahrung sammeln. Vor allem, wenn dort auch noch PHP-Fanatiker herumlaufen, erst recht nicht!

 
hero512 2023-11-06

Das spüre ich in letzter Zeit stark.
Nur durchs Lernen allein geht es offenbar nicht.
Ist ein Jobwechsel zu einem guten Unternehmen (für gute Erfahrungen) wirklich die einzige Antwort?

 
xguru 2023-11-06

Es ist auch schwer zu sagen, dass eine gute Firma automatisch ein Ort ist, an dem man Erfahrungen in verschiedenen Projekten sammeln kann.
Ich glaube nicht, dass ein Jobwechsel unbedingt die Antwort ist. Ein Jobwechsel ist wirklich auch sehr anstrengend.
Wäre es nicht fürs Erste am besten, ein Side-Projekt zu starten?

 
hero512 2023-11-06

Danke. Ich fange gleich damit an, haha.