Cela variera, mais c'est ainsi que je vois les choses dans un endroit suffisamment grand pour pouvoir distinguer les types de programmeurs.
Je dirais que le niveau d'entrée et Junior sont la même chose. Ils viennent de sortir de l'école et ont moins de deux ans d'expérience professionnelle. Ils se voient attribuer les tâches les moins complexes et doivent être surveillés assez étroitement. En général, ils savent environ 10% de ce qu'ils pensent savoir. Habituellement, ils ne sont pas passés par tout le cycle de développement et font souvent des choix très naïfs s’ils en ont la possibilité. Malheureusement, beaucoup d’entre eux ne se soucient pas vraiment de ce qu’il leur faut, ils veulent construire les choses à leur manière. Ils ont souvent de faibles compétences en débogage.
Niveau intermédiaire est l'endroit où tombent de nombreux programmeurs. Ils ont plus de deux ans d'expérience et généralement moins de dix ans, bien que certains puissent rester à ce niveau toute leur carrière. Ils peuvent produire du code de travail avec moins de supervision tant qu'ils sont affectés à des tâches relativement routinières. Ils ne sont généralement pas chargés de tâches de conception de haut niveau ni de tâches très complexes nécessitant un niveau de connaissance approfondi. Ils peuvent toutefois être chargés de la conception d’une partie de l’application, d’autant plus qu’ils sont sur le point de devenir développeur senior. Ils sont bons pour les tâches de maintenance ou pour lesquelles ils peuvent se concentrer uniquement sur leur pièce du puzzle, mais ils ne sont généralement pas censés considérer l'application dans son ensemble, sauf si ils travaillent avec des développeurs seniors ou s'ils sont préparés à une promotion. Ils peuvent généralement faire un travail décent de dépannage et de débogage, mais ils doivent vraiment se débrouiller pour obtenir les plus difficiles. Ils n'ont pas encore assez d'expérience pour voir les tendances dans les problèmes qui les dirigent vers l'endroit probable où ils se produisent. Mais ils acquièrent ces compétences et ont rarement besoin de demander de l’aide pour le débogage. Ils ont probablement traversé au moins une fois tout le cycle de développement et ont constaté les résultats des problèmes de conception et apprennent à les éviter. Habituellement, ils ont tendance à être plus enclins à accepter une exigence à sa valeur apparente et à ne pas la repousser en cas de problèmes ou de lacunes évidents. Ils ont suffisamment appris pour savoir ce qu’ils ne savent pas et commencent à acquérir cette connaissance. Ils sont les bêtes de somme du monde de la programmation,
Personne qui est au niveau supérieur n'a même besoin de poser cette question. Ce sont des experts dans les piles de technologies choisies. Ils se voient confier des tâches difficiles (celles que personne ne sait résoudre) et ont souvent des responsabilités de conception. Ils travaillent souvent de manière indépendante car ils ont une expérience éprouvée dans la livraison des marchandises. Ils sont censés encadrer les développeurs juniors et intermédiaires. Ce sont souvent des dépanneurs incroyables. Ils ont déjà rencontré ces mêmes problèmes auparavant et savent très bien par où commencer. Les aînés jouent souvent un rôle de mentor en dehors du lieu de travail. Ils ont généralement au moins dix ans d’expérience et ont presque toujours participé à au moins une marche de la mort et savent exactement pourquoi certaines choses doivent être évitées. Ils savent comment livrer un produit qui fonctionne et respecter un délai. Ils savent quels coins peuvent être coupés et quels coins ne devraient jamais être coupés. Ils connaissent au moins une et souvent plusieurs langues au niveau expert. Ils ont assisté à la disparition de nombreuses "nouvelles technologies" sur le lieu de travail. Ils ont donc tendance à être un peu plus prudents en ce qui concerne l'adoption du prochain nouvel outil de développement (mais ils ne sont pas complètement résistants au changement). développeurs intermédiaires plus âgés qui ne font jamais le saut vers Senior). Ils comprennent que leur travail consiste à fournir un logiciel fonctionnel qui fait ce que les utilisateurs veulent, et non à jouer avec des outils amusants. Ils sont souvent plus difficiles quant à l'endroit où ils vont travailler parce qu'ils peuvent être et parce qu'ils ont constaté à quel point certains endroits peuvent être pénibles. Ils recherchent les endroits qui ont les tâches les plus intéressantes à faire. Souvent, ils en savent plus sur les produits de leur entreprise que quiconque, même s'ils ne sont là que depuis quelques mois. Ils savent qu'ils ont besoin de plus que de la connaissance en programmation et qu'ils maîtrisent bien le domaine commercial qu'ils soutiennent. Ils sont souvent conscients de problèmes que les juniors ne prennent jamais en compte et que les intermédiaires ne pensent pas, tels que les problèmes réglementaires et juridiques du domaine commercial qu’ils prennent en charge. Ils peuvent et vont repousser une exigence car ils savent quels seront les problèmes et pourront expliquer la même chose aux profanes.
Niveau d'entrée - doit leur donner des instructions explicites, vérifier tout ce qu'ils font, peu ou pas de responsabilité de la conception, aucune responsabilité d'analyse
Junior - instructions moins explicites, moins de vérification, quelques responsabilités mineures en matière de conception et d'analyse; aide les personnes de base à trouver le compilateur et à utiliser le référentiel
Senior - responsable majeur de la conception et de l'analyse, devrait corriger lui-même les erreurs de contrôle, peu ou pas de vérification, peu ou pas d'instructions; aide les subalternes à apprendre / améliorer leurs compétences en analyse et en conception
la source
Vraiment, je pense que cela dépend simplement du temps que vous avez passé au travail. Si vous avez 10 ans d'expérience, vous êtes un développeur expérimenté. Si vous êtes diplômé, vous êtes probablement débutant. J'ai vu beaucoup de développeurs «plus expérimentés» qui savaient à peine coder et ne savaient pas vraiment ce qu'ils faisaient, et beaucoup de développeurs junior qui étaient fantastiques.
la source
Je pense que les machines à sous d'apprenti, de compagnon et de maître de la vieille école se prêtent bien à ces machines pour les débutants, les débutants (ou simplement pas de préfixe) et les seniors.
Une personne de niveau débutant se voit confier des tâches relativement simples qui n’ont pas de conséquences graves et leur travail est contrôlé par un junior ou un senior. Au fil du temps, ils assument davantage de responsabilités et se voient confier des tâches plus complexes, apprenant les ficelles du métier tout au long du processus.
En tant que junior (ou juste la suppression de "niveau d'entrée" / "junior" du titre / de la description), vous avez terminé votre apprentissage et avez couvert les principaux domaines de développement de votre entreprise, en vous plongeant dans chaque domaine familier avec chacun d'eux. Vous aidez maintenant à fournir des conseils et une contribution pour l'équivalent apprenti, mais votre propre travail est toujours examiné par le maître / senior, bien que peut-être pas autant que lorsque vous étiez junior.
Avec le temps et la réalisation de projets réussis, vous devenez éventuellement senior. À un niveau supérieur, vous avez maîtrisé tout ce qui est couvert dans votre domaine, couvrant tout le processus de développement et tous les outils et technologies impliqués. Vous êtes habilité à prendre des décisions techniques importantes et vous devez fournir un aperçu de la gestion dans le processus de développement logiciel.
Donc, étant donné ces directives, vous devriez pouvoir regarder une personne ou une position et déterminer laquelle des trois cases elles atterrissent.
la source
Cela va se résumer aux attentes de la société en matière de programmation.
Si je suis la société qui embauche et que j'engage un programmeur Entry Level, je sais que cette personne ne sait presque rien et nous allons supposer qu'il / elle doit tout apprendre. Si j'embauche un cadre supérieur, en théorie, il sera autonome sur le plan technique.
la source
Cela dépend strictement de l'entreprise. Mais les mots sont assez évidents: niveau d'entrée est une personne qui vient d'entrer sur le marché, junior est une personne qui est au-delà du niveau d'entrée et qui connaît bien les technologies de quelques langues. Enfin, les personnes plus âgées sont celles qui sont plus en charge du projet et occupent un poste plus élevé. Ils peuvent généralement déléguer autant qu'ils codent.
la source
Comme la plupart l'ont dit, cela varie d'une entreprise à l'autre et d'un emploi à l'autre.
Par exemple, j'ai déjà travaillé dans une entreprise qui considérait toute personne qui y travaillait depuis plus de 5 ans comme un "ingénieur logiciel senior". À l'autre extrême, un autre endroit où j'ai travaillé avait des définitions très strictes (et des barèmes de rémunération associés).
Certains endroits peuvent considérer "niveau d'entrée" et "junior" comme signifiant la même chose.
Elle peut varier en fonction des années d’expérience, des connaissances générales, des connaissances spécifiques (connaître les caractéristiques d’une langue donnée), de l’expérience en matière de gestion et / ou de direction, de toutes leurs combinaisons et certainement de beaucoup plus.
la source
Je vais y aller avec la réponse très simple ici: les développeurs seniors (en général) sont des gens qui peuvent voir la forêt pour les arbres. Ils réfléchissent bien au-delà du problème immédiat et comprennent quels changements architecturaux pourraient ou devraient avoir lieu à la suite de la résolution du problème auquel ils sont confrontés.
La plupart des sociétés de logiciel que j'ai vues ont des personnes de premier niveau qui codent au jour le jour, tandis que les développeurs expérimentés supervisent ce que font les nouveaux utilisateurs et s'attaquent aux problèmes vraiment horribles et épineux.
De toute évidence, ceci n’est que mon opinion et non une règle absolue. YMMV.
la source
En termes simples et à partir d'observations personnelles trouvées sur des sites d'affichage d'emplois et uniquement en ce qui concerne les niveaux d'expérience.
Entrée = Votre nouveau probablement votre premier emploi.
Junior = Votre bon mais pas supposé être le meilleur, vous avez aussi généralement moins de 5 ans et plus de 2 ans d'expérience.
Senior = Vous êtes censé être le meilleur et avez plus de 5 ans d'expérience.
la source