Est-ce qu'un développeur senior utilisant une langue vous permet d'être un développeur senior utilisant une autre langue? [fermé]


27

Si je travaille en tant que développeur dans une langue (par exemple Java) et que je progresse vers le niveau de développeur senior, est-ce que cela me qualifierait en tant que développeur senior pour un poste utilisant une autre langue (par exemple Ruby)?


2
@Philip - cette question est vraiment une question limite sur deux fronts. C'est borderline "trop ​​localisé" car il n'aura vraiment de valeur que pour vous et c'est borderline "pas constructif" car il ne répond pas vraiment aux directives pour poser les questions listées dans notre FAQ. Si vous pouvez modifier cette question et répondre aux directives, il peut être utile d'enregistrer la question.
Walter

8
@Walter - Je ne suis pas d'accord avec votre premier commentaire sur la localisation. Il s'agit d'une question / réponse généralement applicable concernant le fait de savoir si être développeur senior dans une langue vous donne droit à un poste de développeur senior dans une autre.
Craige

1
@Walter - a supprimé les problèmes de localisation, je pense que c'est probablement raisonnable maintenant.
Jon Hopkins

1
@Walker - Désolé, la question est posée comme le dit Craige. Je viens de l'écrire de cette façon parce que je suppose que la plupart des programmeurs considérés comme juniors veulent un jour devenir développeur senior. Choisir le bon poste Junior est donc crucial (ou pas)
Philip

11
Cette question semble supposer que «développeur principal» a une sorte de signification généralement acceptée. C'est normalement une sorte de titre d'emploi, et un titre d'emploi est ce que vous et votre employeur pouvez convenir.
David Thornley

Réponses:


33

La meilleure façon d'y répondre est de voir quelle est la différence entre un développeur et un développeur senior. En supposant que ce n'est pas seulement une question de temps, je m'attends généralement à ce que les développeurs et les développeurs seniors soient capables de:

  • Écrire le code avec compétence dans les langues requises par le rôle
  • Diagnostiquer et corriger les bugs
  • Écrire des tests unitaires
  • Respectez les normes et les meilleures pratiques raisonnables (contrôle de version, documentation)
  • Avoir une large compétence technique de base
  • Agir de manière professionnelle

De plus, je m'attendrais à ce qu'un développeur principal:

  • Encadrer les autres membres du personnel dans les meilleures pratiques
  • Être et reconnaître le point de référence pour au moins certaines des langues utilisées par l'équipe
  • Rechercher activement et défendre de nouveaux domaines de bonnes pratiques
  • Acquérir la propriété technique de problèmes / domaines de code plus complexes et fournir des solutions solides

Alors, la question devient alors: remplissez-vous les critères étendus pour votre deuxième (ou troisième ou quatrième) langue? Je suggérerais que tant que vous êtes suffisamment compétent techniquement dans la langue vers laquelle vous vous déplacez, alors oui, car la plupart des tâches de développeur principal ont tendance à être transférables.


1
Cela dépend vraiment de l'environnement, en particulier du patron. Certains «Sr» estiment qu'ils doivent montrer leurs connaissances sur chaque sujet, en particulier lorsqu'un «jr» peut avoir plus de connaissances et d'expérience sur un sujet. Une tension sérieuse peut s'accumuler lorsqu'un Sr. avec un fond C ++ travaille sur un projet C #. Un «jr» peut avoir une plus grande base de connaissances pour ce cadre particulier. Cela peut provoquer des batailles passionnées, surtout lorsque le boss écoute.
P.Brian.Mackey

@ P.Brian.Mackey - Très bien, il y a des différences assez importantes entre différents emplois avec le même titre. Je suis allé avec ce que je pensais être une définition assez générique (et sensée) mais elle peut aller de "a plus de 30 ans" à "sait tout sur tout".
Jon Hopkins

1
bonne chance avec ce dernier dans un langage plus compliqué que BF ... même C a plus de coins sombres que vous ne le pensez!
SamB

«Certains« Sr »estiment avoir besoin de montrer leurs connaissances sur tous les sujets». On devrait dire à ces gens de se détendre. Vous ne pouvez rien apprendre si vous ne reconnaissez pas qu'il y a des choses que vous ne savez pas. La capacité d'admettre librement l'ignorance de quelque chose est un signe de force et non de faiblesse.
PeterAllenWebb

1
+1 Pour avoir souligné que certaines compétences, mais pas toutes , sont transférables. Excellent moyen de le dire.
Nicole

5

Vous pouvez postuler à n'importe quel poste dans n'importe quelle entreprise que vous aimez, quel que soit votre statut actuel.

Ce sera à vous de prouver dans votre CV / lettre de motivation / entretien que vous êtes l'homme du poste.


5

Je recherche les qualités suivantes lorsque j'ai interviewé des développeurs principaux.

  • A travaillé dans plusieurs langues
  • Expert dans au moins un, compétent dans au moins un autre, de préférence dans un paradigme différent
  • Connaissant les technologies actuelles, l'état de l'art, etc. dans le domaine choisi
  • Bonne base CS c'est-à-dire (algorithmes, chiffrage algorithmique, structures de données, etc.)
  • La possibilité de basculer entre les détails d'un problème spécifique et la vue d'ensemble
  • Exprimez quand les choses évoluent dans la mauvaise direction et pourquoi; et ensuite pouvoir continuer dans cette mauvaise direction (aka professionnalisme)
  • Capacité de mentor
  • Capacité à travailler au sein et avec une équipe

Il y a une myriade d'autres choses que je recherche, mais ce sont les points principaux.

Bien que j'ai recommandé d'embaucher des développeurs principaux qui n'étaient pas des experts dans la langue utilisée au travail, ils étaient des experts dans des langues similaires.


3

Vous pouvez postuler, mais au moins si je fais l'embauche, je pourrais ou non vous embaucher.

L'ancienneté concerne (au moins) deux domaines. Expertise générale en développement et expertise linguistique / cadre. (Je laisse délibérément de côté la connaissance de l'espace commercial) pour le moment. Être développeur principal dans mes livres inclurait également un niveau d'expertise en conception / architecture. Comment construire un bon système / testable, etc.

Arriver à ce niveau en Java devrait vous être très utile pour d'autres langages (similaires / procéduraux).

Mais à l'ère de la productivité immédiate attendue, il est peu probable que vous en sachiez presque autant sur Ruby que sur Java. Comment diviser votre système en constructions compatibles Ruby au lieu de constructions compatibles Java. Vous connaissez probablement certains frameworks Java et non Rails ou d'autres choses spécifiques à Ruby.

Si je vous demandais de faire du codage de tableau blanc en Ruby pendant l'entretien, pourriez-vous le faire?

Tous ces éléments entreraient dans ma décision de vous embaucher ou non, à n'importe quel niveau; mais en particulier pour un rôle senior .

Bonne chance


Merci pour votre réponse, oui je pourrais faire du codage de tableau blanc en Ruby (idem pour C ++, Java). En fait, je me considère au point actuel encore plus compétent en Ruby qu'en Java parce que depuis un an je travaille sur un projet privé qui est construit sur Ruby.
Philip

3

Nan.

C'est l'une des grandes différences entre notre profession et d'autres professions plus «formelles». Si vous avez travaillé comme avocat dans le domaine des testaments et des successions pendant 20 ans, vous allez avoir un taux élevé parce que vous avez 20 ans de connaissances accumulées dans ce domaine .

Si vous faites du C ++ / Win32 / MFC depuis 15 ans, cela ne vous qualifie pas vraiment pour un poste senior en tant que développeur Rails, même si vous résolvez toujours les mêmes problèmes dans le même domaine ... facturation, par exemple.

Pire encore, la plupart des entreprises ne vous considéreront même pas pour un poste à peu près similaire ... Par exemple, si vous avez fait du C ++ / MFC pendant 5-7 ans, vous devriez être en mesure de vous familiariser avec C # /.NET très rapidement, au moins pour le bureau. Malheureusement, la plupart des entreprises ne le voient pas de cette façon.


4
Je ne sais pas que "la plupart" des entreprises voient les choses de cette façon. Le problème en ce moment, dans une économie en baisse, est qu'il y a tellement plus de gens disponibles qui connaissent déjà (à partir de votre exemple) C #, donc ils peuvent vous limiter à une recherche basée uniquement sur les chiffres.
Wonko the Sane

Je pense que la plupart des compétences et des expériences sont transférables. Apprendre une nouvelle syntaxe est facile. Malheureusement, vous avez raison: ce n'est pas ce que vous pensez, mais ce que pense la personne qui vous embauche.
Personne le

3

Ça dépend

Retirez-en la "programmation". Imaginez plutôt que vous êtes un traducteur professionnel.

Supposons que l'anglais est votre première langue et que vous maîtrisez également le français. Vous êtes susceptible d'apprendre l'espagnol assez facilement.

Cependant, vous n'êtes pas aussi susceptible de maîtriser rapidement les nombreux dialectes chinois. Bien que votre expérience en tant que linguiste vous aidera à apprendre la (les) langue (s), vous donnant un avantage sur quelqu'un qui n'a jamais étudié une langue étrangère, il vous faudra encore beaucoup plus de temps pour devenir un "expert" (c'est-à-dire "senior" ) traducteur dans cette langue.


2

Oui et non.

Si les langages sont assez similaires , dites C ++, Java ou Ruby, assurez-vous que vous devriez être pris en compte. Selon la flexibilité des personnes assises dans ces bureaux, vous avez une chance de vous battre.

Cependant, si les langues sont très différentes , et j'entends par là que vous êtes un gars COBOL qui a été excité à propos de Haskell, alors malgré vos 10+ années de COBOL, les chances sont nombreuses que vous ne puissiez même pas autant obtenir une interview.

COUPLE DE CHOSES QUI VA SE FAIRE EN VOTRE FAVEUR DANS DE TELLES SITUATIONS:

  1. Si vous connaissez déjà plusieurs langues et avez une expérience prouvée à ce sujet. Dites que vous êtes bon en C ++, mais que vous connaissez aussi Perl, Tcl et certains Ruby, je serais prêt à vous considérer pour Java. En fait, je connais des gens qui ont des emplois Java avec C ++ dans leur CV.
  2. Si votre expérience est dans un domaine connexe, vous avez de bonnes chances de le faire. Par exemple, si vous êtes un programmeur de jeux C ++, je ne vois aucune raison pour laquelle vous ne pouvez pas être embauché pour un travail C # qui nécessite un peu de multi-threading.

1
D'accord, je dois demander - comment Ruby est-il comme C ++ ou Java? C ++ et Java sont tous deux des langages de style C, tandis que Ruby est dérivé de Perl, Python et Smalltalk.
Craige

Je faisais référence à la POO comme étant le thème directeur.
Fanatic23

2

J'ai rarement vu un titre "senior" basé sur la langue. Je connais quelques programmeurs système senior , quelques programmeurs web senior et un programmeur COBOL senior.

La programmation a de multiples facettes et a plusieurs disciplines à offrir. Je m'attendrais à ce qu'un développeur Web senior (dans les titres, le programmeur et le développeur semblent être interchangeables) soit compétent dans plusieurs langages courants utilisés dans le développement Web. Cela fait-il d'un gourou Python et PHP un expert instantané en C #? Non. D'un autre côté, tous les gourous du C # ne maîtrisent pas l'art de la gestion de projet et du leadership.

J'ai occupé le poste de CTO dans une entreprise, en plus d'être le programmeur principal des systèmes. Pourtant, je m'en remettrais volontiers à un expert en schéma ou LISP si nous rencontrions un projet qui nécessitait l'un ou l'autre. Une partie d'être un bon leader est la compréhension de vos propres limites et défauts d' abord .

Je ne suis pas sûr de vouloir travailler dans une entreprise, ou même dans un département qui se concentre sur une et une seule langue. On dirait que cela ferait ce qu'ils ont toujours dit que fumer ferait: ralentir votre croissance alors que la réalité est bien pire.

Ne pas courir après les titres, courir après les connaissances. Mais, pour être honnête, votre rôle dans un poste de direction antérieur vous donnerait probablement un avantage supplémentaire, à condition que vous démontriez des compétences dans la langue en question.


0

Je pense que cela dépend de ce que vous percevez en tant que développeur senior? S'il s'agit davantage d'un rôle d'architecte, de nombreux principes de conception et modèles de conception seront à votre disposition à partir de votre expérience en tant que développeur, quelle que soit la langue. C'est donc un plus ;-)

Cependant, lorsque vous envisagez de créer une application ou un code aussi productif et maintenable que possible (le roulement de votre bit sleaves), je ne pense pas que vous puissiez entrer au même niveau d'expérience lors du changement de langue, d'IDE et / ou de framework.

Mais comme l'a dit runrun, cela ne vous empêche pas de postuler à quoi que ce soit


0

Cela dépendra fortement de l'entreprise que vous interviewez, car ce sont généralement les procédures internes des ressources humaines qui déterminent la manière dont les nouveaux employés sont recrutés. Les grandes entreprises ont tendance à être très rigides et si elles disent que vous devez avoir n ans d'expérience dans une langue donnée pour être considéré comme un niveau supérieur, vous constaterez peut-être qu'elles ne vous apporteront qu'un développeur de niveau intermédiaire.

Cela dit, cela ne devrait pas vous empêcher de postuler pour le poste et s'ils vous amènent pour un entretien, c'est quelque chose dont vous devriez discuter.


0

Je dirais que plus le langage est basique ou convivial, plus vous êtes expert.

L'expertise Java / C # est moins rémunérée que l'expertise ASM / C / C ++.

Ces derniers langages gèrent la mémoire et d'autres choses qui importent réellement lors de la programmation.

Mais pour d'autres langues "faciles", vous auriez besoin de faire une comparaison rapide sur les fonctionnalités qui les rendent "plus faciles", mais je trouve cela inutile. Les expériences avec les langages faciles sont mieux mesurées avec le CMS / autre code fait que vous avez utilisé pour travailler, comme l'allumeur de code ou le django ou Apache ou RoR.

Pour moi, les développeurs seniors sont des personnes qui programment des noyaux, des systèmes, du matériel embarqué, etc. Les programmeurs utilisant des langages qui ne sont pas adaptés aux machines ne sont pas des seniors pour moi. Ils font juste le travail, mais c'est tout.


Opinion intéressante. Je suis d'accord, C ++ est beaucoup plus douloureux. D'un autre côté, une grande partie de la douleur de C ++ est là parce que certaines parties du langage (actuel) sont en quelque sorte dépassées. Les langages plus récents ont beaucoup plus de fonctions de bibliothèque, Lambdas, pour chaque boucle et moins de syntaxe cryptique pour beaucoup de choses. Ces problèmes peuvent distraire un de se concentrer sur les choses réelles de bas niveau.
Philip

Ceci est une opinion intéressante. D'après mon expérience, une personne âgée s'occupe davantage de gestion, pas nécessairement parce qu'ils ne codent pas, mais parce qu'ils ont plus d'expérience dans la traduction de choses de bas niveau à des non-techniciens. Vous pouvez certainement respecter cette capacité ou non. Votre point de vue soulève une question, sur une équipe de 30 développeurs web, aucun d'entre eux n'est senior car ils ne peuvent pas écrire un noyau? Cela ne fait aucune différence pour vous s'ils ont travaillé sur Mosaic ou s'ils ont juste terminé leurs études secondaires?
Steve Jackson

30 développeurs web? DÉVELOPPEURS? Eh bien, "senior" signifie pour moi que la personne a codé depuis longtemps ou qu'elle est plus âgée. Mais si je pense que "senior" en termes d'expérience et de connaissances qui compte, je ne pense pas que vous pourriez l'appeler expérience de programmation si vous utilisez un langage récupéré.
jokoon
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.