it-swarm-eu.dev

Was ist der Unterschied zwischen Entry Level / Jr / Sr-Entwicklern?

Was ist der Unterschied, abgesehen von Titel und Bezahlung?

  • Welche unterschiedlichen Verantwortlichkeiten haben sie?.

  • Wie kompetent/erfahren sind sie?

  • Was ist die grundlegende Maßnahme, um festzustellen, wo ein Entwickler in diese Grundstruktur passt?

198
JD Isaacks

Dies wird variieren, aber so sehe ich es an einem Ort, der groß genug ist, um zwischen verschiedenen Programmierertypen zu unterscheiden.

Ich würde sagen, Einstiegsklasse und Junior sind dasselbe. Sie sind gerade nicht zur Schule gegangen und haben weniger als zwei Jahre Berufserfahrung. Ihnen werden die am wenigsten komplexen Aufgaben zugewiesen und sie sollten ziemlich genau überwacht werden. Im Allgemeinen wissen sie ungefähr 10% von dem, was sie zu wissen glauben. Normalerweise haben sie nicht den gesamten Entwicklungszyklus durchlaufen und treffen daher oft sehr naive Entscheidungen, wenn sie die Möglichkeit haben, sich zu entscheiden. Leider ist es vielen von ihnen eigentlich egal, was die Anforderung ist, sie wollen die Dinge auf ihre Weise bauen. Sie haben oft schlechte Debugging-Fähigkeiten.

In der Mittelstufe fallen viele Programmierer. Sie haben mehr als zwei Jahre Erfahrung und in der Regel weniger als zehn Jahre, obwohl einige ihre gesamte Karriere auf diesem Niveau bleiben können. Sie können mit weniger Aufsicht Arbeitscode erstellen, solange sie relativ routinemäßigen Aufgaben zugewiesen sind. Sie sind im Allgemeinen nicht mit High-Level-Design oder hochkomplizierten Aufgaben beauftragt, die ein tiefes Wissen erfordern. Sie können jedoch mit dem Entwurf eines Teils der Anwendung beauftragt werden, insbesondere da sie sich in der Zone befinden, ein leitender Entwickler zu werden. Sie sind gut in Wartungsaufgaben oder Aufgaben, bei denen sie sich nur auf ihr Puzzleteil konzentrieren können. Es wird jedoch normalerweise nicht erwartet, dass sie die Anwendung als Ganzes betrachten, es sei denn, sie arbeiten mit erfahrenen Entwicklern zusammen oder werden für die Beförderung zum Senior vorbereitet. Sie können in der Regel gute Arbeit bei der Fehlerbehebung und beim Debuggen leisten, müssen sich jedoch wirklich durchsetzen, um die schwierigen Probleme zu lösen. Sie haben noch nicht genug Erfahrung, um die Muster in den Problemen zu erkennen, die sie auf den wahrscheinlichen Ort hinweisen, an dem sie auftreten. Aber sie erwerben diese Fähigkeiten und müssen selten um Hilfe beim Debuggen bitten. Sie haben wahrscheinlich den gesamten Entwicklungszyklus mindestens einmal durchlaufen und die Ergebnisse von Designproblemen gesehen und lernen, wie sie in Zukunft vermieden werden können. Normalerweise neigen sie eher dazu, eine Anforderung zum Nennwert anzunehmen und sie nicht zurückzuschieben, wenn sie offensichtliche Probleme oder Lücken aufweist. Sie haben genug gelernt, um zu wissen, was sie nicht wissen, und beginnen, dieses Wissen zu erlangen. Sie sind die Arbeitspferde der Programmierwelt, sie liefern wahrscheinlich 80-90% des Routinecodes und vielleicht 10% der sehr schwierigen Dinge.

Niemand, der älter ist, muss diese Frage stellen. Sie sind Experten für ihre ausgewählten Technologiepakete. Sie erhalten die schwierigen Aufgaben (die niemand zu lösen weiß) und erhalten häufig Designverantwortung. Sie arbeiten oft unabhängig voneinander, weil sie nachweislich die Waren geliefert haben. Es wird erwartet, dass sie Junior- und Intermediate-Entwickler betreuen. Oft sind sie erstaunliche Problemlöser. Sie sind schon einmal auf dieselben Probleme gestoßen und haben eine sehr gute Vorstellung davon, wo sie zuerst suchen müssen. Senioren betreuen oft auch außerhalb des Arbeitsplatzes. Sie haben in der Regel mindestens zehn Jahre Erfahrung und waren fast immer auf mindestens einem Todesmarsch und wissen genau, warum manche Dinge zu vermeiden sind. Sie wissen, wie man ein funktionierendes Produkt liefert und eine Frist einhält. Sie wissen, welche Ecken geschnitten werden können und welche Ecken niemals geschnitten werden sollten. Sie kennen mindestens eine und oft mehrere Sprachen auf Expertenebene. Sie haben gesehen, dass viele "heiße neue Technologien" am Arbeitsplatz aufgetaucht sind und verschwunden sind. Daher sind sie eher konservativ, wenn es darum geht, für das nächste aufregende neue Entwicklungswerkzeug auf den Zug zu springen (aber nicht völlig widerstandsfähig gegen Veränderungen - das wären die ältere Intermediate-Entwickler, die niemals den Sprung zu Senior schaffen). Sie verstehen, dass es ihre Aufgabe ist, funktionierende Software bereitzustellen, die das tut, was die Benutzer wollen, und nicht mit lustigen Tools zu spielen. Sie sind oft wählerischer, wo sie arbeiten werden, weil sie sein können und weil sie aus erster Hand gesehen haben, wie schlecht einige Orte sein können. Sie suchen die Orte, die die interessantesten Aufgaben zu erledigen haben. Oft wissen sie mehr über die Produkte ihres Unternehmens als jeder andere, auch wenn sie erst seit wenigen Monaten dort sind. Sie wissen, dass sie mehr als Programmierkenntnisse benötigen, und sind gut darin, Kenntnisse über den von ihnen unterstützten Geschäftsbereich zu erlangen. Sie sind sich häufig der Probleme bewusst, die Junioren nie berücksichtigen, und Fortgeschrittene denken häufig nicht an regulatorische und rechtliche Probleme in dem von ihnen unterstützten Geschäftsbereich. Sie können und werden eine Anforderung zurückschieben, weil sie wissen, was die Probleme damit sein werden, und können dies den Laien erklären.

341
HLGEM

Einstiegsniveau - muss ihnen explizite Anweisungen geben, alles überprüfen, was sie tun, wenig oder keine Designverantwortung, keine Analyseverantwortung

Junior - weniger explizite Anweisungen, weniger Überprüfung, geringfügige Verantwortung für Design und Analyse; hilft den Einsteigern, den Compiler zu finden und das Repository zu verwenden

Von Senior - Hauptverantwortung für Design und Analyse wird erwartet, dass er Versehen selbst korrigiert, wenig/keine Überprüfung, wenig/keine Anweisungen; hilft den Junioren, Analyse- und Designfähigkeiten zu erlernen/zu verbessern

43
Steven A. Lowe

Wirklich, ich denke, es kommt nur darauf an, wie lange Sie schon im Job sind. Wenn Sie 10 Jahre Erfahrung haben, sind Sie ein leitender Entwickler, wenn Sie ein Absolvent sind, dann sind Sie wahrscheinlich ein Einsteiger. Ich habe viele 'ältere' Entwickler gesehen, die kaum programmieren konnten und nicht wirklich wussten, was sie taten, und viele junge Entwickler, die fantastisch waren.

16
Craig

Ich denke, die Handwerker-Slots der alten Schule für Lehrlinge, Gesellen und Meister passen gut in diese Slots für Einsteiger, Junioren (oder einfach ohne Präfix) und Senioren.

Jemandem Einstiegsmodell werden relativ einfache Aufgaben übertragen, die keine tiefgreifenden Konsequenzen haben, und seine Arbeit wird von einem Junior oder Senior überprüft. Mit der Zeit bekommen sie mehr Verantwortung und erhalten komplexere Aufgaben, indem sie die Seile lernen.

Bei einem Junior (oder nur beim Entfernen von "Einstieg"/"Junior" aus dem Titel/der Beschreibung) haben Sie Ihre Ausbildung abgeschlossen und die wichtigsten Entwicklungsbereiche für Ihr Unternehmen abgedeckt, indem Sie in jeden wichtigen Bereich eingetaucht sind, so dass Sie es sind mit jedem von ihnen vertraut. Sie helfen jetzt dabei, dem Lehrlingsäquivalent Anleitung und Input zu geben, aber Ihre eigene Arbeit wird immer noch vom Master/Senior überprüft, wenn auch vielleicht nicht so oft wie als Junior.

Mit der Zeit und der Durchführung erfolgreicher Projekte werden Sie schließlich Senior. Auf einer höheren Ebene haben Sie alles beherrscht, was in Ihrer Region behandelt wird, und den gesamten Entwicklungsprozess sowie alle beteiligten Tools und Technologien abgedeckt. Sie können wichtige technische Entscheidungen treffen und dem Management Einblicke in den Softwareentwicklungsprozess gewähren.

Angesichts dieser Richtlinien sollten Sie in der Lage sein, eine Person oder eine Position zu betrachten und zu bestimmen, in welchem ​​der drei Behälter sie landen.

8
Todd Williamson

Es wird auf die Erwartungen des Unternehmens an den Programmierer hinauslaufen.

Wenn ich die Vermietungsfirma bin und einen Einstiegsprogrammierer anheuere, weiß ich, dass diese Person so gut wie nichts weiß und wir gehen davon aus, dass sie alles lernen muss. Wenn ich eine hochrangige Person anheuere, ist diese theoretisch aus technischer Sicht autark.

6
Walter

Dies hängt streng vom Unternehmen ab. Aber die Worte sind ziemlich offensichtlich: Einsteiger ist jemand, der gerade erst ins Feld kommt, Junior ist jemand, der jenseits des Einstiegs ist und sich mit einigen Sprachtechnologien auskennt. Schließlich sind diejenigen älter, die mehr für das Projekt verantwortlich sind und auf einer höheren Ebene sitzen. Sie können normalerweise so viel delegieren, wie sie codieren.

4
Chris

Wie die meisten gesagt haben, variiert es von Unternehmen zu Unternehmen und von Job zu Job.

Ich habe zum Beispiel einmal in einer Firma gearbeitet, die jeden, der mehr als 5 Jahre dort gearbeitet hat, als "Senior Software Engineer" betrachtete. Im anderen Extrem hatte ein anderer Ort, an dem ich arbeitete, sehr strenge Definitionen (und zugehörige Gehaltsstufen).

Einige Orte betrachten "Einstiegsniveau" und "Junior" möglicherweise als dasselbe.

Es kann variieren, basierend auf jahrelanger Erfahrung, allgemeinem Wissen, spezifischem Wissen (d. H. Kenntnis der Merkmale einer bestimmten Sprache), Management- und/oder Führungserfahrung, allen Kombinationen davon und sicherlich vielem mehr.

4
Wonko the Sane

Ich werde hier mit der wirklich einfachen Antwort gehen: Senior-Entwickler (im Allgemeinen) sind Leute, die den Wald vor lauter Bäumen sehen können. Sie denken über das unmittelbare Problem hinaus und haben ein Verständnis dafür, welche architektonischen Veränderungen durch die Behebung des Problems, mit dem sie konfrontiert sind, eintreten könnten oder sollten.

Die meisten Software-Unternehmen, die ich gesehen habe, haben die Einsteiger, die das tägliche Codieren übernehmen, während die leitenden Entwickler überwachen, was die neuen Leute tun, und die wirklich hässlichen, heiklen Probleme angehen.

Offensichtlich ist dies nur meine Meinung und keine feste Regel. YMMV.

3
MattC

Einfach ausgedrückt und aufgrund persönlicher Beobachtungen auf Stellenausschreibungsseiten und nur in Bezug auf die Erfahrungsstufen.

Eintrag = Ihr neuer wahrscheinlich Ihr erster Job.

Junior = Ihr guter, aber nicht der beste, Sie haben auch normalerweise weniger als 5 Jahre und mehr als 2 Jahre Erfahrung.

Senior = Sie sollen die Besten sein und mehr als 5 Jahre Erfahrung haben.

2
lord-fu