Vor einiger Zeit wurde ich von einem angehenden Entwickler in einem Online-Chat gefragt, was er tun sollte, um eine erfolgreiche Karriere als Softwareentwickler zu starten. Das ist keine leichte Frage, aber ich denke, mit mehreren Jahrzehnten Erfahrung kann ich etwas zur Antwort beitragen. Meine Ratschläge haben auf den ersten Blick wenig direkt mit Software- Entwicklung zu tun. Persönlich erachte ich sie aber für wichtig.
Es spielt keine Rolle, welche Programmiersprache du zuerst lernst. Wenn du Glück hast, wird die Sprache, die du aktuell verwendest in 10 Jahren noch verwendet. Garantieren kann dir das Niemand. Ich habe viele Jahre in Pascal und Objective-C investiert, doch ihre Relevanz haben diese Sprachen seit dem eingebüsst. Trotzdem sehe ich es nicht als verlorene Zeit. Je mehr Sprachen du kennst, umso besser wirst du programmieren. Die unterschiedliche Syntax der Sprachen ist nicht das, was du kennen solltest. Es sind die Konzepte und Vorgehensweise und bei denen findest du Inspiration in allen Sprachen. Beispielsweise habe ich in einem Projekt das Konzept eines Tabellen-Controllers von Objective-C zu C++ übernommen. Eine eigene Klasse, die nur die Interaktionen und die den Datenbestand eines Tabellenelementes steuert, hielt ich für eine sinnvolle Idee. Problematisch wird eine unterschiedlicher Syntax nur, wenn du versuchst, mit zwei Programmiersprachen gleichzeitig zu arbeiten. Beruflich nutze ich C#, privat überwiegend Swift. Das führt mitunter zu Ergebnissen, welche die Compiler mit Fehlermeldungen quittieren. Nach meiner Erfahrung ist das menschliche Gehirn für solche Aufgaben nicht gut geeignet. Es gibt unendlich viel zu lernen und Technologien ändern sich schnell. Was du lernst, wird sich im Laufe der Jahre immer ändern. Du wirst nie aufhören zu lernen.
Erzeuge für dich ein GitHub-Konto oder eine persönliche Webseite und veröffentliche deine Arbeit dort. Dabei spielt es keine Rolle, ob es funktionsfähige Anwendungen oder nur Codeausschnitte sind. Dein Portfolio wird im Laufe der Zeit mit deinen Erfahrungen wachsen und du kannst jederzeit zeigen, wer du bist und was du gemacht hast. Und viel wichtiger, in deinem Portfolio kannst jederzeit nachschauen, wie du etwas zuvor gelöst hast. Es ist dein persönliches Nachschlagwerk, deine Bibliothek, genau auf dich zugeschnitten und in deinem Stil geschrieben. Das kann wichtig und nützlich werden. Während einer Probearbeit für eine Anstellung als Entwickler kopierte einer meiner Kandidaten Teile seiner Lösung aus seinem persönlichem GitHub. Es war sein archiviertes Wissen und es gibt keinen Grund, das Rad immer wieder neu zu erfinden. Das kostet nur Zeit und Geld und es spricht wenig dagegen, Code zu verwenden, der sich in der Praxis bewährt hat. Nutze was du hast und was du kennst. Dein Code ist dein Kapital. Kümmere dich um ihn und erzeuge Sicherheitskopien!
In dem Buch »Der pragmatische Programmierer« gibt es zwei Kapitel, die ich für wichtig erachte: »Sei die dümmste Person im Raum« und »Sei die klügste Person im Raum«. Beide Kapitel sind eine Aufforderung, gleichgesinnte Entwickler zu finden. Entweder, um von ihnen zu lernen oder um ihnen etwas beizubringen. Vermutlich wirst du am Anfang deiner Karriere denken, dass du doch nicht qualifiziert bist, anderen etwas beizubringen. Das wird in fachlicher Hinsicht vermutlich so sein, aber trotzdem gibt es Erfahrungen, die nur du gemacht hast. Besprich Probleme und Lösungen und lerne davon. Als Softwareentwickler hast du es nicht nur mit Maschinen zu tun. Wenn du umfangreiche Programme schreiben willst, funktioniert das nur im Team und dann ist Kommunikation wichtig. Lerne zu erklären und lernen zuzuhören. Wenn du kannst, besuche Konferenzen für Softwareentwicklung oder eine User Gruppe. Es ist nie verkehrt, über aktuelle Entwicklungen in der Softwareentwicklung informiert zu sein, aber nicht weniger wichtig sind auf solchen Veranstaltungen die menschlichen Kontakte. Spricht mit den Teilnehmern und den Besuchern und sie werden dir spannende, witzige und oft lehrreiche Gesichten erzählen. Manchmal ist die Unterhaltung am Kaffeetisch oder abends beim Bier für dich rückblickend viel nützlicher als alles, was während der Konferenz auf der Bühne erzählt wird.
Bevor ich meinen Weg als Softwareentwickler einschlug, war ihr viele Jahre lang Elektroniker. Das war ein Beruf, der, hätte ich auf den Berater vom Arbeitsamt gehört, für mich überhaupt nicht in Frage kam. Meine Schulnoten gäben das nicht her, erklärte er mir. Ich sollte lieber etwas anderes machen. Eigentlich waren meine Noten ganz in Ordnung, bis auf Mathematik. Damit hatte ich tatsächlich lang Zeit Probleme. Jedoch habe ich den Rat ignoriert und doch eine Ausbildung als Elektroniker angefangen und erfolgreich abgeschlossen. Anschließend war ich viele Jahre lang Werkstattleiter in einem Servicecenter für Baulaser und Vermessungsgeräte. Ich kann mich nicht daran erinnern, dort viel Mathematik gebraucht zu haben. Lediglich um die Einzelposen von Rechnungen zu addieren. Programmiert habe ich nebenbei immer. Unter anderem eine Software, die mir half die Ersatzteile in meiner Werkstatt zu verwalten. Und als ich dann nebenbei auf die Abendschule für Informatik ging, hatte ich auch in Mathematik gute Noten. Ich bin felsenfest überzeugt, es lag weniger an mir, sondern an der Form des Unterrichts und den Lehrern. Hätte ich damals auf den Berater vom Arbeitsamt gehört, wäre mein Leben komplett anders verlaufen. Ich hätte andere Dinge erlebt, andere Menschen kennengelernt und wäre nicht dort, wo ich jetzt bin. Vermutlich hätte ich nie den Text geschrieben, den du in diesem Moment liest. Menschen werden dir im Laufe deines Lebens gut gemeinte Ratschläge geben. Höre sie dir an, aber am Ende musst du entscheiden. Folge deinem Instinkt, folge deinem Bauchgefühl. Nicht jede Entscheidung wird die Richtige sein, aber das kannst du vorher nie wissen. Das Leben ist niemals ohne Risiko. Wichtig ist, dass du dich mit deinen Entscheidungen wohl fühlst und sie nicht triffst, weil jemand anderes meint, du müsstest es tun.
Geschrieben am: 24.04.2024