Comment savoir si je suis un bon programmeur?


301

Comme la plupart des gens, je me considère un peu au-dessus de la moyenne dans mon domaine. Je suis bien payé, j'ai eu des promotions et je n'ai jamais eu de réel problème à trouver de bonnes références ou à trouver un emploi.

Mais j'ai suffisamment remarqué que beaucoup des pires programmeurs avec lesquels j'ai travaillé pensaient qu'ils étaient parmi les meilleurs. Les mauvais programmeurs qui sont entourés d'autres mauvais programmeurs semblent être les plus auto-induits en erreur.

Je ne suis certainement pas parfait. Je fais des erreurs. Je manque des délais. Mais je pense avoir à peu près le même nombre de mouvements Bonehead que "d’autres bons programmeurs". Le problème est que je définis «autres bons programmeurs» comme signifiant «des gens qui sont comme moi».

Alors, je me demande s’il existe un moyen pour un programmeur de réaliser une sorte d’auto-évaluation raisonnable? Comment savons-nous si nous sommes bons ou mauvais dans notre travail?

Ou, si les termes bons et mauvais sont trop mal définis, comment les programmeurs peuvent-ils identifier honnêtement leurs propres forces et faiblesses, afin de pouvoir en tirer parti et travailler à l'amélioration de celles-ci?


Pourquoi veux tu savoir? Personne ne peut définir ce qu'est le "bien". Si vous faites le travail comme prévu et êtes bien payé, c'est assez bien.
Mert Akcakaya

Réponses:


325

Un bon programmeur comprend qu'il doit continuer d'apprendre et de grandir. Ils s'efforcent de faire de leur mieux à chaque effort, admettent leurs échecs et apprennent d'eux.

Ils sont extraordinairement communicatifs. Non seulement ils sont en mesure d'expliquer des termes techniques complexes à un profane, mais ils se mettent en quatre pour défendre en leur nom les idées du diable afin de s'assurer qu'ils offrent les meilleures options à leur client.

Les meilleurs programmeurs savent et acceptent qu'il existe plus d'une façon de faire les choses, que tous les problèmes ne sont pas un clou et que, parce qu'il y a toujours une meilleure façon de faire quelque chose que la façon dont ils ont planifié leur projet, ils cherchent constamment à apprendre de nouvelles techniques. , technologies et compréhension.

Un bon programmeur adore programmer et le ferait pendant son temps libre, même s’il passe déjà plus de 80 heures par semaine à programmer.

Un bon programmeur sait qu'il / elle n'est pas un grand programmeur. Les véritables grands programmeurs n'existent pas, il n'y a que ceux qui prétendent être grands et ceux qui savent qu'ils ne sont pas grands.


5
Vous clouez ça sur la tête! IMO!

13
Et je pense qu'un corollaire plus général est que vous êtes doué pour ce que vous faites lorsque vous vous souciez de ce que vous faites.

7
Bien dit. En ce qui concerne l’ego / l’humilité, j’ai traversé le MIT AI Lab dans les années 70. Les meilleurs codeurs avaient une certaine confiance. Si vous pensez que vous faites quelque chose d'important, vous pouvez vous tromper, mais si vous ne le faites pas, vous avez probablement raison.
Mike Dunlavey

4
Je suis partiellement d'accord avec le paragraphe 2: "Non seulement ils sont capables d'expliquer des termes techniques complexes à un profane ..." Je connais quelques bons programmeurs. Mais ils ne pouvaient rien expliquer à qui que ce soit en dehors de leur cercle. Ils ne pouvaient pas non plus comprendre ce que le profane essayait de dire. Ils se regardent tous les deux avec des yeux de «daim dans les phares». Je dirai qu'ils sont extraordinairement communicatifs. Pour le reste de vos remarques, je les résumerai en disant qu'un bon programmeur est humble et disposé à partager ses connaissances de la meilleure façon qu'il connaisse.
Résumé du

101
"et le feraient pendant leurs temps libres, même s'ils passaient déjà plus de 80 heures par semaine à programmer." Débarrassez-vous de cette déclaration stupide et je suis tout à fait d'accord avec le reste. Un véritable «bon programmeur» se rend compte que pour travailler plus de 80 heures par semaine, faire autre chose que programmer (pendant les loisirs) est essentiel à la santé physique et mentale et à la productivité au travail.

91

Comme Paul Graham le fait remarquer avec éloquence dans ce pod pod , vous ne pouvez pas. Seuls vos collègues peuvent vous le dire.


4
Cette réponse est tellement meilleure que celle acceptée ...

125
Vos collègues ne peuvent pas dire si vous êtes compétent s'ils sont incompétents. Ils penseront simplement que vous avez des opinions étranges et argumenteront avec passion sur des sujets non pertinents.

2
D'accord, keysersoze. Dans ce cas, personne ne peut vous le dire et vous ne le saurez jamais, à moins d’obtenir de nouveaux collègues. Je pense qu’il n’est pas gratifiant, à long terme, de travailler avec une personne compétente.

1
@keysersoze, mais si je suis réellement incompétent, mes collègues de travail peuvent être compétents et je suis trop bête pour m'en rendre compte;)

1
Paul Graham a également écrit un essai sur les grands programmeurs, soulignant qu'il ne parvenait pas à en nommer de grands, car il n'avait jamais travaillé avec les choix évidents (comme Richard Stallman, Linus Torvalds et autres).
David Thornley

59

J'ai toujours trouvé qu'il était plus facile de juger de votre performance en faisant deux choses.

  1. Entourez-vous d'autres bons programmeurs
  2. Voyez combien ils se plaignent du code que vous écrivez.

Bien sûr, le problème est de trouver de bons programmeurs, et être un bon programmeur n’est pas uniquement une question de codage. Vous devez être capable de bien travailler en groupe, mais aussi de travailler seul.

Passons maintenant au sujet de Robert A. Heinlein et de son point de vue sur le sujet:

"[Un programmeur astucieux] devrait être capable de changer une couche, de planifier une invasion, d'abattre un porc, de créer un bâtiment, d'écrire un sonnet, d'équilibrer des comptes, de construire un mur, de fixer un os, de réconforter les mourants , prenez des ordres, donnez des ordres, coopérez, agissez seul, résolvez des équations, analysez un nouveau problème, plantez du fumier, programmez un ordinateur, préparez un délicieux repas, combattez avec efficacité et mourrez galamment. La spécialisation est réservée aux insectes. "
- extrait du Carnet de notes de Lazarus Long.


12
ça me rappelle un peu la citation: "Les gens stupides s'entourent de gens intelligents. Les gens intelligents s'entourent de gens intelligents qui ne sont pas d'accord avec eux."
Sam Hasler

J'ose dire que c'est la meilleure citation de Heinlein sur SO.

1
Le problème est que d'autres programmeurs peuvent ou non être à votre niveau ou au-dessus de votre niveau, mais ils peuvent ne pas vouloir vous insulter. Je n'ai pas eu beaucoup de retours de la part de trois programmeurs avec lesquels j'ai travaillé, et très minimes de deux autres, un que je considérerais comme "bon" ...

4
... bien que nous soyons stéréotypés comme étant anti-sociaux, d'autres programmeurs peuvent anticiper la défense du code en ne fournissant simplement pas de retour d'informations sur les problèmes qu'il contient. Ce qui peut en fait négliger les problèmes réels du code afin de ne pas créer de problèmes sociaux.

55

Voici la matrice de compétences des programmeurs rien que pour vous: http://www.indiangeek.net/wp-content/uploads/Programmer%20competency%20matrix.htm


Je suis 3-4 sur comme 90% de ces éléments et je ne peux pas coder la merde. Pas trop vite, au moins.

-1 pour la liste de courses.

6
-1 - La connaissance des algorithmes est bonne, mais il est impossible que tout cela soit stocké dans votre tête lorsque quelqu'un vous interroge. C'est à cela que servent wikipedia, google et stackoverflow.

1
Accepter que cette liste est la plupart du temps inutile c'est une bonne source d'idées si vous recherchez des exercices, mais ce n'est pas très utile pour déterminer que vous êtes un "bon programmeur". "Bon programmeur" est plus une attitude qu'une liste arbitraire.

2
+1 Même si je ne suis pas en désaccord avec ce qui a été dit ci-dessus, je pense toujours que cette liste est très bonne. Merci de l'avoir posté. Ce sont certainement les types de critères sur lesquels j’évaluerais un programmeur qui postule un emploi. Et @macnnicken, il ne passe qu'au niveau 3. :)
EMP

38

Jeff a l'un de mes billets de blog préférés sur ce sujet ... Pourquoi suis-je le meilleur programmeur au monde?

"... ce n'est pas notre travail d'être meilleurs que quiconque; nous devons simplement être meilleurs que nous ne l'étions il y a un an."


3
J'aime cette citation, très bien. Et c’est ce qu’est la programmation. "Soyez meilleur dans ce que vous faites et savez jour après jour."

1
Chaque année, au cours des 12 dernières années, j'ai jeté un regard critique sur le code que j'avais écrit une année auparavant et je pensais que c'était une merde totale. Peut-être que je fais quelque chose de bien! Il n'y a rien de pire qu'un programmeur stagnant.

28

Je pense que le fait que vous posiez la question prouve que vous n'êtes pas un mauvais programmeur, donc, à mon avis, vous êtes à mi-chemin. :)

Les mauvais programmeurs pensent toujours qu'ils sont de grands programmeurs, d'après mon expérience.


combien d'expérience avez-vous?

1
Mon expérience est en accord avec votre expérience, c'est pourquoi je m'inquiète chaque fois que je commence à penser que je suis bien.
Kristopher Johnson

21

La déclaration de @ Nick "Les mauvais programmeurs pensent toujours qu'ils sont de grands programmeurs ..." est expliquée par l'effet Dunning Kruger , qui généralise le fait que les personnes qui connaissent un peu le sujet surestiment souvent ce qu'elles savent réellement.

Être un peu facétieux ... moins vous pensez savoir, plus vous en ferez probablement ... à moins que vous ne soyez un idiot vraiment conscient de soi.

Répondre à la question initiale, même si j'ai tendance à penser que plus vous avez d'influence (pas de contrôle), c'est généralement un bon indicateur. Si vous voyez que d'autres suivent votre exemple ou choisissent vos pratiques, vous êtes sur la bonne voie.


L'effet Dunning-Kruger est terriblement humiliant. J'aime essayer de le garder à l'esprit chaque fois que je me sens bien avec quelque chose que j'ai fait!

Les bons programmeurs ne posent pas de questions et votent ensuite les réponses parce qu’ils ne les aiment pas. Ils n'agissent pas comme s'ils savaient tout dans un nouveau sujet et quand un expert répond à une question pour eux, ils ne le rejettent pas parce que ce n'est pas celui qu'ils voulaient.

J'aimerais avoir un indice sur DK à la fac, alors que j'étais un bon exemple d'une extrémité du spectre!
DarenW

18

La réponse qui a obtenu le plus de votes est vraiment pénible. En gros, cela signifie que vous n’avez pas de vie en dehors de la programmation. Qu'en est-il de la famille? Communauté? Loisirs? Dans quel type de profession sommes-nous dans lesquels vous devez être préoccupé au point de devenir une obsession pour être considéré comme "bon"? Je pense vraiment que nous devons avoir une certaine perspective ici.


2
Je suis d'accord. Nous devrions nous efforcer d’être une grande personne avant de devenir un grand programmeur.

Bon endroit pour faire référence au terme programmeur 501: hanselman.com/blog/…
ChrisFletcher


9

Je ne suis pas parfait. Je fais des erreurs. Je manque les délais. Mais je pense avoir à peu près le même nombre de mouvements Bonehead que "d’autres bons programmeurs".

Cette réalisation à elle seule fait de vous un meilleur programmeur que la plupart des mauvais programmeurs.

Beaucoup des pires programmeurs ont tendance à penser qu'ils savent déjà tout ce qu'il y a à savoir et qu'ils ne sont pas conscients de leurs limites. En conséquence, ils n'améliorent jamais leurs compétences.


9

Si vous regardez votre code d'il y a un an, par exemple, et que vous pensez que j'aurais pu le faire beaucoup mieux, vous êtes probablement bon :).


Je viens de regarder mon programme hello world et je pensais que, maintenant, il est beaucoup plus efficace, est-ce que je suis bon? jks jks

9

Voici quelques exemples concrets de mauvaise programmation. Bien sûr, un code similaire était partout copié / collé à 100 endroits. Guy s'est fait virer, mais j'ai entendu dire qu'il avait à nouveau un bon travail. Prendre plaisir:

une)

if (! TableObject.loadList("sql condition").isEmpty()) {  
    List<TableObject> myList = TableObject.loadList("sql condition");  
    ...  
}

b)

public static Type getInstance() {  
    if (instance == null) {  
        return new Type();  
    }  
    return instance;  
}

c)

getForeignKeyObjectProperty1() {  
    return ForeignKeyObject.loadByPrimaryKey(foreignId).getProperty1();  
}  

getForeignKeyObjectProperty2() {  
    return ForeignKeyObject.loadByPrimaryKey(foreignId).getProperty2();  
}  

...

getForeignKeyObjectPropertyN() {
    return ForeignKeyObject.loadByPrimaryKey(foreignId).getPropertyN();
}

ré)

public boolean isHasImage() throws SQLException {
    StringBuilder query = new StringBuilder();
    query.append("select user_name");
    query.append(" from user");
    query.append(" where has_image = 1");
    query.append(" and user_name ='"+getUserName()+"' and user_image is not null");
    Connection c = Database.getInstance().getConnection();
    Statement st = c.createStatement();

    try {
        ResultSet rs = st.executeQuery(query.toString());
        if (rs.hasNext()) {
            return true;
        } else {
            return false;
        }
    } finally {
        st.close();
    }
}

Si vous créez ce type de code, arrêtez la programmation. Si vous ne voyez rien d’étrange dans ce code, arrêtez la programmation. Sinon, vous n'êtes pas mauvais, alors vous pourriez même être bon :)

EDIT: Pour répondre aux commentaires: j'ai eu un emploi avant d'obtenir mon diplôme et ce gars avait déjà quelques années d'expérience en programmation. Il a été congédié quelques mois après mon embauche et je n’étais donc pas en position de tuteur. Les exemples ci-dessus venaient juste de dessus de ma tête - chaque code de code qu'il touchait était défectueux de différentes manières et de manière imaginative. La plupart des choses ont commencé à sortir de l'entreprise après son départ de l'entreprise, car ce n'est qu'à ce moment-là que d'autres personnes ont vu certaines parties du code. C'est en général un gars sympa, avec qui il est agréable de parler, etc., mais il ne sera JAMAIS un bon programmeur, tout comme je ne serai jamais un bon peintre, ni un écrivain ni quoi que ce soit.

Pour mettre cela en contraste avec un autre exemple, un type venu le remplacer était également un étudiant de premier cycle à l’époque. Il a étudié au collège plus célèbre pour la gestion puis la programmation. Il n'est pas trop geek dans le sens où il a programmé quelque chose pour s'amuser ou qui resterait à la maison et lirait des informations sur Java ou la programmation, mais il s'en sort très bien. Il s'est rapidement ajusté et a commencé à produire du code utile et maintenable. Certaines personnes peuvent faire cela, d'autres non, demandez simplement à dailywtf.


11
N'importe qui peut poster du code arbitraire et prétendre que ceux qui ne le comprennent pas sont stupides. Je vais aller dans la ligne muette.

20
Un bon programmeur aurait pris le temps (peut-être 2 minutes?) D'expliquer à son collègue ce qui n'allait pas avec un code tel que celui-ci.

4
D'accord, un bon programmeur aurait expliqué pourquoi ce code était «mauvais» et aurait aidé son collègue à devenir meilleur au lieu de se moquer de lui.

7
J'espère que ce gars a trouvé un travail où ses collègues l'ont aidé à grandir plutôt que de le réprimander.
Robert S.

8
@Morph: le instancechamp n'est jamais assigné à une Typeinstance et reste donc toujours null=)
missingfaktor

8

Vous pouvez essayer différentes choses pour avoir une meilleure idée de votre performance.

  • Comparer les commentaires de code. Voir dont l'examen a révélé plus de problèmes.
  • Demandez quand était la dernière fois qu'ils lisaient des livres qui étaient en marge de leurs études normales. Puis demandez-vous la même chose.
  • Demandez-vous qui apporte de nouvelles idées à l'entreprise (et leur efficacité).
  • Enfin (et le moins), existe-t-il une forme de reconnaissance de l'entreprise?

(J'en ai parlé une dernière parce que, lors de ma dernière entreprise, un programmeur avait reçu le titre de "développeur de l'année" deux fois en trois ans. Après son départ, nous avons trouvé au moins 20 extraits de code dignes de TDWTF. Il a développé le code rapidement , mais pas nécessairement correctement. La direction ne savait tout simplement pas la différence.)


1
+1 pour "comparer les commentaires de code". Cela semble être un roman et une chose très pratique à faire.
j_random_hacker

6

Autorisez les autres développeurs que vous respectez à travailler ou à voir votre code.

Demandez aux gens d’utiliser ce que vous aimez et de voir ce qu’ils pensent.

- Kevin Fairchild


6

Pouvez-vous comprendre cela?

if(rp->p_flag&SSWAP) {
	rp->p_flag =& ~SSWAP;
	aretu(u.u_ssav);
}

:-)


Modded down ??!?!?!?! Quelqu'un ne connait pas son histoire. :-)
Iain Holder

5
On ne s'attend pas à ce que vous compreniez cela

Est-ce une référence à quelque chose? Dans tous les cas, si c'est du code C / C ++, vous avez probablement voulu dire "& =" au lieu de "= &" sur la 2ème ligne. (Je dis "probablement" car en surchargeant l'opérateur ~ () en C ++, vous pouvez faire la compilation ci-dessus ... Mais je suis presque sûr que ce n'est pas ce que vous vouliez.)
j_random_hacker

1
@j_random_hacker Je soupçonne que = & a raison car ce code a été écrit par Dennis Ritchie. Voir cm.bell-labs.com/who/dmr/odd.html
Iain Holder

1
@IainMH, dmr admet également que c'était un buggy.

4

La simple pensée que vous avez besoin de vous auto-évaluer vous permet de vous démarquer des autres.

L'une des façons dont je me juge toujours est d'écouter ce que mes collègues ont à dire sur moi. L'astuce consiste à trouver les bonnes personnes.


4

C'est toujours subjectif qui est un bon programmeur. Je conviens avec Nick que le simple fait de poser la question est un pas dans la bonne direction. Je pense que le désir constant d’apprendre plus et d’améliorer est ce qui fait un bon programmeur.


4

Pour moi, les meilleurs programmeurs ne cherchent jamais de travail. Ils ont des offres permanentes pour de nouveaux postes uniquement en fonction de leur réputation. Donc, un bon programmeur peut avoir des offres d’employeurs précédents à revenir, s’il le souhaite. Ou bien un bon programmeur aurait demandé à d'anciens collègues de venir travailler pour eux dans une nouvelle entreprise.

En termes de forces / faiblesses, vous les connaissez probablement déjà. Sinon, demandez à une personne plus âgée de votre équipe. Il n'est même pas nécessaire que ce soit un développeur. Un bon chef de projet connaît les forces / faiblesses des programmeurs. En outre, les traits qui définissent un bon programmeur ne se limitent pas au code. La compréhension de l'entreprise, les compétences en communication, le jugement, etc. sont toutes effectuées en dehors de votre IDE.


2
Vous pourriez être un grand programmeur et une personne horrible. Souhaitez-vous plutôt travailler avec une personne agréable qui en sait peut-être moins, mais qui est disposée à apprendre ou avec un imbécile qui est un programmeur fantastique à tous points de vue? Donc, ce que vous décrivez est un bon employé, pas un bon programmeur. ;)

2
Je ne comprends pas d'où vient ce commentaire. Les deux questions principales auxquelles je m'adresse sont les suivantes: "Comment savoir si je suis un bon programmeur?" et 'Comment connaître mes forces / faiblesses?' Qu'est-ce que tout cela parle de saccades et de personnes horribles. J'ai des opinions sur ces choses, mais je ne pense pas qu'elles se rapportent à ma réponse.

2
Obtenir une réputation est souvent plus une question de relations publiques et de confiance en soi que de capacité réelle.
David Thornley

En supposant que "la capacité" est une capacité technique, alors être un bon programmeur est plus qu'une "capacité réelle". L'aptitude technique n'est qu'une pièce du puzzle.

3

Je pense que c'est à peu près comme se demander comment vous pouvez savoir si vous êtes une personne agréable.

Malheureusement, je pense que la réponse est que seules d’autres personnes crédibles peuvent vous le dire. Je ne pense pas que ce soit quelque chose que vous puissiez déterminer avec précision pour vous-même (du moins, c'est très difficile - mais je pense que cela pourrait être impossible).


3

je dirais simplement: si vous êtes passionné (je veux dire VRAIMENT passionné) de ce que vous faites, si vous êtes flexible (une autre langue, une nouvelle technologie, la refonte complète d'un ancien projet - faisons-le!), si vous continuez à apprendre et améliorez vos compétences et ne pensez jamais que vous êtes assez bon pour arrêter - alors vous êtes un bon programmeur!


3

95% de tous les programmeurs pensent appartenir au top 5% des programmeurs, les 5% restants étant des gestionnaires. Donc, si vous êtes un gestionnaire, vous n'êtes probablement pas un bon programmeur, sinon vous l'êtes probablement.


... et 25% savent qu'ils sont dans le top 1%;)

3

Je pense que c'est plus une question de savoir ce que vous faites avec vos compétences en programmation. Être un bon programmeur, c'est bien, mais qu'importe si vous codez un logiciel de banque toute la journée (sans vouloir vous offenser). Ça ne fait rien.

Pour vraiment vous prouver que vous êtes un bon programmeur, prenez un projet parallèle intéressant et difficile. Cela montre quelques choses: vous êtes intéressé par la programmation sur votre temps libre et appréciez vraiment le sujet - ceci est essentiel pour être un bon programmeur. Cela montre la polyvalence en ce que vous pouvez étendre vos compétences au-delà de ce que vous faites dans votre environnement de travail. Cela montre également votre motivation et votre créativité: vous avez vous-même défini un problème et vous prenez des mesures pour le résoudre.

Tous ces aspects définissent un bon programmeur pour moi.


3

Ma réponse sera politiquement incorrecte. Cependant, je suis en fait le fondateur d'une start-up et mon travail consiste à embaucher les meilleurs programmeurs.

Comment savoir quelles personnes seront de bons programmeurs ou peuvent être de bons programmeurs?

1 mot: QI.

Le QI est pour la programmation comme la hauteur est pour les joueurs de basket.

Je mettrais les compétences en mathématiques comme un autre indicateur plus politiquement correct. Mes professeurs d'informatique m'ont dit qu'il existe un critère qui permet de prédire correctement qui réussira les cours de programmation. Scores au lycée. Celles-ci sont de toute façon un QI.

Cela peut être une surprise. On nous dit que la programmation est un travail de niveau universitaire. Devinez quoi, je me fiche de diplôme. Je me soucie seulement de 3 choses.

  1. Compétences en programmation (pouvant être testées).
  2. Aptitude.
  3. Bon sens (pas trop bas) les compétences des gens.

Malheureusement, le QI ne mesure qu'une chose. Alors je fais des tests.

Je pose des questions aux gens. Une question simple Je pense que les enfants des écoles primaires devraient pouvoir y répondre.

Je pose des questions comme:

  1. Quelle est la distance entre la main courte et longue de l'horloge à 7h35
  2. Si je vais de Jakarta à Semarang et que je veux maintenir une vitesse de 60 km / heure. Ensuite, les deux premières heures, je conduis 100 km / heure. À quelle vitesse dois-je aller pour le reste du voyage afin que ma vitesse moyenne soit de 60 km / heure?

Si vous regardez attentivement, ces questions n'exigent pas du tout de créativité. Seul le bon sens. Tous les enfants des écoles primaires ayant un QI peuvent répondre à cette question.

La plupart des diplômés ne peuvent pas. Maintenant, imaginez si quelqu'un ne peut pas répondre à cela? Peut-il programmer? Pensez-y. À quelle fréquence vous devrez spécifier ce qu'il doit faire?

Vous pouvez également poser des questions telles que Microsoft qui nécessitent de la créativité. Vous pouvez poser des questions sur la façon de peser 8 balles dans une balance pour savoir laquelle est la plus lourde. Le problème avec de telles questions est que cela implique la chance. Cependant, certaines sont assez faciles, cela devrait être une exigence minimale.

Obtenir un programmeur génial peut améliorer les qualités des autres programmeurs. Obtenir un programme légal peut faire baisser le moral de tous les autres.

Après que les gens puissent répondre à des questions comme celle-ci, ce qui est très facile, je leur demanderais d'écrire du code de confiture Google.

Les bons programmeurs peuvent résoudre le code Google Jam et prévoir quels problèmes sont les plus faciles.


2

à mon humble avis, vous êtes un bon programmeur si

-vous avez un fond théorique solide. réinventer la roue ainsi qu'un algorithme ou un framework est une perte de temps, la plupart du temps.

-Vous pouvez parfois voir les choses et les problèmes d'un point de vue biaisé. cela peut vous amener à trouver des solutions innovantes.

-Vous consacrez du temps et de l’argent à la mise à jour des meilleurs outils et des meilleures compétences.

-votre code est facile à modifier. si vous concevez un code propre, élégant et compréhensible, le modifier ne sera pas douloureux.

-si votre taux de code / bugs est raisonnablement élevé. Je sais que cela peut sembler trivial, mais je connais de nombreux développeurs créatifs et compétents qui sont néanmoins très enclins à faire des bogues triviaux. cela nuit grandement à leur efficacité et à leur utilité.

Les gens autour de vous savent que vous pouvez aider à décider des choix à faire.

-Vous pouvez résoudre des problèmes en utilisant différents outils. les mauvais programmeurs continuent à utiliser le même outil (langage, technologie, architecture, etc.) quel que soit le problème qu'ils rencontrent

-Vous continuez à apprendre, vous êtes curieux.

-vous avez la programmation amusante, après toutes ces années


2

"Monsieur, j'ai traversé ça depuis Alpha jusqu'à Omaha, et je vous dis que moins un homme en sait, plus le bruit qu'il fait est grand et plus le salaire qu'il commande est élevé." Mark Twain

... ma conclusion est que les bons programmeurs ont un salaire bas et font peu de bruit ... :)


2

Meilleur programmeur: Terminez la tâche avec le plus petit nombre d'instructions de code à temps.


1

Combien de bogues votre code a-t-il par métrique? (c.-à-d. bugs par ligne) Combien de votre code doit être recodé lorsque de nouvelles fonctionnalités doivent être ajoutées? Vos collègues ont-ils des problèmes pour modifier votre code?

En fin de compte, il est presque impossible de répondre à la question étant donné que la question "Qu'est-ce qu'un code de qualité?" Est toujours un sujet très controversé après toutes ces années.


1

J'aime vraiment ce que Adam V a dit ci-dessus.

En plus de ce que d'autres ont dit, examinez la maintenabilité et l'historique de support de votre travail. Si votre code nécessite de gros travaux de maintenance et qu'il est constamment corrigé ou difficile à modifier, il peut indiquer sa qualité. Mais ceux-ci peuvent aussi être des indicateurs de faibles besoins.


1
"Mais cela peut aussi être un indicateur de faibles besoins." très probablement notre cas ici. de mauvaises exigences nous ont fait réécrire tout un module.

1

C'est très difficile de s'auto-évaluer. Les personnes incompétentes ont tendance à avoir des évaluations exagérément gonflées de leurs propres capacités.

Une bonne mesure consiste à déterminer si d'autres personnes que vous respectez en tant que programmeurs souhaitent travailler sur / avec le code que vous avez écrit. Si vous avez la possibilité de travailler directement avec vous ou d'hériter du code que vous avez écrit, allez-vous le refuser? D'accord à contrecœur? Ou sautez sur l'occasion d'apprendre de votre travail? Cette technique fonctionne encore mieux s'il s'agit d'un pair, et non d'un sous-marin ou de quelqu'un qui pense qu'il peut être bénéfique de vous faire sentir bien.


1

Si vous voulez vraiment le savoir, envoyez du code à vos pairs et demandez une révision (constructive) du code. Dans le pire des cas, vous apprenez quelque chose. Le simple fait que vous soyez ici sur ce site à la recherche de l'illumination vous distingue déjà des masses non lavées. (sauf si vous êtes juste là pour vous caresser l'ego. :-)

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.