27. Jänner 2023 von Marc Mezger und Dimitrije Kovacic
StackOverflow Developer Survey 2022 – Teil 1
Was ist Stack Overflow?
Ein Stack Overflow ist ein Fehler, der auftritt, wenn ein Programm versucht, mehr Speicher zu verwenden, als auf dem Stack verfügbar ist. Bei einem Stack handelt es sich um einen Speicherbereich, der für die Aufnahme von Daten vorgesehen ist. Über einen Stack Overflow werden die Speicherstellen im Stack überschrieben, wodurch es möglich ist, eine Schadsoftware zu installieren. Bei der Stack-Overflow-Website handelt es sich aber um eine Website, die Fragen und Antworten zu vielen verschiedenen Programmiersprachen und Technologien bietet. Sie wurde 2008 als offenere Alternative zu anderen Frage-und-Antwort-Websites für Programmiererinnen und Programmierer eingerichtet. Userinnen und User können Reputationspunkte und Abzeichen für das Einbringen wertvoller Inhalte auf der Website verdienen. Im März 2021 hatte Stack Overflow über 14 Millionen registrierte Nutzerinnen und Nutzer sowie über 21 Millionen Fragen und 31 Millionen Antworten erhalten. Die Website hat sich zu einer wichtigen Ressource für Programmiererinnen und Programmierer entwickelt, wobei die acht meistdiskutierten Themen JavaScript, Java, C#, PHP, Android, Python, jQuery und HTML sind. Im Jahr 2021 wurde Stack Overflow für 1,8 Milliarden Dollar an Prosus, ein in den Niederlanden ansässiges Internet-Konglomerat, verkauft. Allgemein kann man behaupten, dass jede/r Softwareentwicklerin und -entwickler mindestens einmal pro Tag auf Stack Overflow nach etwas sucht.
Was ist die Developer Survey?
Die Stack Overflow Developer Survey ist eine jährliche Umfrage unter Entwicklerinnen und Entwicklern, die von Stack Overflow durchgeführt wird. Ziel der Umfrage ist es, Einblicke in verschiedene Aspekte der Entwickler-Community zu gewinnen, darunter Demografie, technologische Präferenzen, Arbeitsgewohnheiten und Karrierewünsche. Die Umfrage wird seit 2011 jährlich durchgeführt und hat stets eine große Anzahl von Antworten von Developern aus aller Welt erhalten. Die Ergebnisse der Umfrage werden auf der Stack-Overflow-Website veröffentlicht und bieten wertvolle Einblicke in den Zustand der Entwicklergemeinschaft.
Die Unterscheidung zwischen Profi und Anfängerin oder Anfänger in der Programmierung kann etwas subjektiv sein, da sie von der Erfahrung, den Fähigkeiten und den Kenntnissen einer Person abhängen kann. Im Allgemeinen ist eine professionelle Programmiererin oder ein professioneller Programmierer jedoch jemand, der über ein hohes Maß an Fachwissen in einer oder mehreren Programmiersprachen verfügt und in der Lage ist, dieses Fachwissen zum Entwerfen, Entwickeln und Warten von Softwaresystemen oder -anwendungen einzusetzen. Eine professionelle Programmiererin oder ein professioneller Programmierer verfügt möglicherweise auch über fortgeschrittene Kenntnisse in Informatikkonzepten und -prinzipien sowie über Erfahrung in der Arbeit an komplexen Softwareprojekten. Eine Anfängerin oder ein Anfänger hingegen ist jemand, der gerade erst mit dem Programmieren begonnen hat und möglicherweise nur über begrenzte Erfahrungen und Kenntnisse in Programmiersprachen und -konzepten verfügt. Eine Anfängerin oder ein Anfänger kann das Programmieren durch Selbststudium oder durch ein formales Ausbildungsprogramm erlernen und an kleineren, weniger komplexen Projekten arbeiten, während sie oder er ihre/seine Fähigkeiten entwickelt.
Es ist wichtig zu beachten, dass die Unterscheidung zwischen Profi und Anfängerin/ Anfänger im Bereich der Programmierung nicht zwangsläufig feststeht und dass sich der Grad der Kompetenz einer Person im Laufe der Zeit ändern kann, wenn sie mehr Erfahrung und Wissen in diesem Bereich gesammelt hat. Zwischen diesen beiden Profilen wird sehr oft in dieser Studie unterschieden.
Developer Profile
In diesem Abschnitt geht es um die Entwicklerinnen und Entwickler: Welche Ausbildung haben sie? Wie lange arbeiten sie schon? Wie lernen sie gerne?
Ausbildungsniveau von Entwicklerinnen und Entwicklern
Diese Graphik zeigt die Ausbildung von professionellen Developern:
In dieser Studie wurde festgestellt, dass 48 Prozent der Developer einen Bachelor-Abschluss haben, 24 Prozent einen Master-Abschluss, drei Prozent einen PhD und dass 13 Prozent noch studieren.
Es kann mehrere Gründe geben, warum ein größerer Prozentsatz der Entwicklerinnen und Entwickler in einer Studie einen Bachelor-Abschluss hat als einen Master-Abschluss oder einen Doktortitel. Einige mögliche Gründe könnten sein:
- Ein Bachelor-Abschluss kann für viele Developer-Jobs ausreichend sein: In einigen Fällen genügt ein Bachelor-Abschluss in Informatik oder einem verwandten Fachgebiet, um sich für eine Stelle als Entwicklerin oder Entwickler zu qualifizieren. Viele Arbeitgeber legen mehr Wert auf praktische Fähigkeiten und Erfahrung als auf fortgeschrittene Abschlüsse.
- Ein Master-Abschluss oder ein Doktortitel ist für den beruflichen Aufstieg nicht unbedingt erforderlich: Manche Developer entscheiden sich lieber dafür, ihre Karriere praktisch voranzutreiben und neue Fähigkeiten im Job zu erwerben, anstatt einen höheren Abschluss anzustreben.
- Die Kosten und der Zeitaufwand für einen höheren Abschluss können abschreckend wirken: Die Erlangung eines Master-Abschlusses oder einer Promotion kann eine erhebliche finanzielle und zeitliche Belastung darstellen. Manche Entwicklerinnen und Entwickler entscheiden, dass sich die Investition für ihre Karriereziele nicht lohnt.
Sehr interessant wird es, wenn man nun die Antworten der Coding-Anfängerinnen und -Anfänger anschaut:
Es ist deutlich erkennbar, dass mit einem Drittel die meisten Developer bereits vor dem Studium anfangen haben, Programmieren zu lernen.
Es gibt eine Reihe von Gründen, warum es für Kinder von Vorteil sein kann, schon in jungen Jahren mit dem Programmieren zu beginnen:
- Erstens können Kinder durch das Erlernen des Programmierens wichtige Fähigkeiten zur Problemlösung und zum kritischen Denken sowie eine solide Grundlage im Bereich von Logik und Algorithmen entwickeln. Diese Fähigkeiten sind nicht nur im Bereich der Informatik nützlich, sondern auch in einer Vielzahl anderer Berufe.
- Zweitens kann das Erlernen des Programmierens den Kindern helfen, sich auf ein Hochschulstudium und künftige Karrieren in der Technologiebranche vorzubereiten. Die Nachfrage nach qualifizierten Programmiererinnen, Programmierern sowie Developern steigt rapide an, und wer eine solide Grundlage im Programmieren hat, ist für diese Art von Jobs gut gerüstet.
- Schließlich kann das Programmierenlernen auch eine lustige und lohnende Erfahrung für Kinder sein, denn es ermöglicht ihnen, Projekte zu entwickeln und zu erschaffen, die einen echten Einfluss auf die Welt haben können. Dies kann eine motivierende und ansprechende Art des Lernens für Kinder sein und ein lebenslanges Interesse an Technologie und Informatik wecken.
Anzahl der Jahre der Erfahrung in der Softwareentwicklung
Es gibt einige Gründe, warum viele Programmiererinnen und Programmierer heute weniger als zehn Jahre Erfahrung haben:
Der Bereich der Computerprogrammierung entwickelt sich ständig weiter und es werden ständig neue Technologien und Programmiersprachen entwickelt. Das bedeutet, dass jemand, der schon lange programmiert, möglicherweise nicht die Gelegenheit hatte, mit den neuesten Technologien zu arbeiten, und nicht so up to date ist wie jemand mit weniger Erfahrung, der sich auf das Erlernen dieser neueren Technologien konzentriert hat.
Die Nachfrage nach qualifizierten Programmiererinnen und Programmierern hat in den letzten Jahren erheblich zugenommen, was zu einem Zustrom von Personen geführt hat, die in dieses Gebiet einsteigen. Dadurch gibt es einen größeren Pool von Programmiererinnen und Programmierern, die weniger Erfahrung haben, da sie neu in diesem Bereich sind.
Die Einstiegshürde für Programmiererinnen und Programmierer ist in den letzten Jahren ebenfalls gesunken, da Online-Ressourcen und Bildungsprogramme zur Verfügung stehen, die das Erlernen des Programmierens erleichtern. Insgesamt ist es interessant, dass viele Developer heute weniger als zehn Jahre Erfahrung haben, denn dies zeigt das rasche Tempo der Veränderungen in diesem Bereich und den steigenden Bedarf an qualifizierten Entwicklerinnen und Entwicklern. Es unterstreicht auch die Tatsache, dass es für Menschen möglich ist, in das Feld einzusteigen und erfolgreich in dieser Branche zu arbeiten, selbst wenn sie relativ neu in diesem Bereich sind.
Jahre der professionellen Softwareentwicklung
Wir sehen hier das gleiche Phänomen wie bei der Grafik zur Erfahrung im nichtprofessionellen Kontext. Durch hohen Bedarf ergeben sich auch höhere Gehälter. In Kombination mit leichter zugänglichen Ausbildungen gab es einen Zufluss an Developern in den letzten Jahren. Daher sind die meisten Entwicklerinnen und Entwickler erst relativ kurze Zeit (weniger als zehn Jahre) in der Softwareentwicklung tätig. Natürlich ist es aber auch so, dass Personen ab einem gewissen Alter eher andere Rollen übernehmen und nicht nur Developer bleiben. Dies hängt damit zusammen, dass sich die Softwarelandschaft sehr schnell weiterentwickelt und erfahrene Entwicklerinnen und Entwickler eher in höhere Tätigkeiten berufen werden, wie zum Beispiel als Product Owner oder Projektleiterin bzw. Projektleiter.
Wie lernen Entwicklerinnen und Entwickler zu coden?
Diese Ergebnisse deuten darauf hin, dass eine signifikante Mehrheit der Developer es vorzieht, das Programmieren mit Hilfe von Online-Ressourcen wie Videos und Blogs zu erlernen anstatt mit traditionellen Methoden wie Büchern oder physischen Medien. Das könnte auf die Bequemlichkeit und Zugänglichkeit des Online-Lernens zurückzuführen sein sowie auf die Möglichkeit, in seinem eigenen Tempo lernen zu können. Darüber hinaus scheint es, dass eine beträchtliche Anzahl von Entwicklerinnen und Entwicklern das Programmieren auch durch eine formale Ausbildung an Schulen oder Universitäten sowie durch Training am Arbeitsplatz erlernt.
Es ist wichtig zu beachten, dass verschiedene Lernmethoden für verschiedene Menschen am besten funktionieren. Es ist wahrscheinlich, dass die effektivste Art des Lernens für eine Entwicklerin oder einen Entwickler von seinem individuellen Lernstil und seinen Vorlieben abhängt. Manche Menschen bevorzugen strukturierte Lernumgebungen wie Schulen oder Online-Kurse, während andere die Freiheit und Flexibilität des selbstgesteuerten Lernens mit Online-Ressourcen vorziehen. Letztendlich ist es für Entwicklerinnen und Entwickler am wichtigsten, eine Lernmethode zu finden, die für sie am besten funktioniert und ihnen hilft, ihre Ziele zu erreichen.
Nicht überraschend ist es also, dass für ältere Developer Bücher wichtiger sind als Online-Ressourcen.
Die wichtigsten Online-Plattformen
Udemy ist die mit Abstand am weitesten verbreitete Online-Plattform für Learning. Udemy ist eine Online-Lernplattform, die eine breite Palette von Kursen zu verschiedenen Themen anbietet, darunter Wirtschaft, Technologie, persönliche Entwicklung und vieles mehr. Die Plattform ermöglicht es Lehrkräften, ihre eigenen Kurse zu erstellen und zu veröffentlichen, die dann Studentinnen und Studenten auf der ganzen Welt zur Verfügung gestellt werden. Die Plattform bietet Kurse in zahlreichen Sprachen an, und viele Kurse werden nach Abschluss mit einer Zertifizierung versehen. Im November 2022 hatte die Plattform mehr als 57 Millionen Studierende, 213.000 Kurse, 74.000 Lehrkräfte, die Kurse in über 75 Sprachen anboten, und 773 Millionen Kurseinschreibungen (Quelle: Udemy About us). Interessant ist, dass Coursera auf Platz zwei ist.
Während bei Udemy die Bescheinigungen eher weniger aussagekräftig sind, besitzt Coursera richtige Bachelor- und Masterabschlussprogramme, bei denen es möglich ist, einen Abschluss bei einer Partneruniversität zu erreichen. Dazu gehören dann auch Prüfungen und Projektarbeiten.
Die bestbezahlten Technologien
Das Ranking der am besten bezahlten Programmiersprachen ist interessant, weil mit Clojure und Erlang eher Sprachen sehr gut bezahlt werden, die nicht häufig in Verwendung sind. Dementsprechend gibt es nur wenige Entwicklerinnen und Entwickler, die dafür qualifiziert sind, was natürlich die Gehälter in die Höhe treibt. Interessant ist auch, dass Python Java überholt hat und dass Java und JavaScript sehr weit unten in der Graphik zu sehen sind. Ein Grund dafür könnte sein, dass sehr viele Neuanfängerinnen und -anfänger diese Sprachen lernen und es dadurch ein großes Angebot an Entwicklerinnen und Entwicklern gibt, was sich wiederum negativ auf den Preis auswirkt. Das steht im Gegensatz zum starken Mangel an Java-Entwicklerinnen und -Entwicklern allgemein.
Was ist an Clojure besonders?
Clojure ist eine funktionale Programmiersprache, die sich besonders gut für bestimmte Arten von Problemen eignet – beispielsweise für die Datenverarbeitung und die parallele Programmierung.
Zusätzlich ist Clojure eine Nischensprache und im Vergleich zu weit verbreiteten Sprachen wie Java oder Python gibt es weniger Entwicklerinnen und Entwickler, die diese Sprache beherrschen. Infolgedessen sind Developer, die Clojure beherrschen, hochqualifiziert und sehr gefragt, was ihre Gehälter steigen lässt. Interessant ist auch, dass das Gehalt von COBOL-Entwicklerinnen und -Entwicklern nur geringfügig über dem von Python-Entwicklerinnen und -Entwicklern liegt.
COBOL ist eine Programmiersprache, die vor allem im Bankensektor wichtig ist. Mittlerweile wird versucht, COBOL-Programme zu übersetzen, weil es kaum noch COBOL-Developer gibt, da die meisten von ihnen bereits in Rente sind. Deshalb hätten wir vermutet, dass sie deutlich besser bezahlt werden.
Zusammenfassend kann man sagen, dass seltene Sprachen anscheinend sehr gut bezahlt werden, aber nur dann, wenn sie einen sinnvollen Einsatzzweck haben und in ihrem Feld mehr oder weniger einzigartig sind. Ein weiteres Beispiel hierfür ist Delphi. Hierbei handelt es sich zwar auch um eine seltene Sprache, aber einfach deshalb, weil sie schon sehr alt ist und durch andere Sprachen ersetzt wurde, werden Developer nicht so gut bezahlt. Clojure hingegen ist sehr selten und sehr modern und wird in einem spezialisierten Kontext eingesetzt.
Das war der erste Teil unserer zweiteiligen Serie über die Stack Overflow Developer Survey 2022. Der zweite Teil wird in Kürze erscheinen.