Skip to content

Beiträge

Die Kunst beherrschen: Wesentliche Fähigkeiten eines Senior-Softwareentwicklers

31. Oktober 2012 • 4 min Lesezeit

Die Kunst beherrschen: Wesentliche Fähigkeiten eines Senior-Softwareentwicklers

Wenn ich „Senior Developer” höre, denke ich an jemanden, der Programmierung beherrscht. Ich denke an eine Person, die ein System entwerfen, codieren und testen kann. Sie können über Systemarchitektur oder Komponentendesign sprechen. Sie verstehen und verwenden Designmuster. Diese Person kann Leistungsengpässe voraussehen, weiß aber, dass sie nicht zu früh optimieren sollte. Diese Person wird asynchrone Programmierung, Queuing, Caching, Logging, Sicherheit und Persistenz nutzen, wenn es angebracht ist. Auf Anfrage können sie eine detaillierte Erklärung ihrer Wahl und die Vor- und Nachteile geben. In den meisten Fällen haben sie objektorientierte Programmierung und Design beherrscht. Dies ist keine absolute Regel – andere Sprachen wie JavaScript, F# und Scheme sind mächtig und sind nicht von Natur aus objektorientiert. Sie sind versiert im Risikomanagement und vor allem können sie das Genannte ihren Kollegen vermitteln.

Was ist Meisterschaft? Es gibt eine allgemein akzeptierte Idee, dass es 10.000 Stunden Wiederholung braucht, damit der menschliche Körper und Geist eine Fähigkeit erfassen und verinnerlichen können. Dies wird ausführlich in Malcolm Gladwells Buch Outliers behandelt.

Einige Beispiele aus Malcolm Gladwells Outliers sind:

Mozart – sein erstes Konzert im jungen Alter von 21 Jahren. Was zunächst jung wirkt, aber er schreibt Musik seit er 11 Jahre alt ist.

The Beatles – wurden zunächst abgelehnt. Man sagte ihnen, sie hätten nicht das Zeug dazu und sollten einen anderen Beruf in Betracht ziehen. Sie verbrachten 3 Jahre in Deutschland und spielten etwa 1200 Mal an verschiedenen Orten, jedes Mal 5 bis 8 Stunden lang. Sie kehrten als die Beatles zurück, die wir heute kennen und lieben.

Und schließlich Bill Gates – mit 20 Jahren verließ er Harvard, um Microsoft zu gründen. Für manche mag das töricht wirken, aber bedenken Sie, dass er mit 20 Jahren bereits fast die Hälfte seines jungen Lebens mit Programmierung verbracht hatte. 1975 gab es vielleicht nur 50 Menschen auf der Welt mit seiner Erfahrung. Seine Erfahrung gab ihm die Weitsicht, die Zukunft in Microsoft zu sehen.

Peter Norvig diskutiert die 10.000-Stunden-Regel auch in seinem Essay „Teach Yourself Programming in Ten Years”.

In dem Buch Mastery von George Leonard wird ausführlich erläutert, wie man eine Fähigkeit beherrscht. Man muss die Fähigkeit immer wieder üben. Je mehr Wiederholung, desto mehr werden Sie sich der Unterschiede in jeder Wiederholung bewusst. Nur mit dieser Einsicht können Sie besser werden.

Die Titel der Softwareindustrie (Junior, Mid-Level und Senior) sind irreführend und von Organisation zu Organisation inkonsistent. Ich habe mit Unternehmen zusammengearbeitet, die einen Senior Developer als jemanden definierten, der 5 Jahre oder mehr Erfahrung hatte. Es gibt keinen Hinweis auf die Qualität der Erfahrung, nur dass sie 5 Jahre vor einem Computer saßen. Bei der Zusammenarbeit mit diesen Leuten hatten viele von ihnen die objektorientierte Programmierung noch nicht erfasst, wurden aber trotzdem als Senior Developers betrachtet.

Es muss einen besseren, objektiveren Weg geben, um die Fähigkeiten eines Softwareentwicklers zu messen. John Haugeland hat eine Fähigkeitsmatrix für Computerprogrammierer entwickelt. Sie bietet eine gemeinsame, objektive Möglichkeit, das Fähigkeitsniveau eines Programmierers zu messen, das sonst größtenteils auf Bauchgefühl basiert.

Wenn ich Softwareentwickler betrachte, sehe ich 4 Ebenen von Fähigkeiten: Luminary, Senior, Mid-Level und Junior.

Luminary (10+ Jahre) ist jemand, der eine Fähigkeit beherrscht hat und sich daran gemacht hat, sein jeweiliges Fachgebiet zu verbessern. Einige Beispiele sind: Ted Neward, Uncle Bob Martin, Donald Knuth, Oren Eini, Peter Norvig, Linus Torvalds. Dies kann je nach Ihrem Fähigkeitssatz variieren.

Senior (7 bis 10+ Jahre, Level 3) ist jemand, der die letzten 10.000 Stunden in einem bestimmten Genre programmiert hat. Es gibt ein starkes Verständnis von Designmustern. Sie nutzen asynchrone Programmierung, Queuing, Caching, Logging, Sicherheit und Persistenz, wenn es angebracht ist.

Es ist sehr möglich, dass ein Senior nie Luminary erreicht. Luminaries sind oft als Sprecher und Schriftsteller tätig. Sie versuchen aktiv, ihr Fachgebiet zu beeinflussen.

Mid-Level (4 bis 6 Jahre, Level 2) ist jemand, der die tägliche Programmierung versteht. Sie arbeiten unabhängig und erstellen robuste Lösungen. Sie haben jedoch noch keine Erfahrung mit der Erstellung oder Wartung großer oder komplexer Systeme. Im Allgemeinen sind Mid-Level-Entwickler großartig in der Komponentenentwicklung.

Junior (1 bis 3 Jahre, Level 1) ist jemand, der die Grundlagen der Programmierung versteht. Sie haben entweder einen Abschluss in Softwareentwicklung oder Informatik oder sind Autodidakten. Ihr Code wird ständig überprüft. Es werden Hinweise zu Algorithmen, Wartbarkeit und Struktur gegeben.

Autor: Chuck Conway ist ein KI-Ingenieur mit fast 30 Jahren Erfahrung in der Softwareentwicklung. Er entwickelt praktische KI-Systeme – Content-Pipelines, Infrastruktur-Agenten und Tools, die echte Probleme lösen – und teilt seine Erkenntnisse unterwegs. Verbinden Sie sich mit ihm in den sozialen Medien: X (@chuckconway) oder besuchen Sie ihn auf YouTube und auf SubStack.

↑ Nach oben

Das könnte dir auch gefallen