Comme indiqué par le titre, quelle est la différence d'années d'expérience dans une langue donnée en termes de développeurs? Par exemple, si un développeur a eu cinq ans de travail avec la langue A et l'autre développeur a eu deux ans de travail avec la langue B suivi de trois ans de travail avec la langue A, y aurait-il une différence perceptible entre eux?
9
Ça dépend.
J'ai un ami qui a tendance à s'en tenir à une seule langue, donc si vous le considérez comme "programmeur A", il a 1 an d'expérience avec cette langue, cinq fois.
Différentes langues vous permettent de faire des choses différentes. Un essai que j'aime particulièrement s'intitule " Beating the Averages " de Paul Graham. Il essaie de convaincre les gens d'apprendre le lisp, mais il fait également quelques remarques très utiles:
Généralement, mon conseil est d'apprendre plus d'une langue et de savoir quelles sont les forces et les faiblesses des langues.
la source
Bien sûr, le développeur qui a plus d'années d'expérience dans une langue aura une meilleure compréhension des bibliothèques de base et des particularités de cette langue. Si les langues adoptent le même paradigme (impératif vs fonctionnel), elles ne devraient pas avoir plus de mal à apprendre cette langue que d'apprendre à le faire.
Ma plus grande difficulté à choisir un nouveau langage est venue d'essayer de passer de C # à Erlang, car cela représentait non seulement une nouvelle syntaxe mais aussi une nouvelle façon de penser la programmation.
la source
Voici ce que j'attends / espère:
la source
Les langues ne sont pas le problème. Vous pouvez apprendre une langue entière en quelques jours. Ce qui prend plus de temps à absorber, ce sont les conventions, les API et divers cadres tiers. Lorsque les gens demandent cinq ans de X, ils ne se soucient pas de la langue, ils veulent quelqu'un qui a beaucoup d'expérience dans la résolution de problèmes dans et avec cette langue afin de ne pas avoir à payer pour la courbe d'apprentissage.
la source
Expertise et pratique délibérée.
Si vous ne pratiquez pas délibérément, vous ne gagnerez pas d'expertise. (Vous devez également examiner vos erreurs et les corriger, vous exercer à vos faiblesses et avoir un expert pour vous dire ce que vous faites de mal vous aide également.)
Si vous n'essayez pas de vous améliorer, vous pouvez être un débutant pour toujours!
Après dix mille heures de pratique délibérée, vous obtiendrez une expertise. (Cette constatation de l'éducation / formation est partout sur le net.)
Si votre programmeur A n'a pas délibérément pratiqué, il ne s'améliore jamais.
Si votre programmeur B n'a pas délibérément pratiqué, il ne s'améliore jamais.
Une autre conclusion de la même recherche: que si j'ai 15 000 heures et que vous en avez 10 000, et que je continue à pratiquer et vous aussi, vous ne serez jamais meilleur que moi.
Connaître deux langues fera probablement de B un meilleur programmeur (sous réserve des règles de pratique).
la source
Et vous les utilisez pour la langue A, je suppose? (De toute évidence, il y aurait une différence dans le langage B.)
Cela dépend en partie des différences entre A et B (en particulier si nous raccourcissons l'expérience du deuxième développeur avec A). S'ils sont assez similaires, il n'y aura essentiellement aucune différence d'expérience. Si A a des concepts considérablement différents, trois ans sont encore probablement suffisants pour les apprendre. Compte tenu d'une très grande bibliothèque et d'outils compliqués, il peut y avoir une différence entre trois et cinq ans.
Bien sûr, ce qui importe le plus ici, c'est l'individu. Un bon développeur peut apprendre à fond une nouvelle plateforme en trois ans, et cela ne devrait donc pas être un problème.
la source
Je conviens que la langue est la langue et les concepts sont des concepts.
Mon problème est qu'il existe de nos jours un grand nombre de programmeurs qui, sans IDE sophistiqué, ne pourraient pas programmer du tout. Ce ne sont vraiment pas des programmeurs mais plutôt des concepteurs.
Je sais par expérience personnelle qu'il y a beaucoup de gens qui ont été séduits par l'environnement de développement Microsoft glissant. Ce n'est pas faux qu'ils déposent une zone de texte sur l'écran puis définissent les propriétés avec l'assistant et glissent les données à partir d'une image de la base de données, mais sont-ils vraiment des codeurs dans n'importe quelle langue s'ils ne font que configurer des tests d'égalité de base?
Ces gens ne seront jamais en mesure de prendre les concepts qu'ils ont appris et de les appliquer à une autre langue.
Quand j'interviewe des gens, je suis plus intéressé par la façon dont ils ont fait leur développement et les cadres qu'ils ont utilisés. J'aime poser des questions comme: "Comment écrivez-vous un gestionnaire d'événements?", "Comment mettez-vous exactement les données dans la base de données?", Ou même "Comment puis-je transformer ce bouton en violet lorsque je clique dessus?" cela éliminera rapidement les concepteurs et laissera les programmeurs. J'ai trouvé que 3 ou 4 ans de programmation avec un an dans la langue de mon choix sont suffisants pour ce dont j'ai besoin.
Juste une autre opinion,
Tal
la source
"Des années d'expérience en langage / plateforme X" est largement une pathologie de recrutement ...
Il est ouvert à l'interprétation et n'est pas aussi utile qu'il n'y paraît à première vue. Comme on l'a dit, le mythe des années d'expérience est une bonne lecture.
De plus, surtout, la mesure des "années d'expérience" elle-même peut être très imprécise. Voici un exemple de mon concert actuel: ma tâche principale est de développer et de maintenir une application Web Java. Cependant, cela s'exécute sur un serveur principal qui est MFC / C ++ / SQL Server. Par conséquent, je traite également du code C ++ pratiquement quotidiennement. MAIS - cette expérience C ++ est relativement superficielle et orientée vers la maintenance, et je n'écris plus vraiment de gros composants ou programmes entiers à partir de zéro dans MFC / C ++ (je le faisais auparavant dans les rôles précédents).
Puis-je toujours compter ces 5 dernières années comme "5 ans d'expérience C ++"? Peut être. Peut être pas. Selon la façon dont je veux le vendre pour sécuriser un rôle particulier, je peux facilement le surestimer sans mentir, ou je peux admettre que ce n'était pas vraiment 5 solides "années d'expérience C ++". :) Je suis sûr que de nombreux cas sont également ouverts à ce type de problème "d'inexactitude de la mesure". La profondeur de l'expérience peut considérablement obscurcir la qualité de l'expérience. Un "X temps passé avec C ++" ne signifie donc pas grand-chose en soi.
la source
Oui, le programmeur 1 n'a aucune connaissance de la syntaxe du langage B.
Les concepts de programmation sont des concepts de programmation. Le langage n'est qu'une syntaxe.
la source