Welches Beispiel zeigt den Unterschied zwischen Junior- und Senior-Entwicklern am besten?


Antwort 1:

Es gibt eine Reihe von Dingen, die einen Junior-Entwickler von einem Senior-Entwickler unterscheiden, einige Beispiele:

  • Ein Junior-Entwickler hat möglicherweise ein festes Verständnis für eine einzelne Sprache und hat kleine Projekte in ein oder zwei anderen geschrieben, bei denen ein Senior-Entwickler mit geringer Verzögerung in mehrere Sprachen springen kann, auch solche, die er zuvor noch nicht gesehen hat. Ein Junior-Entwickler wird dies getan haben Lesen Sie Bücher über Dinge wie Softwarearchitektur, Entwurfsmuster usw., während ein leitender Entwickler diese in der Praxis implementiert hat. Ein junger Entwickler könnte mit der Versionskontrolle herumfummeln („Wie setze ich meinen Zweig zurück? Was mache ich mit diesem Konflikt? Wie?) Quetsche ich meine Commits? ”usw.), ein erfahrener Entwickler kennt sein Versionskontrollsystem durch und durch. Ein erfahrener Entwickler wird (nach bestem Wissen und Gewissen) die ihm gegebenen Spezifikationen entwerfen, während ein erfahrener Entwickler Fragen stellt die Spezifikationen, um die Ziele vollständig zu verstehen und eine Implementierung zu erstellen, die den Anforderungen am besten entspricht, während innerhalb einer Reihe von Einschränkungen (Umfang, Zeit, Ressourcen usw.) gearbeitet wird. Ein Junior-Entwickler wird für seine Komponente entwerfen, während ein Senior-Entwickler ihre Komponente entwerfen wird so dass es mit einem funktioniert Alle anderen Komponenten (und das zugrunde liegende System und die Abhängigkeiten).

TL; DR: Erfahrung ist wichtig, ob es darum geht, die richtige Technologie zu verwenden, Komponenten zu entwerfen, Integrationen zu schreiben, Bereitstellungen zu automatisieren usw., und Sie werden diese Unterschiede bei Junior- und Senior-Entwicklern in Hülle und Fülle feststellen.


Antwort 2:

Danke für die A 2 A.

Stellen Sie sich das vor, meine erste Position als Teamleiter war so informell wie sie war. Ich hatte einen Entwickler in meinem Team, der viel älter war als ich, einen ungefähr so ​​wie ich und einen Junior direkt von der Uni.

Ich bin fest entschlossen, dies richtig zu machen. Ich verbringe einen Tag damit, mir die Anforderungen anzuschauen, ein Design zu entwickeln, ein paar Tech-Stacks auf mein Design anzuwenden, bis ich mich schließlich für eines entschieden habe und endlich ein paar Tickets für den ersten von zwei Sprints aufschreibe ( sehr kleines Projekt).

Am nächsten Tag haben wir ein sehr kurzes Meeting, da das Team so klein ist, dass wir Tickets zuweisen mussten, anstatt sie einfach abzuholen und vom Sprint abzuholen.

Ich habe dem Junior eine ziemlich einfache Aufgabe zugewiesen, von der ich auch gehofft hatte, dass sie ihnen ein wenig über die praktischen Anwendungsfälle eines Singletons beibringen würde.

Wir haben Stand-Ups und der Junior erklärt zuversichtlich, wo er sich befindet und es dauert länger als ich dachte, aber ich habe das naiv darauf zurückgeführt, dass er neu ist.

Der erste Aufstand der Senioren bestand darin, dass er sagte, er habe einige Anwendungsbeispiele für seine Arbeit gesammelt, und der zweite bestand darin, dass er einige Arbeitseinheiten beendet hatte, die ich für etwas langsam hielt, aber selbst ziemlich unerfahren war. Ich weiß nicht, dass er Tests schrieb, weil er eigentlich ziemlich schnell war (ich wusste nicht, dass er gerne TDD einsetzte, aber nachdem ich gesehen hatte, was er tat, schwöre ich jetzt darauf).

An diesem Punkt ist es wahrscheinlich wichtig zu sagen, dass dies eine sichere Umgebung für mich war, um zu sehen, was es heißt, ein Teamleiter zu sein, und ich nehme an, dass es um technischen Leiter ging, und ich hatte nichts damit zu tun, der Leiter des leitenden Entwicklers zu sein, aber dies sollte die Frage rechtzeitig beantworten .

Wie auch immer, wir sind ein paar Tage vor dem Ende des Sprints und ich wollte viel mehr lernen als jede andere Person in diesem Raum. Alle hatten Pull-Anfragen, also war ich ziemlich selbstgefällig und dachte, ich hätte einen tollen Job gemacht.

Also habe ich ein Treffen für alle organisiert, um ihre Arbeit zu demonstrieren, und wir kommen zum Senior-Entwickler. genau das, wonach gefragt wurde und mehr, aber je mehr mir immer mitgeteilt wurde (desto mehr war das Ergebnis meiner Unerfahrenheit und der Senior hatte meinen Rücken und half mir, diese Löcher auf konstruktive Weise zu verschließen).

später würde ich bemerken, dass die Implementierung aus der Seniorenarbeit sehr ausdrucksstark und leicht zu verstehen war, aber auch unglaublich gut getestet wurde. Selbst wenn ich mir diese Tests ansah, lernte ich, wie seine Arbeit funktionieren sollte. Ich bin bereit zuzugeben, dass sie mir auch a beigebracht hat viel über das Testen und von da an beschloss ich zu erfahren, wie er das tat.

Dann kam der Junior, auch er gab mir viel mehr als ich erwartet hatte, die Demo lief schlecht, das Team wies schnell darauf hin, dass er das Design ignoriert hatte und dass es kein Singleton war, weil er den Konstrukteur öffentlich gemacht hatte Fudge, was er für ein besseres Design hielt .. eek.

Das Treffen endete und ich setzte mich mit dem Junior zusammen und lehnte deren PR ab. Am nächsten Tag wurden ein bisschen Paarprogrammierung verwendet. Wir haben die Sprint-Frist eingehalten und ich bin sicher, dass er an diesem Tag viel über die Bedeutung der Kommunikation gelernt hat, genau wie ich .

Ich hoffe, dieses Beispiel zeigt den Unterschied zwischen einem Senior und einem Junior und was noch wichtiger ist, wie man sie nicht gleich behandeln kann, wenn man ein Teamleiter ist. Der einzige, der hier wirklich schuld war, war ich. Ich hätte das im Auge behalten sollen Junior, der Unterstützung leistete und Fragen beantwortete, als ich bemerkte, dass sie auf eine Reise durch das Kaninchenloch gingen. Ja, er hätte mein Design nicht ignorieren sollen, aber ich habe an diesem Tag eine wichtige Lektion gelernt. Junioren sind sowohl in Bezug auf den Code als auch in Bezug auf Arbeit und Lebenserfahrung jünger.