Comment pouvez-vous mesurer vos compétences en tant que programmeur? [fermé]

StackOverflow https://stackoverflow.com/questions/110522

  •  02-07-2019
  •  | 
  •  

Question

Lors d'un entretien précédent, on m'a posé la question suivante: "De 0 à 10 ans, comment vous situez-vous en tant que programmeur?"

J'ai trouvé qu'il était très difficile de répondre à cette question car je ne connaissais pas d'indicateur permettant de mesurer la qualité de mes compétences. En outre, il serait utile de connaître vos performances pour comprendre ce que vous devez améliorer pour devenir un meilleur programmeur.

Alors, y a-t-il un moyen de savoir si vous faites bien votre travail?

Était-ce utile?

La solution

Appelez votre ancien employeur et parlez à quiconque a hérité de votre ancien code. Ils vous diront à quel point vous êtes un programmeur. ;)

Autres conseils

C'est une question difficile. D'un point de vue purement introspectif, je pense que l'une des meilleures mesures de "bon programme de programmation" est-ce: combien aimez-vous votre métier? J'ai rencontré de nombreux développeurs, dont certains très bons, mais je n'ai jamais connu quelqu'un qui était un développeur 9-5 et qui gérait mieux que des résultats médiocres.

Bien sûr, regarder en soi n’est pas le meilleur moyen de mesurer les compétences. Je devrais penser que vos collègues programmeurs pourraient vous donner une réponse assez solide. Il y a une étiquette sociale impliquée dans la formulation d'une telle question, mais le potentiel est toujours là. D'après mon expérience, ceux avec qui vous travaillerez comprendront le mieux possible votre situation, ne serait-ce que parce que ce sont eux qui doivent nettoyer les dégâts si vous faites une erreur. : -)

Final but: la programmation est une solution de problème, pure et simple. Pensez à la façon dont vous abordez les problèmes difficiles qui se présentent à vous. Premièrement, comment réagissez-vous émotionnellement à un défi difficile? Et deuxièmement, à quoi ressemblera votre code? Frayez-vous simplement votre chemin à travers la jungle jusqu'à ce que vous obteniez un résultat, ou bien votre approche est-elle méthodique, bien mesurée et (surtout) extrêmement documentée? Les très bons programmeurs ne sont pas ceux qui savent tout ou qui peuvent implémenter l'algorithme de Dijkstra en huit langues, ce sont eux qui passent des heures à fouiller dans les manuels et les blogs obscurs pour trouver cette infime pépite d'une idée qui se produit. être cruciale pour la question à traiter. Si vous avez la patience et la passion nécessaires pour vous attaquer à un défi de taille, ainsi que l’humilité de vous tourner vers les autres pour trouver des idées, alors vous êtes sur la bonne voie pour y parvenir. "10".

10 - Vous ne savez pas que vous ne savez rien.

9 - Vous ne faites que vous vanter et vous n'êtes probablement pas aussi doué que vous le pensez. Même si vous êtes vraiment aussi bon, il vous manque les compétences politiques pour savoir ce que vous devez faire pour choisir un "9". dit de toi. Cela, ou vous êtes plutôt connu / vénéré dans l'industrie (c'est-à-dire que vous avez écrit un livre une fois et qu'il porte un surnom comme "Le livre ______" ou un acronyme que la plupart des développeurs reconnaîtraient instantanément), et qui n'a pas peur de lancez votre nom.

8 - Vous êtes sacrément bon et vous le savez, mais vous êtes assez malin pour comprendre le stigmate de choisir 9 ou 10 personnes. Vous feriez mieux de pouvoir le sauvegarder.

7 - Vous êtes très bon, mais vous savez que vous avez beaucoup à apprendre.

6 - Vous êtes compétent et avez beaucoup à apprendre, mais vous n’avez pas très confiance en vos capacités. Êtes-vous sûr de ne pas être un 7?

5 - Décent junior dév. Vous venez de sortir de l'école et vous êtes assez intelligent pour réaliser que vous ne connaissez pas vraiment la programmation dans le monde réel, mais vous savez comment pirater du code.

4 - Jeune développeur médiocre. Vous venez de sortir de l'école, mais vos compétences de base en codage laissent à désirer. Vous avez eu de la difficulté à réussir la plupart de vos cours de programmation, mais pour une raison quelconque, vous avez décidé de poursuivre une carrière dans le développement de logiciels. De plus, vous ne croyez pas vraiment en vous-même, alors pourquoi un intervieweur?

3 ou moins - Si vous avez si peu confiance en votre capacité de programmation, pourquoi postulez-vous à la programmation?

Donc, le "correct" La réponse est probablement 5-7, selon le type d'emploi pour lequel vous interviewez. Un 8 a suffisamment d'expérience pour ne pas poser cette question.

Cette question d’entrevue ne traite pas réellement de votre niveau de développement en tant que développeur. Il s’agit de votre degré de conscience de vous-même et de votre capacité à justifier (à l’intervieweur) le chiffre que vous avancez.

La bonne façon de répondre à cette question lors d’une interview (par opposition à une réponse philosophique) est de choisir les domaines les plus forts et de produire des preuves permettant de dire que vous faites partie des X% de développeurs les plus performants dans ces domaines.

Par exemple, vous pourriez dire qu'en créant un logiciel fiable, vous êtes dans le top Y% parce que c'est l'une de vos spécialités. Ensuite, vous pourriez donner quelques exemples. Autrement, vous pourriez dire qu’un moyen raisonnable de juger les compétences en développement est de savoir combien d’argent on gagne.

Ce que vous ne devriez pas faire est de prendre la question à la lettre. Ce n'est normalement pas ce que veut l'intervieweur.

En tant qu’intervieweur de développeurs potentiels, je dirais que la réponse la plus sûre à cette question est entre 6 et 8. J'imagine que la réponse moyenne est autour de 7. Je pense que c'est vraiment plus pour éliminer les incompétents (0-5) ou les ignorants (9-10). Si vous décidez de répondre aux questions 9+, préparez-vous à le prouver.

Si vous souhaitez vraiment répondre sérieusement à cette question, je vous répondrais de la manière suivante: La matrice de compétences du programmeur est un excellent point de départ pour les domaines qu'une telle évaluation devrait englober.

Je connaissais quelqu'un qui utilisait cette question d'entrevue pendant des années. Il a dit que les meilleurs programmeurs avaient tendance à se classer autour de 7. En particulier, ceux qui se disaient 10 étaient généralement aussi confiants en leurs capacités car ils n'avaient jamais rencontré un très bon programmeur. Mais n'ayant jamais rencontré quelqu'un, de qui auraient-ils appris de vraies compétences? Il y a, bien sûr, des exceptions. Mais si vous êtes à l'écoute de la communauté, vous saurez probablement qui sont les exceptions.

Incidemment, ce phénomène ne se limite pas à la programmation. Je l'ai trouvé vrai dans un certain nombre de choses. Les gens qui s'auto-évaluent 10 sur 10 ne sont généralement pas très bons. Les gens qui sont très bons chez X sont bons parce qu’ils ont trouvé d’autres personnes qui sont bons chez X. Ils vont donc se comparer à un groupe de pairs plus difficile et ne vont généralement pas s’auto-évaluer à 10. pour les valeurs de X aussi loin que jouer au ping-pong ou aux échecs.

Il semble y avoir trois niveaux de maîtrise de tout langage de programmation:

  1. Vous corrigez les erreurs de syntaxe immédiatement et sans effort mental dur
  2. Vous pouvez lire le code des autres peuples et déterminer leur intention sans "traduire" le code en langage naturel (ou en un autre langage de programmation)
  3. Une fois que vous avez compris un problème, vous pouvez l'exprimer naturellement dans les constructions fournies par le langage (impératif, OO, fonctionnel ...)

Je pense que cela vous amène sur l’échelle de 1 - > 10

Il est intéressant de noter que la connaissance approfondie d’une langue peut nuire à l’apprentissage d’une autre. Parce qu'une fois que vous pensez en termes de langue 'A', vous devez changer votre cerveau pour apprendre la langue 'B'. Évidemment, cela ne s'applique que lorsque vous passez à un type de programmation complètement différent, par ex. C-> C ++, C # -> F #, Java-> Scala, etc. Je ne pense donc pas qu'il soit possible d'être un "programmeur parfait" dans l'abstrait.

Votre note euler de projet pourrait vous donner une idée (pas vos compétences mais votre passion de ne pas abandonner jusqu'au bout):

http://projecteuler.net/index.php?section=problems

Une approche tout à fait valide du "comment vous évalueriez-vous de 1 à 10?" Il convient de signaler le problème inhérent à l'auto-évaluation . Pour résumer les résultats des expériences de cet article fascinant:

  1. Presque tout le monde s'estime supérieur à la moyenne. Au moins 50% de ces personnes étaient malhonnêtes ou trompées.
  2. Les personnes qui font partie des 25% les plus performants se poussent souvent dans la fourchette des 50 à 75% (c’est-à-dire qu’elles se jugent artificiellement basses).
  3. Les personnes qui se situent dans la fourchette des 50 à 75% ont tendance à s'autoévaluer de manière plus précise.

Vous pouvez raisonnablement résumer ceci: 50% des auto-évaluations sont mensongères et 25% erronées. Alors, vous pourriez choisir de demander au drone d’interview si ils vous font perdre votre temps ou vous évaluent psychologiquement ....

  

Par ailleurs, il serait utile de connaître vos performances pour comprendre ce que vous devez améliorer pour devenir un meilleur programmeur.

En fait, il est important de savoir ce que vous devez améliorer, pour comprendre votre performance. Il suffit de regarder les personnes avec lesquelles vous travaillez ou que vous interagissez et essayez de déterminer quelles sont les choses à leur sujet que vous aimeriez voir mieux faire. Cela vous aidera lentement à devenir un meilleur programmeur. Au fur et à mesure que vous grandissez, examinez les autres équipes et les codes sources (autres projets open source) pour vous aider à vous améliorer.

Je pense qu’une meilleure façon de répondre éventuellement à la question de vous évaluer vous-même consiste à dire que je me classe à x percentile par rapport à toutes les autres personnes avec lesquelles j'ai travaillé.

La réponse courte est que vous vous mesurez à vos pairs. Autrement dit, prenez quelqu'un qui ne sait rien et attribuez un 0, prenez le meilleur programmeur que vous connaissez personnellement et attribuez un 10 - comment vous considérez-vous par rapport à ces deux personnes? Proche du meilleur? Ce serait un 8. Moyen? ce serait un 5.

Ne répondez pas à 0 ou 10 et essayez d’être objectif. Le but de la question n'est pas de vous évaluer en tant que programmeur, mais d'évaluer vos compétences lors de votre auto-évaluation. Votre idée, c'est-à-dire.

Il n’existe qu’une seule mesure permettant de mesurer un bon programmeur: LOC / hr. Toute autre métrique est superflue: p

Si des gens se plaignent de ne rien avoir dans votre assiette alors que plusieurs de vos logiciels sont en production, cela signifie simplement que vos systèmes étaient bien conçus et bien codés, et que, contrairement à d'autres singes à code d'entreprise, une file d'attente de 6 mois de tickets d'incident vous occupant.

Si tel est le cas, tapotez vous dans le dos. Vous faites du bon travail.

N'oubliez pas que les logiciels ne sont pas terminés avant de gagner de l'argent.

En tant qu’interviewer, je voudrais poser cette question pour savoir à quel point un candidat est capable de s’exprimer.

De plus, cela montre à quel point ils sont critiques et quel type de normes ils se fixent pour eux-mêmes et leurs collègues.

non seulement vous dit-il à quel point ils savent sur la programmation dieu / mauvaise, mais également sur la manière dont ils interagiraient avec un client pour extraire les exigences et sur la qualité de leur correspondance pour le reste de l'équipe.

Le rang réel 0-10 est beaucoup moins important.

Je pense qu'il est important de ne pas surestimer l'importance de la connaissance de la langue.

Les principales compétences d’un programmeur concernent la résolution de problèmes et la conception. Au moment où vous commencez à utiliser réellement la langue que vous avez choisie, vous ne faites presque que taper. (En acceptant que l’un des domaines dans lesquels vous avez utilisé vos compétences en résolution de problèmes et en conception, s’agissant de la conception, réside dans la mise en forme de votre code, afin de résoudre le problème de la lisibilité et de la maintenance)

Par conséquent, la mesure d'un programmeur est de savoir dans quelle mesure il peut rassembler un éventail d'idées ou de problèmes pour résoudre un problème particulier. Davantage de compétences consistent simplement à ajouter des domaines de connaissances sur lesquels il est possible de s’appuyer.

Bien sûr, rien de tout cela n’aide en tant que métrique pour déterminer votre propre compétence - mais d’autres ont déjà dit qu’il s’agissait de toute façon d’une question quasiment impossible à mesurer. : -)

Si vous voulez un octet sonore comme réponse:

  

Quand j’ai commencé à travailler de manière professionnelle, j’avais probablement 2 ans. Je dirais que j’avais environ 7 ans, mais chaque jour je travaille pour atteindre 10 ans.

Mots par minute.

À mon avis, cette question est difficile (et dans le contexte d'une interview, elle est même UNFAIR )! J'ai travaillé pour trois entreprises différentes jusqu'à présent. Partout où j'ai rencontré très peu d'excellents programmeurs (bien meilleurs que moi), beaucoup de bons programmeurs et quelques programmeurs qui devraient changer pour le mieux. Mais il est impossible de les classer dans les catégories de 0 à 10!

Il existe de nombreuses "dimensions de la bonté". être programmeur; le processus d'évaluation varie en fonction de celui qui vous intéresse. Voici quelques idées:

  1. Compétence technique: achetez une bonne référence de style "livre de recettes" sur la / une langue que vous utilisez principalement; pour chaque tâche abordée dans le livre, écrivez d’abord votre propre solution, puis comparez-la avec celle (s) proposée (s) dans le livre.
  2. Vitesse de développement: inscrivez-vous à TopCoder et résolvez les problèmes enregistrés ou participez en temps réel. compétition.
  3. Participation à une équipe de développement: achetez le déjeuner pour l’un de vos collègues de confiance et demandez-lui une évaluation honnête de vous-même en tant que membre de l’équipe (par exemple, "Quels sont, selon vous, mes principales forces et faiblesses? membre de notre équipe? Que suggéreriez-vous pour améliorer? ") [ S'il n'y a personne dans votre équipe à qui vous pourriez assister pour une telle discussion, peut-être que vous dit quelque chose à propos de ce numéro. ]
  4. Compétences en communication: asseyez-vous avec un collègue qui n'est pas un développeur et demandez-lui son avis sur votre projet actuel. Faites attention; réfléchissez à la manière dont ses perceptions correspondent aux vôtres.
  5. Estimation: Chaque matin, écrivez ( pour vos yeux ) seulement ce que vous souhaitez accomplir ce jour-là et combien de temps vous comptez y mettre. À la fin de la journée, comparez cette note avec ce qui s'est réellement passé pour voir à quelle distance vous étiez. Pour vous améliorer dans ce domaine, réfléchissez aux raisons des différences et à ce que vous pourriez envisager qui aurait rendu vos suppositions plus précises.

Vous pouvez toujours rivaliser avec d’autres programmeurs et voir vos capacités de réflexion. Vous pouvez essayer les sites comme www.topcoder.com ou www.spoj.pl ou wwww.codechef.com ils vous fournissent des rangs et vous pouvez voir comment vous vous en sortez. Cependant, ceux-ci testent purement votre cerveau algorithmique et non votre façon de coder. Si on me posait cette question, je dirais que je suis un apprenant constant et que je crois qu'il est important de corriger et de corriger les erreurs, je n'ai pas peur de critiquer mon code et je n'hésite pas à demander aux autres de signaler mon peut décider sur quelle échelle cela repose-t-il.

Définissez une échelle de 100%.

Identifiez-vous en restant sur la marque des 100.0.

Identifiez les positions d'autres développeurs et personnalités célèbres de l'informatique.

Calculez combien vous êtes mieux.

On m'a posé cette question à quelques reprises. Quand je viens de sortir de l'université, j'ai dit 7/8. Maintenant que je travaille depuis quelques années, je dis 4 même si je pense que je suis maintenant infiniment mieux.

Je ne vois pas le 0-10 comme un graphique en ligne droite. Je le vois plus comme un graphique exponentiel. Bien sûr, je dis toujours 4 sur 10 MAIS je crois que je suis meilleur que 90% des codeurs. J'ai vu une partie de leur travail et ça me fait peur. J'ai travaillé sur un logiciel bancaire SSL, et il est effrayant de constater qu'il fonctionne réellement. Donc, il y a ces 10% de codeurs qui sont meilleurs que moi, beaucoup mieux que moi. Je ne suis pas sûr de pouvoir les rattraper un jour. Pour arriver à 4 à mon avis, c'est facile. Il est beaucoup plus difficile d’atteindre les 5 à 6h.

Grands codeurs dignes d'un 8, 9 ou 10

Expérience. Le plus large éventail d’expériences que vous avez "mieux" vous êtes. Vous ne savez que ce que vous avez vécu.

Taille et complexité du système que vous avez développé (ou que vous avez réussi à utiliser sans corrompre).

Très bonne discussion ici. Adoré En tant qu’interviewé, j’aimerais donner la réponse suivante:

Je voudrais d'abord analyser la question.

L'analyse dépend de quelques éléments tels que la langue, le cadre, la nature du problème, (Je suis un gars PHP et Wordpress alors la réponse est dans ce contexte) 1. travail correctif du plugin, 2. construire à partir de zéro, 3. Utilisation de l'API

Mon approche commune serait (dans la plupart des cas) 1. comprendre la portée donnée (ou déjà construite) de la fonctionnalité (par rapport à l'énoncé du problème actuel) 2. considérer l'un des meilleurs moyens de résoudre le problème (il existe certainement plus d'un moyen à chaque fois & # 8230;) 3. codage 4. tester des scénarios en temps réel (pour l'optimisation des performances) 5. Dans les phases initiales de tout programmeur, les quatre étapes sont récursives jusqu'à l'obtention de la solution finale, mais à mesure que l'expérience grandit, 1 à 2 étapes devient récursive.

L’aptitude à comprendre la philosophie fondamentale de toute langue est imp. Le repos est une attitude de résolution de problèmes.

Et en PHP, je pense avoir 6,5 ans.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top