Dupliquer possible:
[.____] Quand devriez-vous vous appeler un développeur senior?
Je vois souvent des offres pour les programmeurs seniors et la règle générale semble être que vous devez avoir travaillé trois ans pour en devenir un. La durée ne signifie-t-elle pas beaucoup de sorte qu'attends exactement d'un programmeur principal? Que devrait-il être capable de faire? En tant que question ajoutée, quand un développeur cessent-il d'être considéré comme un junior?
Il y a (beaucoup) plus au développement de logiciels que le code de démarrage.
Cela conduit à: responsabilité
Un développeur junior apprend toujours la langue et les cadres quotidiennement et devrait donc se concentrer sur cette question. Un mentor (ou des collègues expérimentés au moins) devrait le guider, en particulier les décisions de conception, et pour le vérifier régulièrement (et non seulement son travail), nue dans la bonne direction et parfois aider à lisser le chemin (par exemple faire le travail délicat ou manipuler la configuration/le déploiement).
D'autre part, un développeur senior devrait être autonome. C'est-à-dire que le patron lui remettra une fonctionnalité pour la mettre en œuvre et la laisser à lui, tout à fait, sachant que le développeur principal saura quand demander de l'aide ou de la révision. Le développeur principal devrait également être capable de dire à son patron lorsqu'il sera fait avec la tâche et prendra réellement la responsabilité pour le faire.
La différence n'est donc pas tant dans l'expertise dans la langue, mais dans l'expérience (en général) et la fiabilité.
Question difficile et difficile. Pas aidé par le fait que je connais de nombreuses personnes avec le titre du Titre Senior Developer, qui ferais moins de confiance qu'un junior enthousiaste. En effet, j'ai tenu ce titre très long que je le méritais.
Cependant, voici la ligne comme je pense que cela devrait être:
Un développeur junior devrait avoir besoin de mentorat. Cela ne veut pas dire qu'un senior n'a pas besoin d'un examen par des pairs; C'est une attitude dangereuse. Mais aucune question ne devrait être considérée comme stupide, venant d'un junior, à moins qu'ils ne posaient la même question hier.
Un développeur junior devrait se concentrer sur le développement et non sur le processus de développement ni sur les besoins de l'entreprise derrière le développement - bien qu'ils soient conscients qu'un aîné devra être impliqué dans ces choses et apprendre à leur sujet.
Un développeur junior ne devrait pas être aussi responsable de son travail en tant que senior. Encore une fois, je suppose que cela revient au mentorat. Il devrait toujours y avoir quelqu'un au-dessus de lui, en vérifiant son travail et en prenant la responsabilité de tout ce qui ne va pas.
Un développeur junior n'a pas été là et a fait toutes ces erreurs. Cela signifie qu'il ne peut pas être aussi informé des gotchas et des caisses de bord qui sont encore une fois de temps et de temps. Vous ne devriez pas envoyer un développeur junior seul dans une réunion avec l'entreprise sur une exigence, où l'entrée technique est censée être "Avez-vous pensé à cette situation?"
Les rôles clés d'un développeur senior mentent et guident.
Il ne s'agit pas tellement de la qualité d'un programmeur, mais de la façon dont vous pouvez communiquer des idées et guider les membres de l'équipe par le biais de leur travail. La connaissance et l'expérience seule ne vous font pas nécessairement un bon mentor ou un bon guide. Mais bien sûr, vous avez besoin des deux pour donner des impulsions précieuses.
Un développeur junior est une personne qui nécessite des conseils et un mentorat de contribuer à une équipe. La différence fondamentale entre le mentorat et l'échange entre pairs est la symétrie.
La durée ne signifie-t-elle pas beaucoup de sorte qu'attends exactement d'un programmeur principal?
Entre autres choses, bon jugement.
Lorsque vous engagez un développeur senior de l'extérieur, une autre société a payé le coût de l'acquisition de bon jugement.
Le développeur principal devrait savoir ce qui fonctionne et ne fonctionne pas. Il y a vingt façons différentes de résoudre chaque problème, mais il devrait connaître le meilleur itinéraire. Et aussi la compétence technique évidente avec la technologie donnée. Mais Moreso, le développeur principal devrait également être corrélé comme le solveur principal de problèmes.
La programmation n'est pas différente de toute autre profession.
Premièrement, je pense que 3 ans est une bonne quantité de temps à ne pas être considérée comme "junior". Mais il n'ya aucun moyen de considérer quelqu'un avec 3 ans d'expérience un développeur "senior". Il y a tellement de choses à apprendre au-delà de la syntaxe que vous ne pouvez pas préciser en profondeur en 3 ans. Je dirais que cela prend 3 ans pour obtenir suffisamment d'exposition à différents problèmes pour se familiariser avec un seul cadre. Donc, par exemple, si vous travaillez avec WPF depuis 3 ans, il est possible de devenir un développeur de Senior WPF (tant que vous ne faites pas le même ensemble étroit de tâches pour ces 3 ans). Mais un développeur "global" senior no.
Pour moi, un développeur senior est une personne qui peut prendre une fonctionnalité de la prestation de livraison. Il devrait être capable de fournir également des conseils aux développeurs juniors. Que faut-il pour faire quelque chose comme ça? Pour une application standard, de ligne d'entreprise, multi-niveaux, de la base de données, cela implique la connaissance de l'interface utilisateur, la communication croisée, l'accès aux données et le SQL (ou une O/RM si vous allez cette route).
L'apprentissage peut être concomitant, donc si vous travaillez avec Dites WPF et WCF de manière approfondie depuis 3 ans, vous pouvez devenir assez qualifié aux deux d'entre eux. Mais il n'y a aussi que tant que vous pouvez apprendre à la fois. En outre, tout dépend du type de formation/mentorat que vous recevez comme vous apprenez.
Pour ne pas ressembler à un enregistrement brisé, mais je vais le ramener au modèle d'acquisition de compétences de Dreyfus (vous me verrez beaucoup en vous référant à cela ici). La répétition ne suffit pas d'aller de novice à la maîtrise. Vous devez faire une pratique appliquée qui inclut progressivement une tentative de compétences qui augmentent dans le défi. Par exemple, dans WPF, vous commencerez avec la création de contrôles utilisateur de base et éventuellement être diplômé pour écrire des contrôles entièrement modèles et indépendants.
Un certain nombre de facteurs déterminent un niveau de compétence des développeurs. Le temps seul est l'indicateur le moins important.
Exemple:
Quand j'ai commencé à programmer avec Ruby sur rails, après trois semaines, mon premier petit site Web, après trois semaines, un prototype pour un client, après six semaines, un site Web entièrement actif en ligne. Pendant ce temps, les développeurs expérimentés Rails Développeurs de la société que j'ai travaillé étaient une aide précieuse pour que les choses soient correctes. Bien que l'apprentissage de la langue et du cadre était la plus petite partie.
Après quelques mois d'expérience avec Rails et contact permanent avec la communauté Rails (listes de diffusion, forums ...) Je savais Rails à l'envers. Je savais toutes les "meilleures pratiques", je savais à quoi sert la meilleure façon de faire des choses, non seulement comment le faire courir. Je connaissais tous les outils importants et j'ai pu comparer des avantages et des inconvénients de ces outils dans certaines circonstances. Cela comprenait une expérience de divers domaines de programmation Web, telles que la recherche en texte intégral dans les bases de données, la sécurité, les systèmes de paiement en ligne, le repos, le crud, le contrôle de la version et tous les autres mots à la mode de l'activité Web.
Ainsi, lorsqu'un client a demandé, si nous pouvions mettre en œuvre une certaine caractéristique, j'ai pu lui dire ce que nous pouvions faire à ce sujet, à la question de lui dire que je dois voir, si cela est possible du tout possible. Je savais quels outils que je pourrais utiliser et à quel point je me permettrais de mettre à écrire mon propre code.
Si un nouveau programmeur a mis en œuvre quelque chose, j'aurais pu souligner les risques de sécurité comme des injections SQL. S'il souhaitait mettre en œuvre une fonctionnalité, j'aurais pu lui dire quels outils à utiliser et si les autres développeurs de la communauté Railsont considéré comme fiable ou s'il devait s'attendre à des problèmes.
C'est difficile de dire. D'une part, le développeur senior n'est que quelqu'un qui a travaillé sur une entreprise suffisamment longue pour obtenir le titre de senior. Certaines personnes ayant le titre de développeur "senior" ont été impressionnées par des trucs que j'ai fait ma première année de travail et leur code était un tas de déchets tarichis total. Mais parce qu'ils avaient des années d'expérience de l'entreprise, la société les a engagés au développeur senior. Ils ne se soucient toujours pas de la conception de logiciels, il suffit de jeter des tonnes de siéformations dans une ou deux méthodes géantes, des noms de variables maladroites et la réalisent. Ensuite, il est si complexe que c'était un cauchemar de déboguer ... Même dans ma société actuelle, il existe des développeurs seniors que je travaille avec qui je jette tout le code dans un code derrière pour une page ASP.NET et dupliquer le même code pour chaque page séparée.
D'autres sociétés, les développeurs seniors devraient connaître la conception de l'interfonction de l'interface utilisateur, la conception orientée objet, les bonnes pratiques de codage, la manière d'estimer le temps, etc., il y avait une entreprise où je ne pouvais même pas avoir un rôle de développeur de niveau moyen, car mon Les compétences orientées objet étaient trop faibles. Dans mes deux rôles de développement précédents, aucun développeur senior faisait vraiment des concepteurs orientés objet. La seule chose que je connaisse de la superposition logicielle/la superposition de domaine/design orienté objet I Lire des livres. Globalement, le développeur senior qui a dû pratiquer cela tout le temps et devenait maîtrisé de celui-ci, c'est bien mieux qu'un sans expérience du tout.
Globalement, la leçon de l'histoire est que votre kilométrage varie. Certaines personnes obtiennent le rôle que d'avoir x ans d'expérience, même s'il s'agit d'une année d'expérience x fois. Différentes entreprises ont des normes différentes. Je tiens à en trouver un où un développeur senior devrait écrire un logiciel de qualité, propre, bien conçu et bien conçu, puis travailler à un poste de développeur senior, afin que je sois un véritable développeur senior et non seulement une personne avec X années d'expérience. qui a eu le titre senior. Malheureusement, il y a beaucoup d'endroits qui seniors = x ans d'expérience indépendamment de la compétence ........
Savoir quoi non pour passer du temps à faire.