Aus meiner eigenen Erfahrung als Software-Entwickler seit 2001 gebe ich dir hier einen echten Einblick in die Aufgaben, den Einstieg und Arbeitsbedingungen von Software-Entwicklern. 

Der Begriff Software-Entwickler

Es gibt eine Reihe unterschiedlicher Bezeichnungen für den Beruf Softwareentwickler bzw. Software-Entwickler. Gern wird der Job auch als Programmierer oder Coder bezeichnet

Das ist leider nicht korrekt, denn das Programmieren oder Coden ist ein Teilbereich der Software-Entwicklung. 

Vereinzelt wird man auch die Bezeichnung Developer und Software Developer finden. Beides sind die Übersetzungen von Entwickler und Software-Entwickler ins Englische.

Was machen Software-Entwickler?

Die Aufgaben von Software-Entwicklern sind breit gefächert. Das komplette Neu-Entwickeln von Applikationen ist, obwohl von vielen Hauptaufgabe vermutet, eher selten.

Viel häufiger kommt es vor, dass unterschiedliche Applikation bzw. Programme miteinander verbunden werden müssen. Dazu werden Schnittstellen programmiert; das können entweder kleine Skripte oder eigene Applikationen sein.

Als weitere Aufgabe, die aus der vorangegangenen resultiert, zählt das Einkreisen von Problemen, die aus der Verbindung von mehrerer Applikationen entstanden sind. Da sich Software und auch die Umgebung, in der sie läuft, ständig verändern, entstehen dadurch immer wieder neue Probleme.

Das Erweitern von eingekaufter Software nimmt ebenfalls eine wichtige Rolle in der Tätigkeit von Software-Entwicklern ein. Häufig funktioniert eingekaufte Software nicht so, wie das Verkäufer versprochen haben oder sie passt nicht in die bestehenden Abläufe der Anwender. Erweiterungen finden entweder in Absprache mit dem Hersteller statt oder werden via Schnittstellen unabhängig vom Hersteller vorgenommen.

Diese Erweiterungen wiederum müssen regelmäßig gewartet und dem neusten Stand der Technik angepasst werden. Und natürlich müssen auch Probleme, die im laufenden Betrieb auftauchen, beseitigt werden.

Sobald man nach einigen Jahren im Job – rund 5-8 Jahre – die Rolle des Senior Software-Entwicklers erreicht, wandelt sich der Job häufig in beratende Tätigkeiten von Nicht-Entwicklern.

Wenn man es sehr vereinfacht ausdrücken will, ist man „Klempner für Programme und Erklärbär für Nicht-Enwickler“.

Wo arbeiten Software-Entwickler?

Grundsätzlich ist die Arbeit in nahezu allen Branchen möglich: Beispiele sind die Tech-Industrie, die Gaming Industrie, im Gesundheitsbereich, in der Automobilbranche oder im öffentlichen Sektor.

Es gibt sehr viele Möglichkeiten, sich zu spezialisieren, so dass für jedes Interesse Platz ist.

Wichtig ist, sich nicht gleich auf eine Branche festzulegen. Gehe dort hin, wo deine Skills gefragt sind und auch honoriert werden. Die meisten Entwickler, die ich kenne – mich eingeschlossen – sind ganz wo anders gelandet als der Ort, an dem sie angefangen haben.

Voraussetzungen um Software-Entwickler zu werden

In der Software-Entwicklung muss man sich immer wieder auf neue Situationen einstellen, Muster in diffusen Problemstellungen erkennen und abstrakte Bausteine in der richtigen Reihenfolge aufeinanderstapeln. Kurzum bezeichnet man das als analytisches Denken, was aber im Wesentlichen einer Beischreibung vom „sich in Spielen zurechtfinden“ entspricht.

Dasselbe erlebst du bei Lego mit haptischen Bausteinen oder Minecraft mit digitalen Bausteinen oder Pokémon in der digitalen wie analogen Welt. Spielst du gern und mit unterschiedlichen Spielen, dann wird dir das als Software-Entwickler weiterhelfen.

Die viel gefürchtete Hürde Mathematik existiert im eigentlichen Job nicht. Grundrechenarten, kleines Einmaleins, Bruchrechnung und Zahlenmengen sind relevant. Entscheidest du dich für ein Hochschulstudium im Bereich Informatik, kommen im deutschsprachigen Raum dann in der Regel noch Integralrechnung, Differenzialrechnung und analytische Geometrie dazu. Das dient eigentlich nur dazu beim Studium die Spreu vom Weizen zu trennen, denn in der echten Arbeitswelt gibt es nur sehr wenige Entwickler, die hohe Mathematik einsetzen.

Du solltest aber auf jeden Fall gut in Englisch sein, denn das ist die internationale Sprache, wenn es um Software Entwicklung geht. 

Jegliche Dokumentation für Software ist auf Englisch, die besten Antworten bei Problemen sind in der Regel auf Englisch und internationale Teams, die sich ausschließlich auf Englisch unterhalten, sind heute vollkommen normal. Die beste Methode, das zu lernen, ist Englisch voll in dein Leben zu integrieren: spiel deine Videogames auf Englisch, schaue Serien und Filme auf Englisch und such dir englisch-sprachige Streamer, Youtuber und Podcaster.

Der aus meiner Sicht wichtigste Softskill für den Job ist Frustrationstoleranz. In der Software-Entwicklung wirst du besonders in den ersten Jahren viele Fehler machen und immer wieder auf Dinge stoßen, die nicht funktionieren. Damit muss man umgehen und daran muss man wachsen können.

Fast genauso wichtig ist der Wille, dauerhaft zu lernen. 

Der Markt verändert sich ständig. Alte Software wird durch neue ersetzt und regelmäßig kommen neue Programmiersprachen auf den Markt. Stillstand oder der Unwille, neues zu lernen, wird dich mittelfristig in schlecht bezahlte und langweilige Entwicklerjobs bringen.

Ein wenig erwarteter Softskill bei Software-Entwicklern ist die Fähigkeit, verbal und schriftlich zu kommunizieren. Dabei geht es weniger um große Vorträge oder Verkaufsgespräche. Vielmehr musst du in der Lage sein, zu begründen, warum du etwas tust wie du es tust. Dazu gehört auch mit anderen Entwicklern und Nicht-Entwicklern über Probleme an deinem oder ihrem Programmcode konstruktiv reden. Vorzugsweise auf Deutsch und Englisch.

Was verdienen Software-Entwickler?

Der Verdienst bzw. das Gehalt richtet sich immer nach deiner Erfahrung im Job und der Region, in der du arbeitest. In großen deutschen Städten wie Hamburg, München oder Stuttgart ist der Lohn am höchsten; die Lebenshaltungskosten sind dort auch sehr hoch.

In den vorher genannten Ballungsräumen bist du mit 5-8 Jahren Erfahrung bei 50’000 - 75’000 Euro Bruttojahreslohn. Nach Abzug aller Sozialabgaben und Steuern bleibt immer noch genug Geld im Monat, um gut davon zu leben. Das Einstiegsgehalt ist natürlich niedriger.

Wenn du deinen Lohn wirklich noch oben optimieren willst, solltest du aber sowohl ins benachbarte Ausland, z. B. Schweiz, oder ins fernere Ausland, z. B. USA, schauen.

In der Schweiz erhalten Entwickler mit 5-8 Jahren Erfahrung in den Großräumen Zürich, Zug und Genf zwischen 75’000 – 150’000 CHF (64’000 – 135’000 Euro) Bruttojahreslohn. Die Lebenshaltungskosten und auch die Sozialabgaben in der Schweiz unterscheiden sich von denen in Deutschland, aber es lässt sich trotzdem sehr gut von einem Software-Entwickler Lohn leben.

In den USA erhalten Entwickler mit 5-8 Jahren Erfahrung in den Großräumen Silicon Valley, Seattle und Austin 130’000 - 350’000 USD (110’000 - 305’000 Euro) Bruttojahreslohn. Die Lebenshaltungskosten sind in diesen Regionen entsprechend hoch und ein Sozialsystem, wie du es aus Deutschland kennst existiert dort nicht. Trotzdem ist der Lohn gut zum Leben und Arbeitserfahrung in den USA immer Gold wert.

Arbeitsbedingungen als Software-Entwickler

Gemessen an anderen Berufen sind die Arbeitsbedingungen von Software-Entwicklern überdurchschnittlich gut. In den vielen Firmen erhalten Entwickler freie Getränke, können sich Hardware für den Arbeitsplatz aussuchen und dürfen zu einem gewissen Teil im Homeoffice arbeiten. Gleitzeit Arbeitsmodelle sind die Regel, sodass man in den wenigsten Firmen zu einer fixen Zeit im Morgengrauen im Büro sein muss. Legt man dann noch die recht gute Bezahlung oben drauf, ergibt das ein ansehnliches Gesamtpaket.

Natürlich gibt es bei den Arbeitsbedingungen auch Schattenseiten. Gleitzeit kann durch Termindruck bei Projekten sehr leicht zu dauerhaft verordneten Überstunden führen. Unseriöse Planung von Projekten und ein niemals endender Meeting Marathon können in die Überforderung und schlussendlich in den Burn-out treiben. Wichtig ist, sich abzugrenzen und die persönliche Entwicklung der Skills im Auge zu behalten. Das bedeutet in Fällen, wo Überstunden die Regel oder Burn-out in Sichtweite ist, den Job zu kündigen und weiterzuziehen.

Vorbereitung für den Software-Entwickler Job

Eine der besten Vorbereitungen für den Job als Software-Entwickler ist, sich mit dem Raspberry Pi auseinanderzusetzen. Das ist ein winziger Einplatinencomputer, den man für kleines Geld kaufen kann. Mit ihm hangelst du dich durch das Anschließen, den Setup und das Betreiben von Python Programmen. Es gibt eine riesige Anzahl von kleinen Projekten, die man mit einem Raspberry Pi betreiben kann. Das fängt beim Minicomputer zum Programmieren an, geht über Retro Videogame Spielkonsole bis hin zur Steuerung von externen Komponenten (z. B. Kamera, Bewegungsmelder, Displays, LED). Mit einem Raspberry Pi Projekt baust du dir ein sehr gutes Fundament auf.

Das Programmieren, Aufsetzen und Betreiben einer eigenen Webseite ist ebenfalls eine gute Übungsaufgabe. Die Webseite sollte mindestens deinen Lebenslauf und Links zu sozialen Netzwerken enthalten. Dabei ist es wichtig, dass du wirklich bei null anfängst und die Webseite komplett selbst baust. Anschließend stellst du sie online und lernst dabei noch die unterschiedlichen Technologien, die daran beteiligt sind, kennen.

Einer der anspruchsvollsten Wege zur Vorbereitung auf den Job ist die Mitarbeit an einem Open Source Projekt. Dabei musst du nicht nur deine Coding Skills erweitern, sondern hast auch die soziale Komponente des Entwickelns im Team. Das bedeutet auch, dass du mit Feedback jeglicher Art umgehen lernen musst und die Motivation dauerhaft oben halten musst.

Egal wofür du dich effektiv entscheidest, die investierte Zeit zahlt sich am Ende aus. Du wirst vieles nebenher lernen, was dir im Job oder einer formalen Ausbildung (Lehre oder Studium) einen Vorsprung verschafft. Das Ergebnis deines privaten Projekts – sei es Webseite, Raspberry Pi Setup oder Open Source Beteiligung – kannst du in jedem Bewerbungsgespräch als Bonus nutzen. Das ist echte Hands-on Erfahrung, die immer gern gesehen wird.

Programmieren lernen

Wenn du richtig programmieren lernen willst, gibt es drei Alternativen, die wenig oder gar nichts kosten und leicht für dich zu erreichen sind.

Bei Youtube gibt es eine unüberschaubare Anzahl von Video Tutorials auf Deutsch und Englisch zu jeder bekannten – und unbekannten – Programmiersprache. Nicht jedes Video ist didaktisch gut aufbereitet, aber du kannst leicht eine Alternative finden, wenn dir das aktuelle Video nicht weiterhilft. Du musst dir selbst Ziele setzen, weil nicht alle Videos kein klar definiertes Programmierziel haben.

Wenn du einen strukturieren Einstieg in die Programmierung suchst, dann hält Udemy eine riesige Anzahl an unterschiedlichen Tutorials zu einer Vielzahl an Programmiersprachen bereit. Die Kurse sind in der Regel so strukturiert, dass klar ist, was du am Ende gelernt haben wirst und beinhalten Übungsbeispiele. Beim Abschluss eines Kurses erhältst du ein Zertifikat, das du bei Bedarf in Bewerbungsgesprächen noch kurz erwähnen kannst.

Und wer es ganz oldschool mag, der kann sich ein Buch über eine beliebige Programmiersprache kaufen und es in Ruhe durcharbeiten. Kostenlos gibt es das in der Bibliothek deiner Wahl. 

Für Einstieger bieten sich zwei Programmiersprachen an: Javascript oder Python. Wenn du vorhast zu studieren oder dich für Data Science interessierst, ist Python die Sprache deiner Wahl. Hast du vor eine Ausbildung zu absolvieren, dann ist Javascript der bessere Einstieg. Beide Sprachen sind leicht zu erlernen. 

Einstieg in den Job

Willst du dann beruflich in die Softwareentwicklung einsteigen, gibt es drei unterschiedliche Wege.

Zum einen ist da der Autodidaktische Weg, bei dem du dir die notwendigen Programmier-Skills selbst oder in Form eines Bootcamps beibringst. Du kannst dich dann auf Einsteiger Jobs als Programmierer bewerben und wirst sicher auch den einen oder anderen Arbeitgeber finden, der dich einstellt. Der klare Nachteil ist, dass du damit Angelernter und ohne Abschluss bist. Damit sind deine Aufstiegschancen eingeschränkt; dasselbe gilt für den Lohn. Zudem fehlen dir wichtige Grundlagen der Softwareentwicklung, die über die rein Programmierung hinaus. Ich würde diesen Weg nicht empfehlen.

Der zweite Weg ist, über die duale Ausbildung zu gehen und eine Ausbildung zu einem Fachinformatiker mit zum Beispiel Schwerpunkt Anwendungsentwicklung zu machen. Dort lernst du das Handwerkszeug für die eigentliche Programmierung kennen und hast auch Einblick in den Ablauf – zwischenmenschlich, organisatorisch, infrastrukturell – von Softwareentwicklung. Am Ende der Ausbildung hast du zusätzlich noch ein Papier in der Hand, das dir all diese Skill bestätigt. Der Abschluss ist langfristig wichtig und garantiert, dass du leicht aufsteigen kannst. Da du mit einer Ausbildung vollwertiger Softwareentwickler bist, der das echte Leben schon gesehen hat, wirst du recht schnell in einem Unternehmen deiner Wahl einen Job finden können.

Die dritte Route ist der akademische Weg über ein Informatikstudium in Deutschland oder im angelsächsischen Raum. Das Studium kann im Präsenz- oder Fernstudium absolviert werden. Für die meisten international arbeitenden Unternehmen ist der Bachelor die Eintrittskarte in das Unternehmen. Bei Master Studiengängen musst du viel Zeit mitbringen, kannst du aber bei den ganz Großen der Branche mit sehr gutem Einstiegsgehalt bewerben. Das richtige Programmieren wird in der Regel nur rudimentär gelehrt und muss in Eigenverantwortung neben dem Studium vertieft werden. Du wirst generell als „Studierter“ weniger programmieren und vielfach mehr beraten oder bei der Auswahl neuer Software unterstützen.

Aufstiegsmöglichkeiten als Software-Entwickler

Als Autodidakt bist du in deinen Aufstiegschancen limitiert. Da dir ein Papier – Ausbildung oder Studium – fehlt, bleibt dir nur die Option, dich im Unternehmen durch Nischenwissen oder historischen Wissen über Abläufe unentbehrlich zu machen. 

Mit einer Ausbildung kannst du dich wunderbar vom Junior Developer, über Developer zum Senior Developer hocharbeiten. Du kannst damit auch sehr gut Teamleiter (Tech Lead) werden, aber alle weiteren Wege (z.B Engineering Manager oder CTO) sind häufig durch ein fehlendes Studium verwehrt. Es ist nicht unüblich nach einigen Jahren im Job noch ein Fernstudium zum Bachelor oder Master zu machen, um weiter aufsteigen zu können.

Mit Bachelor und Master stehen nach oben fast alle Türen bis zum CIO offen. Je weiter du dich aber vom Hands-on Developer zu administrativen Rollen wie Software Architect, Projektleiter oder CIO entwickelst, desto weniger wirst du programmieren. Das ist dann die Frage, vor der du irgendwann stehen wirst und für dich beantworten musst.

Schlusswort

Software-Entwickler ist ein Job mit sehr vielen Karrieremöglichkeiten. Mit Studium oder Ausbildung ist die eigentliche Programmierung nur in den ersten Jahren deine Hauptaufgabe. Du kannst, wenn du willst, sehr zügig in beratende Rollen übergehen, die dir langfristig sehr gut bezahlte Spezialisierungen in vielfältigen Bereichen bieten. 

Bilder: Lars Händler