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

Débats sur le développement - Le Best Of Discussion :

À quel stade peut-on réellement commencer à se déclarer expert dans une compétence ?


Sujet :

Débats sur le développement - Le Best Of

  1. #1
    Membre chevronné
    À quel stade peut-on réellement commencer à se déclarer expert dans une compétence ?
    À quel stade peut-on réellement commencer à se déclarer expert dans une compétence ?
    Dites-nous ce que vous en pensez.

    La question parait banale, mais au fond, elle ne l’est pas. Un peu plus de précision est nécessaire pour se fixer dans un contexte. Parmi les sujets de recherche actuels en génie logiciel, c'est la mise en place des jeux sérieux qui visent à permettre de jouer et perfectionner ses compétences sur la mise en place d'un processus de développement, le management d'équipe au sein du processus et l'évolution des collaborateurs.

    Ce n'est pas facile de bien mesurer et cadrer le niveau d'un collaborateur. La notion d'expert peut être assez suggestive. Par là, on voit que c'est intéressant de discuter et débattre un peu sur des sujets pareils.

    Le but de ce débat nait de la récente intégration du profil professionnel sur Developpez.com. Chacun peut mentionner ses compétences, ce qu'il sait faire selon son niveau. Ce n'est pas pour décorer le site que cette nouveauté a été intégrée, mais pour des objectifs dont le besoin des recruteurs pourrait faire partie. Alors, est-ce que chacun sait comment bien le remplir ? Personnellement, je veux bien apprendre des idées des autres.

    En effet, quelles sont les bornes des niveaux : débutant, intermédiaire, confirmé et expert pour une compétence donnée ? Certes, ce n'est pas comme des maths où l'on peut se référer à des intervalles [0,1], [1,3], etc. mais, ce qui est sûr est que celui qui est normalement de niveau confirmé n'allait pas douter qu'il est déjà intermédiaire. Mais quand peut-il se dire à 100% confirmé dans une compétence ? Là, il peut rester comme ça sans pouvoir décider alors que d'autres disent des mensonges. C'est ça qui est grave.

    Sans oublier que dans nos CV, on ne mentionne pas toujours qu’on est de tel niveau avec telle compétence. Même s'il y en a beaucoup qui le font. Mais durant l'entretien, on exprime notre niveau dans telle compétence ou on mesure nos compétences et nos performances au cours du temps. Mais j'ai mentionné le cas d'expert, le titre, parce que la question reste un peu délicate, mais la discussion concerne le tout.

    Pour le cas d'expert, on ne va pas parler de ceux qui sont experts sans discussion, avec aussi des témoignages des autres, mais les experts pour une technologie ne sont pas tous égaux. Il y a plusieurs niveaux à mon avis. Alors, comment se déclarer expert pour une compétence donnée ? Sans qu'une personne conteste l'évaluation.

    Est-ce parce que je sais faire des bons produits avec un langage que je peux me déclarer expert ? Est-ce que la maîtrise de toutes les API standards d'un langage (pas aussi simple que ça), et avoir passé beaucoup de temps avec peut suffire pour permettre de nous déclarer expert ? Ou bien l'API de base suffit-elle ?

    Est-ce qu'avoir une très bonne maîtrise dans un domaine précis d'un langage qui répond à un besoin donné suffit de dire qu'on est expert dans le langage ?

    Par exemple, on peut trouver une personne qui est très forte en PHP, il fait tout ce qu'il faut avant même le délai imparti. Pourtant, il est incapable de coder en PHP une application pour la couche TCP/IP, ou coder son propre serveur websocket au cas où il le voudrait ou qu'on l'exige. Certains peuvent le considérer expert vu ses capacités. L'est-il ou pas ? Pareil pour une autre techno .NET, Java, C/C++... En Java par exemple, un développeur peut ignorer comment créer des sockets multipoints ou utiliser l'API Reflection : grandement utilisé par le JDK. Il a une expertise en JavaEE : bâti des API de base du langage qu'au fond un développeur peut ignorer. Est-ce que cela suffit pour être appelé expert en Java ? Les exemples sont très nombreux.

    Et comment peut-on aussi juger une personne qui a passé beaucoup de temps à développer dans un langage, mais ne se met pas à jour, est-il un expert ou pas ? Ou bien il suffit de pouvoir toujours relever les défis avec perfection dans un temps plus court que la normale pour mériter le titre ?

    Tu peux trouver des personnes qui sont très fortes dans un langage, mais quand il s'agit de parler des API de base d'un langage qui gèrent la sécurité, là ils sont bloqués. Et pourtant, ils se disent experts. Alors, quoi ?

    Quel est votre avis sur la question ?

  2. #2
    Rédacteur

    La notion d'expert est effectivement complexe et est souvent usurpée dans le domaine de la consultance. Sur une nouvelle technologie par exemple j'ai souvent entendu qu'un expert est quelqu'un qui a 15 jours d'avance sur les autres. Évidemment il n'est pas expert mais sera vendu comme tel.

    L'expertise est-elle dans la connaissance approfondie des API ? Pour moi la réponse est clairement non. L'expert est celui qui a une connaissance suffisante des outils mis à sa disposition pour trouver une bonne solution à la résolution d'un problème complexe même si après il doit fouiller dans la documentation des API pour les détails d'implémentation. Un développeur qui a une excellente connaissance des API mais pas cette capacité à appréhender un problème sera juste un bon technicien. Il sera très utile dans une équipe mais à mon avis ne pourra pas être qualifié d'expert.

    Vu la complexité des différents domaines qui composent aujourd'hui l'informatique, un développeur .NET peut parfaitement être expert en sécurité sans être un bon développeur d'application business Windows et inversement. Les experts sur l'ensemble des domaines existent mais sont rares.

    Mais ce n'est que mon avis. Le débat reste ouvert.

  3. #3
    Modérateur

    Pour moi le niveau expert est quelque chose de très particulier. On est pas expert -placer ici votre langage favoris- tout court , on est expert dans une utilisation bien particulière du langage.
    Par exemple un développeur qui travail tous les jours avec des sockets et des threads pourrait être considéré comme expert car il connait tous les pièges et les bonnes pratiques de cet aspect particulier du langage.

    N'importe quel développeur sait ouvrir une socket sur un thread et envoyer un packet. Ceux qui savent le faire de manière efficace (comprendre : optimisée), savent éviter les problème ou les corriger rapidement sont déjà moins nombreux et c'est ceux ci qui peuvent être qualifiés d'experts.

    Bref connaitre le langage et son API c'est du ressort du développeur lambda. Je peux faire du php pendant 10 ans , si je fais que des formulaire à longueur de journée je serait expert de rien du tout.
    L'expert c'est aussi celui qui comprend ce qu'il fait , ce qu'une commande implique. Connaitre toutes les API c'est juste du bourrage de crane sans intérêt si on ne comprend pas les subtilités des fonctions utilisées.

    Dans tous les cas le niveau d'expert n'est pour moi attribuable que par des tiers personnes. J'ai trop souvent vu des soit disant experts (auto proclamés) qui finalement ne sont au mieux que de bons développeurs.
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  4. #4
    Membre extrêmement actif
    Pour moi, un confirmé est quelqu'un qui ne sait pas tout d'une technologie mais qui sait ce dont elle est capable et comment trouver les informations nécessaires pour accomplir son objectif.
    Un expert lui connaît de A à Z un langage ou une technologie et est capable d'anticiper tous les cas particuliers. Les vrais experts sont probablement rares.

    Le post aurait mérité une sérieuse relecture avant publication. Les tournures de phrases sont capilotractées, s'agit-t-il d'une traduction automatique ?
    Citation Envoyé par Un expert en programmation
    D'ailleurs il croit toujours que le JS c'est de la POO

  5. #5
    Expert confirmé
    Citation Envoyé par Sodium Voir le message
    Un expert lui connaît de A à Z un langage ou une technologie
    Pour certains langages, est-ce aujourd’hui possible ? Puis connaitre un langage de A à Z à quel niveau ? Structure, API de base ?

  6. #6
    Membre actif
    Pour moi un expert est une personne capable de proposer une solution réaliste et pragmatique pour résoudre un problème donné. Pour se faire elle doit avoir plusieurs expériences différentes dans ce domaine, expériences pratiques et concrètes qui lui ont permis d'éprouver la théorie et de bien appréhender les limites & points forts du domaine (méthode/techno/framework/etc.).
    Donc de manière réaliste je dirai au moins 4 ou 5 ans d'expérience pour une grosse techno

  7. #7
    Rédacteur/Modérateur

    Effectivement c'est une question très pertinente. Je pense que tout le monde se l'est déjà posée personnellement. Il y a toujours des gens au dessus et des gens au dessous sur le plan des compétences, ce n'est pas facile de se positionner sur la pyramide. Il faut un élément de comparaison. Ceci dit, je pense que ni l'expérience, ni le positionnement en entreprise et ni les études/formations sont des critères totalement objectifs. A la rigueur, des tests de compétences, mais il faut qu'ils soient assez longs et exhaustifs. Ou alors des certifications peut-être, mais là encore leur qualité varie beaucoup.
    One Web to rule them all

  8. #8
    Membre extrêmement actif
    Citation Envoyé par Zefling Voir le message
    Pour certains langages, est-ce aujourd’hui possible ? Puis connaitre un langage de A à Z à quel niveau ? Structure, API de base ?
    C'est pourquoi je dis que les véritables experts sont rares. Ce sont probablement des gens ayant peu ou pas de loisirs et dont l'essentiel du temps libre se focalise sur l’acquisition de connaissance.
    Un confirmé apprendra de ses erreurs là ou l'expert ne commet pas ces erreurs car il sait exactement comment vont se comporter ses lignes de codes pour avoir étudié toutes les subtilités de chaque méthode, chaque type de variable, etc.
    Citation Envoyé par Un expert en programmation
    D'ailleurs il croit toujours que le JS c'est de la POO

  9. #9
    Expert éminent sénior
    J'ai fait ce petit travail pour mon cv et mes entretiens je prends de mémoire ces repères :

    Débutant
    Je passe + de temps dans la documentation que dans le code. (Profil : Dev en sortie d'école ou nouvelle techno pour le dev)

    Intermédiaire
    Je passe + de temps dans le code que dans la documentation. (Profil : Dev avec quelques mois à quelques années d'xp sur la techno, une partie des concepts de la techno sont encore obscurs ou mal compris)

    Confirmé
    Je passe rarement du temps dans la doc, seulement pour des points spécifiques, je suis capable de répondre à 90% des questions sur les forums/mailings lists sur le sujet.
    (Profil : Dev sénior avec plusieurs années d'xp)

    Expert
    Je suis l'auteur de la techno ou un contributeur important. Je comprends parfaitement tous les concepts de la techno, j'en connais les avantages et inconvénients, les bonnes et les mauvaises pratiques. Me faire travailler sur autre chose que le développement de la techno ou de la formation pour dev confirmé est une perte de temps.
    Je peux répondre à toutes les questions sur les forums/mailings lists mais je préfère écrire des livres

    Globalement les SS2I/entreprises qui demandent des experts ne comprennent pas ce qu'elles demandent. Au mieux elles ont besoin de dev confirmés.
    Un problème avec Git ? Essayez la FAQ, sinon posez votre question sur le forum.



    "Toute personne croyant qu'une croissance exponentielle peut durer indéfiniment dans un monde fini est soit un fou, soit un économiste."
    Kenneth E. Boulding

    "Les richesses naturelles sont inépuisables, car, sans cela, nous ne les obtiendrions pas gratuitement. Ne pouvant être ni multipliées ni épuisées, elles ne sont pas l’objet des sciences économiques."
    Jean-Baptiste Say, Traité d'économie politique, 1803.

    "/home/earth is 102% full ... please delete anyone you can."
    Inconnu

  10. #10
    Expert confirmé
    J'aime beaucoup tes points de repères et je vais probablement me les approprier pour mettre à jour mon CV.

    Par contre, il reste une incertitude. Je vais prendre mon cas pour exemple.

    Je code en VB.NET depuis maintenant plus de 7 ans et ne fourre quasi plus mon nez dans la doc sauf pour un point assez spécifique s'il y a lieu. Mais je code des softs de gestion en interne pour la boite où je bosse. Si demain on me demande de faire une application client-server (genre un "bête" chat par exemple), je vais forcément devoir passer pas mal de temps dans la doc car je n'ai aucune idée de comment fonctionne les communications réseaux pour l'envoi des messages entre utilisateurs en transitant par le serveur. Je sais qu'il y a une histoire avec des sockets mais ça s'arrête là ^^. Du coup, dans un cas, je tombe dans la catégorie confirmé et, dans l'autre, dans la catégorie intermédiaire.
    Kropernic

  11. #11
    Expert éminent
    Le terme expert est effectivement tres vague. C'est pourquoi personnellement, je me présente plutôt comme "spécialiste" que comme "expert" quand je le peux. Ce terme me parait mieux refléter la réalité.

    Après, effectivement, dans le milieu du travail, "expert" est en quelque sorte le mot à la mode, le sésame permettant de négocier du travail de façon plus assurée.

    Après, connaitre un langage par coeur, il y a quelques années (beaucoup ) c'était possible (là je pense à l'ASM type RISC) sans problème. De nos jours, avec les multiples évolutions, toutes les APIs, les contributeurs Open Source, ... je considère qu'il est impossible de tout connaitre. Et j'en revient au terme de "spécialiste" qui pour moi désigne des connaissances et compétences poussée, tout en indiquant également qu'on est pas censé tout connaitre par coeur.
    "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

  12. #12
    Expert confirmé
    Citation Envoyé par Marco46 Voir le message
    Globalement les SS2I/entreprises qui demandent des experts ne comprennent pas ce qu'elles demandent. Au mieux elles ont besoin de dev confirmés.
    Pas que les SS2I, d'ailleurs quand dans mon dernier entretient on m'a demandé si j'étais expert sur une techno, je leur demandais ce qu'ils entendaient par expert. Non, parce qu'on demande de expert sur tout et n'importe quoi aujourd'hui et quand on sur place, on se rend compte qu'un « Intermédiaire » (suivant ta classification) aurait pu suffire car la moitié des trucs sont des API interne qu'il faudra de toute façon apprendre...

  13. #13
    Membre habitué
    Le jour où tu fais les horaires spécifiés sur ton contrat d'embauche

  14. #14
    Expert confirmé
    Citation Envoyé par jab Voir le message
    La notion d'expert est effectivement complexe et est souvent usurpée dans le domaine de la consultance. Sur une nouvelle technologie par exemple j'ai souvent entendu qu'un expert est quelqu'un qui a 15 jours d'avance sur les autres. Évidemment il n'est pas expert mais sera vendu comme tel.
    Simplement le terme expert remplace le terme "Consultant" ou "Architecte" de ses 15 dernières années. Tout les 5 ans, un nouveau terme apparait en SSII pour mieux vendre du vent.
    Grave urgent !!!

  15. #15
    Expert confirmé
    Citation Envoyé par Katyucha Voir le message
    Simplement le terme expert remplace le terme "Consultant" ou "Architecte" de ses 15 dernières années. Tout les 5 ans, un nouveau terme apparait en SSII pour mieux vendre du vent.
    D'ailleurs, on peut essayer de jouer à trouver qu'elle sera le prochain ?

  16. #16
    Expert éminent sénior
    Citation Envoyé par Zefling Voir le message
    D'ailleurs, on peut essayer de jouer à trouver qu'elle sera le prochain ?
    Facile, pour les deux trois ans à venir c'est "big data".

    Pour l'expertise, à mon sens, l'expert, ce n'est pas celui qui connait la doc par coeur, ou qui va super vite (même si en général, c'est une conséquence de son expertise).

    Un expert, selon moi, est capable de trouver des solutions techniques aux problèmes pointus, connait les outils à sa disposition (mais ne les à pas forcément utilisés, ou pas tous en tout cas), et à souvent une expertise fonctionnelle forte.

    Je rejoint un commentaire précédent qui disait que l'on est expert dans un contexte donné.

  17. #17
    Membre éclairé
    Tout d'abord, je pense que la question est pertinente et bien posée, en cela qu'elle cherche une articulation de la notions d'expert avec celle de compétence. Je suis d'avis en effet, qu'être expert est avoir atteint un certain niveau de maîtrise d'une compétence, mais encore faut-il s'entendre sur une définition de la compétence. Dans la lignée d'auteurs comme Guy Le Boterf ou Philippe Perrenoud, Jacques Tardif définit une compétence comme un "savoir-agir complexe prenant appui sur la mobilisation et la combinaison efficaces d'une variété de ressources internes et externes à l'intérieur d'une famille de situation."

    Selon cette définition, une compétence s'appuie sur des ressources qui peuvent être internes (connaissances, savoir-faire, attitudes, règles intériorisées, etc.) ou externes (outils de développement, Web, livres, autres personnes, etc.). Si l'idée d'expert s'applique effectivement à une compétence, être expert en Java n'a que peu de sens car "connaître Java", même parfaitement, n'est pas une compétence en soit mais plutôt une ressource qui peut être mobilisée dans une situation qui relève d'une compétence comme, par exemple, le développement d'applications d'entreprise.

    Toujours selon cette définition, une personne compétente est capable de mobiliser et combiner efficacement ces ressources. Une mobilisation rapide implique des ressources intégrées, intériorisées par la personne, et une combinaison efficace implique la confrontation de cette personne à un grand nombre de situations différentes appartenant à une même famille. Partant de là, un expert est une personne compétente qui a intériorisé une grande partie des ressources nécessaires (elle ne doit pas sans cesse rechercher dans la documentation) et a été confrontée à un nombre de situations telles qu'elle a probablement déjà rencontré une situation proche de celle à laquelle elle est confronté.

    En d'autre termes, une personne n'est pas experte parce qu'elle connait parfaitement tel ou tel langage, telle ou telle technologie, mais c'est parce qu'une personne est experte qu'elle connaitra probablement très bien les langages et les technologies qui sont des ressources pour son domaine d'expertise. Cela signifie, hélas, qu'on ne peut pas inférer le niveau de compétence à partir de la connaissance aussi parfaite soit-elle, d'une technologie ou d'un langage...

    Pour finir, une compétence peut se développer aussi longtemps que la personne est capable d'apprendre, donc, dans le meilleurs des cas, toute sa vie.

  18. #18
    Membre habitué
    Je vais vous donner ma vision, très rigide.
    Je fixe d'abord une limite. Un individu ne peut être expert que sur un nombre très très réduit de sujets/technologie. On ne peut pas rester expert sur un sujet, si on n'utilise plus aussi régulièrement la technologie.

    expert java n'a aucun sens à mes yeux, car il me semble impossible de maitriser toutes les facettes du langage java et utiliser le langage est un trop vaste sujet.

    Il y a deux niveaux de compréhension d'une technologie.
    * Une compréhension physique, mathématique. La connaissance de toutes les fonctions de la technologie.
    * Une compréhension plus abstraite, ou l'on comprend pourquoi une technologie a été créé, a quel besoin elle répond et la logique des développeurs qui l'ont crées.

    Au premier niveau, on est un développeur qui sait mettre en pratique la technologie. Pour beaucoup de S2II a ce niveau, on est l expert de la boite pour la technologie.
    Au deuxième niveau de compréhension. On est serait capable de recoder la technologie. On est capable d'anticiper les choix de codage, d'anticiper les fonctionnalités offerte par la technologie pour résoudre un pb. On anticipe les limites et erreurs de la technologie. La bonne façon d'utiliser la technologue est évidente et la doc ne sert qu'a vérifier la syntaxe.

    Je vais ajouter un point qui me semble important. A l'école, nos prof nous ont fait coder un compilateur pour un langage objet, de A à Z. Je ne me prétend expert dans aucun langage objet, mais il me semble difficile de ce prétendre expert dans un langage objet, pour quelqu'un qui n'a jamais réalisé de compilateur objet.

  19. #19
    Membre éprouvé
    L'expert ? Pas simple...

    Dans mon domaine (Database et BI), je le voit surtout comme celui qui est capable de ne pas être bloqué par une seule techno, ni par son domaine.
    C'est celui qui est capable d'analyser son problème dans l'ensemble. Celui qui a la connaissance technique mais qui est aussi aussi capable d'appréhender le "business" pour lequel il travail et d'en comprendre les processus.

    Pour quantifier ça, je dirais au minimum 10 ans d'expérience dans le domaine global, y compris en ce qui concerne l'analyse et au minimum 3-4 ans par techno.
    En gros un mec qui sera de toute façon bien trop cher pour une SS2I et qui sera plutôt dans une boite de vrai consulting.

  20. #20
    Membre habitué
    Citation Envoyé par Zefling Voir le message
    D'ailleurs, on peut essayer de jouer à trouver qu'elle sera le prochain ?
    Je propose "contributeur", pour contributeur de la technologie.
    Les SS2I font dans la surenchère, actuellement.

###raw>template_hook.ano_emploi###