IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Actualités Discussion :

Qu'est-ce qui fait un bon programmeur ?

  1. #1
    Responsable .NET

    Avatar de Hinault Romaric
    Homme Profil pro
    Consultant
    Inscrit en
    janvier 2007
    Messages
    4 570
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Consultant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : janvier 2007
    Messages : 4 570
    Points : 252 332
    Points
    252 332
    Billets dans le blog
    118
    Par défaut Qu'est-ce qui fait un bon programmeur ?
    Qu'est-ce qui fait un bon programmeur ?
    Un senior liste cinq caractéristiques d'un bon programmeur

    Quand peut-on dire que l'on est un bon programmeur ? Quels sont les éléments distinctifs d'un bon programmeur ? Certains d'entre nous se sont probablement déjà posés la question ou ont eu l’occasion d'en débattre.

    Henrik Warne, un développeur senior, dans son blog « réflexion sur la programmation », liste cinq points clés qui permettent de distinguer ou de se définir comme un bon programmeur. Les points qu'il évoque sont les suivants :


    1 - Décomposition du problème

    Selon Warne, l'objectif de la programmation est de résoudre des problèmes. Ainsi, « avant d’écrire le code, le programmeur doit avoir une idée claire sur la démarche pour résoudre le problème ». Un bon programmeur sera donc celui qui sera capable de décomposer son problème au point d'aboutir à des petits éléments pouvant être résolus facilement. « Il ne s'agit pas simplement de résoudre le problème. Un bon programmeur trouve le moyen de modéliser le problème de façon à ce que le programme à mettre sur pied soit facile à implémenter et à tester », explique Warne.

    2 – Analyse du scénario

    Warne explique dans son billet de blog qu'un bon programmeur est celui qui a la capacité d’anticiper tous les scénarios possibles dans son programme (logique du programme, événements internes et externes qui peuvent se produire). « Pour tenir compte des différents chemins dans la logique, il se pose les questions : qu'est-ce qui se passe si cet argument est nul ? Et si aucune de ces conditions n'est vraie, etc. », affirme-t-il, concluant que le bon programmeur a la capacité de penser comme un testeur.

    3 – Nommage

    Le nommage des variables, des classes et des méthodes est un aspect clé de la programmation. Lorsque cela est bien fait, le programme « devient en grande partie autodocumenté, ce qui signifie que la fonction du programme est tout à fait claire à la moindre lecture du code », explique Warne.

    Cependant, le nommage en programmation est l'une des activités les plus difficiles pour le programmeur, selon lui.

    4 – Cohérence

    « Le plus grand défi dans la programmation est probablement la gestion de la complexité. La cohérence est un moyen de gérer la complexité. Il réduit une partie de la complexité en nous permettant de voir les modèles et déduire comment les choses sont nommées, utilisées et manipulées », affirme Warne, qui explique que la cohérence permet au développeur de ne pas avoir à utiliser la puissance du cerveau pour se rappeler des exceptions et des variables aléatoires. Au lieu de cela, il peut se concentrer sur la « complexité essentielle et la complexité non accidentelle. »

    D'après Warne, la cohérence est importante dans tous les aspects de la programmation. Elle s'applique aux noms de variables, méthodes, structures, interfaces utilisateur, gestions des erreurs, documentations, etc.

    5 – L'apprentissage

    Le développeur apprend constamment. « Avant d’intégrer une nouvelle fonctionnalité, il doit comprendre ce qu'elle est censée faire. Avant de modifier un code existant, il doit comprendre le fonctionnement de celui-ci, pour adapter ce qui doit être ajouté », explique Warne, pour qui l'apprentissage rapide rend un développeur plus efficace.

    Au vu de l'évolution des plateformes et des langages, Warne conclut que la vie d'un programmeur n'est jamais ennuyeuse. Une situation qui convient parfaitement au geek qu'il est.


    Source : blog Henrik Warne


    Et vous ?

    Selon vous, qu'est-ce qui fait un bon programmeur ? Êtes-vous d'accord avec Warne ?
    Vous souhaitez participer aux rubriques .NET ? Contactez-moi

    Si déboguer est l’art de corriger les bugs, alors programmer est l’art d’en faire
    Mon blog, Mes articles, Me suivre sur Twitter
    En posant correctement votre problème, on trouve la moitié de la solution

  2. #2
    Membre habitué
    Homme Profil pro
    Développeur informatique
    Inscrit en
    décembre 2011
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : décembre 2011
    Messages : 50
    Points : 194
    Points
    194
    Par défaut
    tiens encore une énième variation sur le thème "qu'est-ce un bon développeur/mouton à 5 pattes ?"

    la dernière news de ce type remontait à il y a quelques jours :

    http://www.developpez.com/actu/72719...us-productifs/

    je pense qu'il y a plusieurs échelons à gravir, on ne nait pas "bon développeur" mais on le devient petit à petit, et souvent dans la douleur :

    - échelon zéro: le point de départ, décrocher son diplôme en maitrisant certains points : l'algorithmie, les concepts de la programmation objet, un peu de base de données ( SQL ), un peu de web, un peu de UML, ça donne un développeur bac+2,

    - échelon un: on a le diplôme, quelques stages et CDD, on est tout content mais on code comme un débutant en faisant plein d'erreurs, et en plus l'entreprise ne fait rien pour nous mettre dans le droit chemin ( c'est même l'inverse qui se produit ! Ah les SSII... ), le code n'est pas optimisé, on se rend compte que l'école ne nous a pas appris à faire des tests unitaires, ni à programmer en modèle-vue-contrôleur ( MVC ), et pire on ne connait pas les principaux framework de développement web, du coup on réinvente sans cesse la roue

    - échelon deux : on a corrigé les manquements de la formation, on ne réinvente plus la roue grâce à la maitrise d'un ou deux framework à la mode, on produit du code plus ou moins optimisé mais on sent qu'on peut encore mieux faire,

    - échelon trois : on a découvert l'existence des design pattern, l'extreme programming, ça a été un long chemin de croix pour tout maitriser mais ça va beaucoup mieux, on peut enfin s’auto-proclamer "développeur 5 étoiles"

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    mai 2013
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : mai 2013
    Messages : 3
    Points : 7
    Points
    7
    Par défaut
    Selon moi, le bon developpeur est celui qui est capable de faire un code auto descriptif et modulaire aisement, et qui met plus l'emphase sur la qualiter du code que sur son optimisation, lorsque loptimisation est negligable.

  4. #4
    Membre expérimenté
    Homme Profil pro
    Développeur
    Inscrit en
    août 2003
    Messages
    610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : août 2003
    Messages : 610
    Points : 1 329
    Points
    1 329
    Par défaut
    Des outils de qualité de code (comme SonarQube aident a devenir un meilleur développeur.

    Le bon développeur utilise aussi un GIT ou similaire et décrit bien les changements.

    L'UML, ça aide au début pour avoir une vison d'ensemble du projet et sur les points compliques (il faut pas tomber dans l'excès, ça prend du temps mine de rien).

  5. #5
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    janvier 2009
    Messages
    4 726
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : janvier 2009
    Messages : 4 726
    Points : 11 359
    Points
    11 359
    Par défaut
    Le mauvais développeur, il prends son cahier des charges, l'analyse, puis développe. OK.

    Le bon développeur, il prends son cahier des charges, l'analyse, puis développe. Mais c'est pas pareil...


  6. #6
    Expert éminent

    Avatar de deusyss
    Homme Profil pro
    Expert Python
    Inscrit en
    mars 2010
    Messages
    1 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Expert Python
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : mars 2010
    Messages : 1 659
    Points : 8 438
    Points
    8 438
    Par défaut
    La difference entre le bon et le mauvais dev !!! C'est à ça aussi que je pensais

    SInon, des choses interessantes, mais deja souvent vu. Ce qui varie c'est le point de vue de chaque auteur, inspiré de sa propre experience...

    Une partie de cet article rentre en contradiction (je trouve) avec un ancien article ou l'auteur stipulait qu'il n'était pas un compilateur. Eh oui, c'est effectivement mieux d'anticiper un maximum, mais on ne peux jamais el faire à 100% malheureusement.
    "La connaissance appartient à tout le monde" (Film Antitrust)

    Tout le nécessaire pour Python:
    *News/Accueil *Cours/tutoriels *FAQ
    *Forums *Outils dédiés *Mon espace personnel avec mes Articles, Cours et Tutoriels

  7. #7
    Expert confirmé Avatar de Zefling
    Homme Profil pro
    Développeur Web
    Inscrit en
    avril 2007
    Messages
    1 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : avril 2007
    Messages : 1 122
    Points : 4 352
    Points
    4 352
    Par défaut
    Citation Envoyé par asgard20032 Voir le message
    Selon moi, le bon developpeur est celui qui est capable de faire un code auto descriptif et modulaire aisement, et qui met plus l'emphase sur la qualiter du code que sur son optimisation, lorsque loptimisation est negligable.
    Oui, ça serait vrai sur du code fait par une seule personne. Dans la réalité c'est rarement le cas. T'as 10 personnes qui sont passées sur le code que le dév doit modifier et t'as rarement le temps de tout remettre en ordre. De plus, tout le monde n'a pas la maîtrise parfaite de n frameworks utilisés sur l'ensemble des projets.

    J'ai l'impression que le type décrit un dév parfait dans un monde parfait. Sauf que le monde ne l'est pas, et je dirais que une bonne qualité, c'est de savoir demander de l'aide quand on sait pas ou que l'on ne comprend pas plutôt que de faire n'importe quoi.

    En tout cas, le point 2 me semble utopiste. Personne peux tout prévoir, sinon c'est un dieu. Et une très grande modularité du code prend énormément de temps que l'on a rarement sauf si on fait de la R&D, et encore ça ne sera jamais parfait.

  8. #8
    Membre expert

    Avatar de germinolegrand
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    octobre 2010
    Messages
    738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : octobre 2010
    Messages : 738
    Points : 3 891
    Points
    3 891
    Par défaut
    En tout cas, le point 2 me semble utopiste. Personne peux tout prévoir, sinon c'est un dieu. Et une très grande modularité du code prend énormément de temps que l'on a rarement sauf si on fait de la R&D, et encore ça ne sera jamais parfait.
    Le point 2 se résume à : penser à tout ce que le langage et le compilateur ne peuvent pas penser à ta place. Ce qui est tout à fait faisable, et plutôt nécessaire pour s'éviter un temps de debuggage long et fastidieux.

    Pour la modularité du code, tout l'enjeu est de savoir où s'arrêter, ce qui est à mon avis une compétence qui ne s'acquière qu'avec l'expérience.

  9. #9
    Membre habitué
    Homme Profil pro
    Inscrit en
    septembre 2005
    Messages
    177
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : septembre 2005
    Messages : 177
    Points : 196
    Points
    196
    Par défaut
    J'entends toujours qu'un bon code est modulaire, lisible, testé, optimisé, mais le meilleur n'est il pas le code suffisant ? Il y à la théorie de la bonne programmation et les moyens qu'elle nécessite. N'avons nous pas toujours des contraintes matériels au delà de ce qu'est théoriquement un "bon code".

    Je crois qu'on a tous déjà fait de petits projets dans l'urgence "mal codé". Souvent on ne les retouchent pas pendant des années, car ils font ce qu'on leur demande. Au final on ne les change que quand les technologies ont évolué d'une manière qu'on aurait pas pu prévoir (breaking change, faillite d'une techno, etc...).

    Les développeurs ne se perdent ils pas trop dans des considération technique ? Alors que ce qu'on leur demande la plupart du temps c'est de répondre "rapidement" a un besoin ? Je ne dit pas de faire de très gros projet en free-style non plus => la notion de "suffisant". Parfois ne faut il pas "mal programmer" pour être un "bon programmeur" ?

    Selon Warne, l'objectif de la programmation est de résoudre des problèmes.
    Je suis bien d'accord avec ce point, mais résoudre des problèmes techniques ou ceux de l'entreprise ?

  10. #10
    Membre habitué
    Homme Profil pro
    Développeur informatique
    Inscrit en
    décembre 2011
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : décembre 2011
    Messages : 50
    Points : 194
    Points
    194
    Par défaut
    oui ce genre d'article oublie souvent que les développeurs sont avant tout au service de l'entreprise, avec des contraintes, un contexte qui fait que tous ces bons conseils ne sont pas toujours applicables dans la vie réelle

  11. #11
    Membre éprouvé
    Profil pro
    Inscrit en
    mai 2011
    Messages
    483
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : mai 2011
    Messages : 483
    Points : 1 048
    Points
    1 048
    Par défaut
    Mouais le bon développeur se sera toujours la personne parmi ceux te ressemble parce que tu penses toujours que tu es le meilleur développeur.

    Enfin avec l’expérience, le meilleur développeur c'est toujours celui qui est capable de se remettre en question.
    Ceux qui évolue qui aime développer pour les autres.

  12. #12
    Futur Membre du Club
    Profil pro
    Developpeur
    Inscrit en
    décembre 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Developpeur

    Informations forums :
    Inscription : décembre 2012
    Messages : 3
    Points : 6
    Points
    6
    Par défaut
    Potomac, tu a fais le meilleur résumé que tout ces articles réunis =))

  13. #13
    Nouveau Candidat au Club
    Homme Profil pro
    Informaticien
    Inscrit en
    juillet 2014
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : juillet 2014
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Mes idées de mauvais programmeur.
    Un aspect qui me semble important est de produire des noms de variables suffisamment différenciés pour que, si on fait une recherche dessus, cela ne ramène que ce qu'on attend et pas plein d'autres choses en plus.
    Tout en obéissant à des standards; d'ailleurs explicités quelque part dans le code. (et trouvable si on cherche sur le mot "standard")
    Des noms de variables à la fois parlants, mais ne faisant pas trois kilomètres non plus...
    Mais on se rend vite compte que chacun à son style.
    Une définition totalement différente du bon programmeur pourrait être : celui qui produit le code le plus efficace et simple possible en 10 fois moins de temps que les autres.

  14. #14
    Rédacteur

    Homme Profil pro
    Expert iOS
    Inscrit en
    juin 2005
    Messages
    413
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Expert iOS

    Informations forums :
    Inscription : juin 2005
    Messages : 413
    Points : 1 592
    Points
    1 592
    Billets dans le blog
    1
    Par défaut
    A mon humble avis, ce qui fait un bon programmeur comme dans toutes les activités, c'est avant tout la passion. Pour devenir vraiment bon dans quelque chose, il faut y prendre du plaisir. Ceux qui prennent du plaisir à faire leur travail ont plus de motivation et d'enthousiasme et surtout l'envie permanente de s'améliorer. Ils fournissent généralement un effort nettement supérieur en auto-formation et veille technologique.
    A l'inverse, ceux pour lesquels leur activité n'est qu'un moyen de remplir le frigo n'ont pas de raison de faire du très bon travail. Après tout quand on en fait du bon, voir du moyen, au lieu du très bon on est payé pareil. Ceux là travaillent avec à l'esprit le soucis de faire moins et pas le soucis de faire mieux. Ils se contentent souvent de faire "du code qui marche", ce qui n'est pas du tout la même chose que "du code de qualité".

  15. #15
    Membre régulier
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    mai 2014
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : mai 2014
    Messages : 43
    Points : 97
    Points
    97
    Par défaut
    Lorsque ce monsieur Warme parle de complexité, j'aimerais savoir si il s'agit de la complexité du code (Qualimetrie, lisibilité, ...) ou si il fait référence à la complexité algorithmique qui s'exprime en O(...), j'opterai pour la première réponse mais je ne suis pas sûr.

    merci

  16. #16
    Invité
    Invité(e)
    Par défaut _ _ _
    Un bon programmeur:
    ==============
    Pour moi un "bon programmeur" n'est pas forcement celui qui connait le plus de langage de programmation, ni celui qui a le plus de connaissance dans le fonctionnement des machines, mais simplement celui qui à la capacité de créer des algorithmes cohérents et lisible, tel que ses derniers soient réutilisable pour programmer dans n'importe qu'elle langage de programmation.

  17. #17
    Expert confirmé Avatar de Zefling
    Homme Profil pro
    Développeur Web
    Inscrit en
    avril 2007
    Messages
    1 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : avril 2007
    Messages : 1 122
    Points : 4 352
    Points
    4 352
    Par défaut
    Citation Envoyé par Ratator Voir le message
    Un bon programmeur:
    ==============
    Pour moi un "bon programmeur" n'est pas forcement celui qui connait le plus de langage de programmation, ni celui qui a le plus de connaissance dans le fonctionnement des machines, mais simplement celui qui à la capacité de créer des algorithmes cohérents et lisible, tel que ses derniers soient réutilisable pour programmer dans n'importe qu'elle langage de programmation.
    Oui, mais après ça dépends dans quoi tu bosses. Personnellement, je fais bien plus souvent des «*algos » chez moi qu'au boulot.

  18. #18
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    novembre 2012
    Messages
    3 344
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : novembre 2012
    Messages : 3 344
    Points : 9 866
    Points
    9 866
    Par défaut
    Un bon programmeur est un programmeur qui cherche à savoir ce qui fait du programmeur un bon programmeur.
    NB: cela s'applique également aux bûcherons
    One Web to rule them all

  19. #19
    Membre éclairé
    Homme Profil pro
    Technicien réseau
    Inscrit en
    juin 2011
    Messages
    412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : Suisse

    Informations professionnelles :
    Activité : Technicien réseau
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : juin 2011
    Messages : 412
    Points : 800
    Points
    800
    Par défaut
    Citation Envoyé par tatayo Voir le message
    Le mauvais développeur, il prends son cahier des charges, l'analyse, puis développe. OK.

    Le bon développeur, il prends son cahier des charges, l'analyse, puis développe. Mais c'est pas pareil...

    Quelqu'un a regardé Papy Grenier

  20. #20
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    janvier 2008
    Messages
    623
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : janvier 2008
    Messages : 623
    Points : 1 369
    Points
    1 369
    Par défaut
    C'est moi ou ce type d'article revient tous les mois pour dire exactement la même chose ? (Nommage, analyser le problème, apprentissage constant...)

    Une chose appréciable serait que les blogueurs qui pondent se genre d'article chacun leur tour nous donnent quelques conseils pour les mettre en application.

    Le nommage. Comment bien nommer une variable ? numeroDeTelephone, numTel, ndt, phoneNumber ?

    Pour la personne qui dit qu'il faut avant tout être passionné,
    Pourquoi est-ce qu'un développeur doit être passionné pour bien faire son travail?
    Est-ce qu'on en ai encore à se dire que le meilleur c'est celui qui code toute la nuit et qui à 15 projets perso en cours?
    Un déménageur peut parfaitement faire son boulot sans être passionné, pourquoi ça ne pourrait pas être le cas dans le développement informatique?

Discussions similaires

  1. Qu'est ce qui fait un job de rêve ?
    Par harerama dans le forum Entretien
    Réponses: 5
    Dernier message: 03/11/2011, 08h58
  2. Qu'est-ce qui fait le succès du réseau Twitter
    Par randriano dans le forum La taverne du Club : Humour et divers
    Réponses: 5
    Dernier message: 06/09/2011, 11h28
  3. Qu'est ce qui fait planter à l'appel d'une méthode
    Par JeanNoel53 dans le forum Général Java
    Réponses: 2
    Dernier message: 19/10/2010, 17h57
  4. Réponses: 21
    Dernier message: 05/12/2007, 17h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo