Dies wird variieren, aber so sehe ich es an einem Ort, der groß genug ist, um zwischen Programmierertypen zu unterscheiden.
Ich würde sagen, Einsteiger und Junior sind dasselbe. Sie sind gerade aus der Schule 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 den gesamten Entwicklungszyklus nicht durchlaufen und treffen daher oftmals sehr naive Entscheidungen, wenn ihnen die Möglichkeit gegeben wird, zu wählen. Leider ist es vielen von ihnen eigentlich egal, welche Anforderung sie haben, sie wollen die Dinge auf ihre Weise bauen. Sie haben oft schlechte Debugging-Fähigkeiten.
Auf mittlerer Ebene fallen viele Programmierer. Sie haben mehr als zwei Jahre Erfahrung und in der Regel weniger als zehn, obwohl einige ihre gesamte Karriere auf diesem Niveau verbringen können. Sie können mit weniger Aufsicht Arbeitscode erstellen, solange sie relativ routinemäßigen Aufgaben zugewiesen sind. Sie sind im Allgemeinen nicht mit anspruchsvollem Design oder hochkomplizierten Aufgaben betraut, für die ein umfassendes Wissen erforderlich ist. Sie können jedoch mit dem Entwurf eines Teils der Anwendung beauftragt werden, insbesondere, da sie sich in der Zone befinden, um Senior-Entwickler zu werden. Sie beherrschen Wartungsaufgaben oder Aufgaben, bei denen sie sich nur auf ihren Teil des Puzzles konzentrieren können, von denen jedoch normalerweise nicht erwartet wird, dass sie die Anwendung als Ganzes betrachten, es sei denn, sie arbeiten mit erfahrenen Entwicklern zusammen oder sind auf eine Beförderung zum Senior vorbereitet. Sie können in der Regel eine gute Arbeit bei der Fehlerbehebung und dem Debuggen leisten, müssen sich aber wirklich durchschlagen, 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 den gesamten Entwicklungszyklus wahrscheinlich mindestens einmal durchlaufen, die Ergebnisse von Designproblemen gesehen und lernen, wie sie in Zukunft vermieden werden können. In der Regel neigen sie dazu, eine Anforderung eher zum Nennwert anzunehmen und sie nicht zurückzudrängen, wenn offensichtliche Probleme oder Lücken bestehen. Sie haben genug gelernt, um zu wissen, was sie nicht wissen, und beginnen, dieses Wissen zu erlangen. Sie sind die Arbeitspferde der Programmierwelt,
Niemand, der ein höheres Niveau hat, muss diese Frage stellen. Sie sind Experten in ihren gewählten Technologie-Stacks. Sie bekommen die schwierigen Aufgaben (die niemand zu lösen weiß) und bekommen oft Designverantwortung. Sie arbeiten oft unabhängig voneinander, weil sie nachweislich die Waren geliefert haben. Von ihnen wird erwartet, dass sie Junior- und Intermediate-Entwickler betreuen. Oft sind sie erstaunliche Problemlöser. Sie sind bereits 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 einige 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 beherrschen mindestens eine und oft mehrere Sprachen auf Expertenebene. Sie haben gesehen, wie viele "heiße neue Technologien" auf den Arbeitsplatz kamen und verschwanden, und sind daher tendenziell etwas konservativer, wenn es darum geht, das nächste aufregende neue Entwicklungstool auf den Plan zu setzen (aber nicht völlig resistent gegen Veränderungen - das wären die ältere Fortgeschrittene Entwickler, die niemals den Sprung zu Senior schaffen). Sie verstehen, dass es ihre Aufgabe ist, funktionierende Software zu liefern, die das tut, was die Benutzer wollen, und nicht mit unterhaltsamen Tools zu spielen. Sie sind oft wählerischer, wo sie arbeiten werden, weil sie es können und weil sie aus erster Hand gesehen haben, wie schlecht manche Orte sein können. Sie suchen nach Orten mit den interessantesten Aufgaben. Oft wissen sie mehr über die Produkte ihres Unternehmens als alle anderen, auch wenn sie erst seit wenigen Monaten dort sind. Sie wissen, dass sie mehr als nur Programmierkenntnisse benötigen, und sie können auch Kenntnisse über den von ihnen unterstützten Geschäftsbereich 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 die Probleme damit kennen und dies auch den Laien erklären können.