it-swarm-eu.dev

Wann sollten Sie sich als Senior Developer bezeichnen?

Mögliches Duplikat:
Was ist der Unterschied zwischen Entry Level/Jr/Sr-Entwicklern?

Ich bin gespannt, was Senior Developer bedeutet, denn anscheinend bedeutet die Definition nicht, was ich mir vorgestellt habe. Ich sehe diese Teenager im Alter von 22 bis 23 Jahren immer wieder, die sich Senior X-Entwickler oder Senior Y-Entwickler nennen. Für mich muss ein Senior ungefähr 10 Jahre Erfahrung in der Programmierung haben, um sich selbst als "Senior" zu bezeichnen. Ich habe viele dieser Teenager hier gesehen (daher die Frage). Liege ich falsch? Warum?

298
Kev

Sie können sich Senior nennen, wenn:

  • Sie können den gesamten Lebenszyklus der Softwareentwicklung von Ende zu Ende abwickeln
  • Sie führen andere oder andere suchen bei Ihnen nach Anleitung.
  • Sie können Ihre Projekte selbst verwalten

Softwareentwicklung ist im Gegensatz zu anderen Bereichen eine merkwürdige Kreatur.

Manchmal kann ein frischer Punk aus dem College Kreise um Veteranen ziehen, die über 20 Jahre "Erfahrung" verfügen. Programmierung ist eine bizarre Welt, in der Code ist König.

Einige erreichen das oben genannte in 2 Jahren oder weniger, andere dauern 10 Jahre.

433
Darknight

Wenn ich "Senior Developer" höre, denke ich an jemanden, der das Programmieren beherrscht. Ich denke an eine Person, die ein System entwerfen, codieren und testen kann. Sie können mit der Systemarchitektur oder dem Komponentendesign sprechen. Sie verstehen und verwenden Designmuster. Diese Person kann die Leistungsengpässe vorhersehen, weiß jedoch, dass sie nicht voroptimieren muss. Diese Person nutzt gegebenenfalls asynchrone Programmierung, Warteschlangen, Caching, Protokollierung, Sicherheit und Persistenz. Auf Nachfrage können sie ihre Wahl sowie die Vor- und Nachteile ausführlich erläutern. In den meisten Fällen beherrschen sie die objektorientierte Programmierung und das objektorientierte Design. Dies sind keine absolut anderen Sprachen wie Javascript, F #, Scheme. Sie sind leistungsstark und nicht objektorientiert. Sie beherrschen das Risikomanagement und können vor allem ihren Kollegen das zuvor Genannte mitteilen.

Was ist Meisterschaft? Es gibt eine allgemein akzeptierte Idee, dass es 10.000 Stunden Wiederholung braucht, um eine Fertigkeit zu beherrschen, damit der menschliche Körper und Geist eine Fertigkeit erfassen und verinnerlichen können. Dies wird ausführlich in Malcolm GladWells Buch Ausreißer geschrieben. Als der ursprüngliche Autor über das Beherrschen eines Feldes sprach, bezog er sich darauf, dass es 10.000 Stunden dauern würde, die Spitze eines hart umkämpften Feldes zu erreichen.

Einige Beispiele in Malcolm GladWells Ausreißern sind:

Mozart sein erstes Konzert im Alter von 21 Jahren. Das scheint zunächst jung zu sein, aber er schreibt seit seinem elften Lebensjahr Musik.

Die Beatles wurden zunächst gemieden. Man sagte ihnen, sie hätten keinen Senf und sollten eine andere Arbeitsrichtung in Betracht ziehen. Sie verbringen 3 Jahre in Deutschland und spielen ungefähr 1200 Mal an verschiedenen Orten mit einer Länge von jeweils 5 bis 8 Stunden. Sie tauchten wieder als die Beatles auf, die wir heute kennen und lieben.

Und schließlich verließ Bill Gates im Alter von 20 Jahren Harvard, um Microsoft zu gründen. Für manche mag dies töricht erscheinen, aber mit 20 Jahren hatte er fast die Hälfte seines jungen Lebens mit Programmieren verbracht. 1975 hatten nur vielleicht 50 Menschen auf der Welt die Erfahrung, die er gemacht hat. Seine Erfahrung gab ihm die Voraussicht, die Zukunft in Microsoft zu sehen.

Peter Norvig erörtert auch die 10.000-Stunden-Regel in seinem Aufsatz „ Teach Yourself Programming in Ten Years “.

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

Die Titel der Softwareindustrie (Junior, Mid-Level und Senioren) sind irreführend und von Organisation zu Organisation inkonsistent. Ich habe mit Unternehmen zusammengearbeitet, die einen Senior Developer als jemanden mit 5 Jahren oder mehr Erfahrung definiert haben. Die Qualität der Erfahrung wird nicht erwähnt, nur dass sie 5 Jahre lang vor einem Computer saßen. Bei der Arbeit mit diesen Leuten hatten viele von ihnen die objektorientierte Programmierung noch nicht verstanden - dennoch galten sie als Senior Developers.

Es muss einen objektiveren Weg geben, um die Fähigkeiten eines Softwareentwicklers zu messen. John Haugeland hat eine Kompetenzmatrix für Computerprogrammierer veröffentlicht. Es ist eine objektive Methode, um ein das Können des Programmierers zu messen, das ansonsten dem Bauchgefühl überlassen bleibt.

Wenn ich mir Software-Ingenieure anschaue, sehe ich 4 Ebenen von Fähigkeiten: Luminary, Senior, Mid-Level und Junior.

Luminary (10+ Jahre) ist einer, der eine Fähigkeit beherrscht und sich daran gemacht hat, seine jeweilige Disziplin zu verbessern. Einige Beispiele sind: Ted Neward , Onkel Bob Martin , Donald Knuth, Oren Eini , Peter Norvig , Linus Torvalds . Die Leuchten ändern sich je nach Ihren Fähigkeiten.

Senior (7 bis 10+ Jahre, Stufe 3) hat die letzten 10.000 Stunden in einem bestimmten Genre programmiert. Es gibt ein starkes Verständnis für Entwurfsmuster. Sie nutzen bei Bedarf asynchrone Programmierung, Warteschlangen, Caching, Protokollierung, Sicherheit und Persistenz.

Es ist sehr wahrscheinlich, dass ein Senior Luminary niemals erreicht. Leuchten sprechen und schreiben oft. Sie versuchen aktiv, ihre Disziplin zu beeinflussen.

Mittelstufe (4 bis 6 Jahre, Stufe 2) versteht die tägliche Programmierung. Sie arbeiten unabhängig und schaffen robuste Lösungen. Sie müssen jedoch noch große oder komplexe Systeme erstellen oder warten. Im Allgemeinen eignen sich Mid-Level-Entwickler hervorragend für die Entwicklung auf Komponentenebene.

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

243
Chuck Conway

"Wann sollten Sie sich als Senior-Entwickler bezeichnen?" - Als ich anfing, Junior-Entwickler zu betreuen.

111
duros

Ich habe den gleichen Trend bemerkt. Eine der Fragen neulich war ein leitender Entwickler mit 2-3 Jahren Erfahrung als Architekt.

Sie können eine Eichel einen Baum nennen, aber das ändert nichts daran, was es ist.

Die einzig logische Schlussfolgerung ist, dass "Senior" etwas anderes bedeutet:

  • relativer Rang, wie in "Senior zu dem Mann, der gerade das College beendet hat"
  • arme spanische Rechtschreiber, d. h. sie wollten Señor setzen
  • südländische Schreibweise, wie in "Senior Butt-Crack, zieh ihnen die Hosen hoch"

Heutzutage es ist nur eine Berufsbezeichnung und kann oder kann nichts über relative Branchenerfahrung sagen.

23
Steven A. Lowe

sie verpassen den Punkt.

Senior bedeutet nichts. Junior bedeutet nichts. Titel bedeuten nichts. Mein Titel - Associate Business Systems Director. Meine Aufgaben - Verwaltung aller IT-Bereiche von der internen Softwareentwicklung über die Infrastruktur, die Sicherheit bis hin zu Kundenwebsites. Meine Erfahrung in der Softwareentwicklung - Autodidakt. Meine Netzwerkerfahrung - Autodidakt. Meine allgemeinen Fähigkeiten im IT-Bereich - schlimmer als Ihre.

Meine Fähigkeit zu verwalten und zu leiten - umstritten, aber mein Charakter und meine Persönlichkeit haben mir den Job verschafft und mich erfolgreich gemacht.

Titel bedeuten nichts Fähigkeit und Anstrengung bedeutet alles. Ich bin nicht der Beste - und das zu glauben wäre arrogant.

Vergessen Sie Ihre Probleme mit Titeln und beweisen Sie Ihren Wert!

21
Steve

Ich denke die beste Antwort wurde von Darknight gegeben .

Ich habe das Bedürfnis, auf Folgendes hinzuweisen.

2-3 Jahre Programmiererfahrung (arbeiten + persönlich zusammenarbeiten) reichen einfach nicht aus, um eine ausreichende Anzahl von Projekten zu sehen und sich mit einer ausreichenden Anzahl von Problemen zu befassen. Funktioniert einfach nicht. Sie brauchen Zeit, um die Dinge durch Ihren Kopf gehen zu lassen, über Ihre Erfahrungen nachzudenken und sich mental auf eine höhere Ebene des Denkens zu bewegen. Passiert nicht über Nacht.

Ich würde sagen, unter 5-7 Jahren Praxis (wieder zusammenarbeiten + persönlich zusammenarbeiten) ist ein Wunder nicht zu erwarten. Man kann viel Erfahrung mit bestimmten Sprachen und Frameworks sammeln, aber noch nicht auf eine neue Ebene des Denkens springen.

Die andere Sache ist die Gesamtreife eines Individuums. Meiner Meinung nach kommt es erst 30 Jahre alt. Zuvor arbeitet unser Gehirn möglicherweise mit einer höheren Taktrate, verarbeitet jedoch Junk, da es nicht genügend Daten im Speicher hat, um ein größeres Bild zu sehen. Unsere allgemeine Lebenserfahrung fügt der Art und Weise, wie wir denken und arbeiten, etwas Feines, aber Reales hinzu, also auch das Programmieren als eine andere Art von Arbeit.

Meine persönliche Akzeptanz eines Senioren: jemand mindestens 27 Jahre alt. mit mindestens 7 Jahren Praxis . Vorher wäre ich persönlich skeptisch (aber immer noch aufgeschlossen, es wird mir nur mehr Beweise bringen).

19
user8685

Kürzlich gab es einen guten Blog-Beitrag von Martin Fowler. Dinge, die ich weggenommen habe, sind:

  • Es hat nichts damit zu tun, wie lange Sie für jemanden gearbeitet haben. Sie arbeiten drei Jahre und werden leitender Entwickler. Was passiert nach sechs Jahren? Werden Sie Senior Senior Developer?

  • Ältere Entwickler sehen nicht auf Sie herab oder denken, dass sie besser sind als Sie. Das ist sehr wichtig. Sobald Sie Ihr Ego in die Quere kommen lassen, sind Sie in Schwierigkeiten.

  • Ältere Entwickler geben die Schuld nicht weiter. Sie antizipieren Probleme und gehen sie positiv an.

  • Die Leute wollen mit erfahrenen Entwicklern zusammenarbeiten. Das ist ein Schlüssel für mich. Ich möchte, dass die Leute mit mir arbeiten, und ich möchte, dass sie Spaß daran haben, mit mir zu arbeiten.

  • Ältere Entwickler sind nicht die klügsten Ingenieure. Sie arbeiten nicht an den komplexesten Problemen. Bei ihren Fähigkeiten geht es nicht nur um Programmierung. Ihre Kommunikationsfähigkeiten spielen eine ebenso wichtige Rolle.

  • Ältere Entwickler können gut einschätzen.

  • Ältere Entwickler kümmern sich immer darum, was sie tun. Sie verstehen, dass langweilige Aufgaben in der gleichen Qualität erledigt werden müssen wie alle anderen, möglicherweise interessanteren Aufgaben.

Nur zur Klarstellung

Die Fähigkeiten, die ich oben aufgeführt habe, sollten meines Erachtens ein guter leitender Softwareentwickler zusätzlich zu den grundlegenden Fähigkeiten und Praktiken des Software-Engineerings haben.

14
CodeART

Wenn Sie viele betreut haben und sich Jahre später am meisten dafür bedankt haben, nachdem Sie zunächst nicht mit Ihnen einverstanden waren, können Sie jedem Titel, den Sie befehlen, "Senior" hinzufügen.

Bis dahin ist "Blei" wahrscheinlich ein aussagekräftigerer Begriff.

Für mich bedeutet der Begriff „Senior“ einen Höhepunkt aus praktischer Erfahrung UND Weisheit im Umgang mit Menschen und ihren willkürlichen Erwartungen. Berücksichtigen Sie dieses Szenario:

16 Programmierer in einem Team, jeder mit genau 1 Jahr mehr Erfahrung als die anderen. Dies bedeutet, dass der 16. Programmierer über 16 Jahre Erfahrung verfügt. Acht der erfahrensten Mitglieder werden auf tragische Weise getötet, wenn ein Bus in ein Geschäft fährt. Würde der Typ mit der halben Erfahrung jetzt als leitender Entwickler angesehen werden? Ich würde nicht hoffen, ich würde hoffen, dass das Unternehmen die Lücken schnell durch Menschen mit gleichem oder höherem Kaliber ersetzt, als sie gerade verloren haben.

Ich hasse es, den Begriff ' Geselle ' in die Programmierung einzubeziehen, aber einiges davon trifft zu. Der Begriff „Senior“ würde ich niemandem mit weniger als 15 Jahren Erfahrung geben, da er weit über das technische Wissen hinausgeht.

13
Tim Post

Ich finde diesen Titel "Junior/Senior Developer" falsch und irreführend, weil es dafür keine echte Maßeinheit gibt. Wir sind alle Softwareentwickler mit weniger oder mehr praktischer Erfahrung. Versuchen Sie nicht, eine Hierarchie für Softwareentwickler zu erstellen. Es hat keinen Sinn und es kann dem Hauptfokus schaden: einem großartigen Softwareentwicklungsteam.

7

Wenn Sie auf Ihre vorherige Arbeit zurückblicken und feststellen, was für ein Mist es war. Und du verstehst, dass du besser geworden bist, aber es sind noch Meilen bis dahin, und dass Lernen für immer ist.

5
Bernard Dy

Manchmal schaue ich mir andere Berufe an und frage mich, warum sich die Softwareprogrammierung nicht selbst standardisiert. Diese Frage hätte keinen Sinn, da es einen akzeptierten Standard für das Erreichen bestimmter Niveaus geben würde. Dann komme ich zu der Erkenntnis: "Wer ist gestorben und hat sie zum König gemacht?"

Wir alle wissen, dass Erfahrung, Ausbildung, Zertifizierungen und Titel für alle anderen von grundlegender Bedeutung sind, um einen grundlegenden Einblick in die Fähigkeiten eines Programmierers zu erhalten. Sie wissen entweder, was Sie tun oder nicht. Sie können entweder Ihre eigene Art riechen oder Sie können nicht.

3
JeffO

"WHAAAT .... UNIT TEST !!!! Ich bin ein erfahrener Programmierer ... Ich muss meinen Code nicht mehr testen."

Hab das schon mal gehört ... Also lässt er die "Junioren" seine Fehler beheben und testen.

"Wir werden einen Architekten einstellen ... nein, nicht Mr. X, wir wollen jemanden, der viel älter ist, jemanden, der nicht mehr codiert."

später im Interview:

  • welche Programmiersprachen kennen Sie?

  • ahem ... Ich habe COBOL und FORTRAN verwendet, aber jetzt sind es hauptsächlich MS Word, Excel und PowerPoint.

  • Ausgezeichnet ... wann kannst du anfangen?

Wirklich älter ist nur eine Frage der Perspektive, ein Titel, wie Steven sagen würde. Ich wünschte jedoch, ich könnte sagen, dass es am Ende auf den Code ankommt, den Sie schreiben, aber leider haben Anzug und Krawatte in vielen Fällen einen größeren Einfluss, insbesondere wenn Sie nicht mehr an konkreten Errungenschaften (Code) gemessen werden, sondern wie Nun, Sie überzeugen Hierarchien von Ihrer Wesentlichkeit.

3
Newtopian

Wenn andere Sie als Senior Developer bezeichnen. Es gibt keine Definition. Seine Veränderungen von Unternehmen zu Unternehmen. In einem gut etablierten Unternehmen erhalten Erstsemester weniger Arbeit und ihre Lernkurve ist langsam. In der Startup-Firma kann ein Frischer viele Aufgaben übernehmen und viele Dinge in kürzerer Zeit lernen. Ich habe dies aus erster Hand erlebt. Leider können nur die anderen erfahrenen Personen die Tiefe Ihres Wissens anhand der Qualität Ihres Codes oder Ihrer Arbeit berechnen. Und ich bin sicher, dass jeder seinen Titel bekommt, wenn seine Zeit abgelaufen ist.
Und wenn Sie es nicht tun, ändern Sie die Firma. :-)

2
Manoj R

Es ist ein Titel wie viele andere Titel. Diese "Teenager" hier haben vielleicht sogar einen Doktortitel, das bedeutet nicht unbedingt etwas. Aber es wird ihnen eindeutig ein höheres Gehalt bringen. Gleiches gilt für den Senior Developer oder Senior Architect. Oder der Senior Project Manager usw.

In Anbetracht dieser Tatsache ist es besser, von Ihren Arbeitskollegen "Unser leitender Entwickler" genannt zu werden, als diesen Titel nach langjähriger Erfahrung Ihrer eigenen Karte hinzuzufügen - was ich getan habe, als ich die Gelegenheit dazu hatte. :-)

Davon abgesehen würde ich sagen, dass 10 Jahre ein Minimum sind (einschließlich College oder anderer Ausbildung).

2
Lukas Eder

Ich habe kürzlich eine Stellenanzeige gesehen, in der ich nach einem CS-Absolventen mit weniger als einem Jahr Erfahrung gesucht habe. Das scheint mir Wahnsinn zu sein, auch wenn es nur ein Titel ist. Zum einen schlägt es eine Verwässerung des Titels vor. Ich bin mir sicher, dass die beiden Unternehmen, die ich mit diesen Beiträgen gesehen habe, einen anderen "Super-Senior" -Titel haben, um die echten Senioren zu bezeichnen. Ich nehme an, es ist keine schlechte Einstellungsstrategie. Der Titel ist nicht alles, aber da alles andere zwischen zwei Jobs gleich ist, würde ich wahrscheinlich den mit dem Titel "Master Chief Developer" nehmen.

Der Punkt, an dem der „Master Chief Developer“ (oder was auch immer diese hohe Position ist, „Senior“ oder auf andere Weise) tatsächlich gerechtfertigt ist, ist jedoch schwierig zu bestimmen. Ich denke nicht, dass wir bei der Quantifizierung zu objektiv werden können. Als grobe Formel würde ich sagen, dass sie als Senior bezeichnet werden sollten, wenn sie normalerweise die besten im Raum sind und der Raum mindestens 8 professionelle Entwickler enthält. Das würde bedeuten, dass sich ein Senior mindestens im 87. Perzentil befindet. Obwohl ich sagen würde, dass diese Entwickler wahrscheinlich diejenigen mit der größten Erfahrung sein werden, würde ich definitiv nicht sagen, dass diese Erfahrung == "Senior" oder sogar nahe ist. Während ich skeptisch bin, dass die Anzahl der echten Senioren mit weniger als 7 oder 8 Jahren außerordentlich gering sein muss, ist es für jemanden mit weniger als dem nicht unmöglich, ein Meister zu sein.

Mit 22 falle ich sicherlich in die Kategorie „Es ist unwahrscheinlich, dass ich eine Meisterkategorie bin“. Obwohl ich in der Nähe einiger dieser „10 (oder 30) Jahre mit 1 Jahr Erfahrung“ -Typen bin und ehrlich versucht bin, mich für besser zu halten, versuche ich mich daran zu erinnern, dass diese Leute, auch wenn sie keine Anstrengungen unternommen haben Jahrzehnte bis zum Lernen haben wahrscheinlich noch mehr Wissen als ich über eine Vielzahl von Themen durch reine Osmose gewonnen. Auf keinen Fall könnte ich so viel wie sie über den gesamten Projektlebenszyklus wissen. Ich arbeite mit einer Person, deren Projekt älter ist als ich! Es wäre ziemlich anmaßend von mir zu glauben, dass ich mehr über die Aufrechterhaltung eines Projekts dieses Umfangs wusste als er.

Die andere Sache, die Sie beachten sollten, ist, wenn Sie sich mit 22 Jahren als Senior bezeichnen, wie werden Sie mit 32 Jahren sein? Es ist ein schlechter Dienst für Ihre Zukunft, anzunehmen, dass Sie bereits an der Spitze stehen. Viele Leute halten sich an die 10.000-Stunden-Regel, um festzustellen, wann jemand ein Experte ist. In Malcom Gladwells Buch, in dem die Idee vorgeschlagen wird, ist es ziemlich klar, dass Experten nicht einfach die Besten sind, sondern eine bestimmte Rolle spielen. Anfänger sind in keiner Weise die schlechtesten, aber es ist eine Beschreibung der Methode noch mehr als die Fähigkeit. Anfänger können die verrückten Dinge schnell lernen, haben aber oft Probleme, einige der häufigsten Dinge so schnell zu erledigen wie jemand, der ein Experte ist. Experten können die Routinetätigkeiten mit äußerster Präzision und Geschwindigkeit ausführen und wissen, nach welchen Dingen sie suchen müssen, um Probleme anzuzeigen, haben jedoch häufig Probleme, auf Änderungen zu reagieren oder Dinge zu lernen, die außerhalb ihrer Komfortzone liegen. In diesem Sinne möchte ich noch nicht einmal Experte sein. Ich möchte so viele neue Informationen wie möglich aufnehmen, bevor ich mich in einer stabilen Domäne niederlasse.

2

Es könnte etwas mit Geld zu tun haben.

Einige Unternehmen verfolgen einen festgelegten Gehaltsplan. Sie können Sie aufgrund einiger vorgegebener Regeln nicht in die Mitte der 'Entwickler'-Leiter stellen. Aber sie können Sie ganz unten auf der 'Senior Developer'-Leiter platzieren.

Persönlich finde ich es seltsam, wenn eine Person direkt nach dem College einen Senior-Titel erhält, aber auf der anderen Seite - wen interessiert das? Ich bin seit ungefähr zehn Jahren ein "Entwickler", und obwohl ich einen "Senior" -Titel bekomme, wenn ich jetzt den Arbeitsplatz wechsle, bedeutet das nichts. Ich werde immer noch ein Neuling in der neuen Domäne sein - zumindest für eine Weile ...

2
Vegar

Das erste Mal, wenn Sie einen Job erhalten, der auf mindestens einer Interview-Sitzung basiert, die kein "klassisches technisches Interview" ist (d. H. Über Architektur, Konzepte, Design, Sicht auf das Unternehmen, Erfahrung usw. sprechen).

Meine (begrenzte) Erfahrung ist, dass Nachwuchsentwickler normalerweise nur aufgrund der Leistung in der Standardbatterie von Interviewfragen eingestellt werden und Senioren aufgrund einer Vielzahl anderer Interaktionen.

1
Uri

10 Jahre ?? Sie machen wohl Witze. Ok, wie definieren Sie 10 Jahre? Nehmen wir an, jemand hat im Alter von 15 Jahren mit dem Programmieren begonnen, wurde aber mit 25 Jahren professionell?

Die Branche funktioniert nicht so. Ich denke, verschiedene Unternehmen lassen sich jederzeit zwischen 5 und 8 Jahren als Senior Dev X oder Y bezeichnen. Ein hohes Dienstalter in der Organisation hängt nicht nur mit den Fähigkeiten zusammen, sondern auch mit der Initiative, die eine Person ergreift, und der Art der Verantwortlichkeiten, die sie zu teilen bereit ist. Meistens werden Leute mit angemessenen Fähigkeiten und starker Motivation Senior-Profis.

BTW 22 Jahre ist nicht jugendlich ;-)

1
Geek