Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

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

Le , par la.lune

310PARTAGES

22  4 
À 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 ?

Une erreur dans cette actualité ? Signalez-le nous !

Avatar de Marco46
Modérateur https://www.developpez.com
Le 28/04/2014 à 12:30
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.
37  2 
Avatar de ptah35
Membre éclairé https://www.developpez.com
Le 28/04/2014 à 14:53
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.
16  0 
Avatar de eclesia
Rédacteur https://www.developpez.com
Le 28/04/2014 à 19:50
voici comment je vois les choses :


Ce graph est pensé pour le Java au sens large, incluant beaucoup de différentes api, io, concurrence/Lock, reflection, weak/soft/phantom reference, profiling, socket, etc...
Bien sur ce graph est différent selon les personnes, la motivation et l'expérience deja acquise avant d'aborder le java.
Je pense que ce graph s'adapte assez bien aux autres technos,api,language si on modifie l'echelle de temps.

Donc pour moi il y a 5 phases :
- l'apprentissage : niveau débutant
- l'adolescence : faux confirmé/expert qui croit etre capable de tout, étape tres dangereuse pour les SSII, car c'est l'état dans lequel les jeunes diplomés commence souvent a travailler. il suffit que celui ci soit un peu tétu ou qu'il ai une place un peu supérieur aux autres de par son diplome pour que des mines et des bombes a retardement soient placées dans le code.
- le réapprentissage : hé oui, il y a un moment ou on croyait savoir et tout comprendre, mais au final on finit par admettre que ca ne marche pas comme ca, donc on réapprend mais sur de bonne bases cette fois
- la pente : on a réguliere cette petite sensation, 'j'ai encore appris quelque chose aujourdhui', ou plutot on l'a gravé dans le marbre, a se niveau la c'est comme le velo, on n'oublie plus.
- le plateau : on sait ce qu'on fait, plus rien ne nous fait peur mais on a tendance a se sous-évaluer, par expérience on sait qu'il faut mieux rester modeste.

tous le monde ne suit pas forcement ce graph, et considérant les developpeurs de mon entourage, certain on beaucoup de mal a sortir de la phase de réapprentissage et a remonter la pente. Autodidacte ou Bac+5, la motivation est le principale moteur quand on arrive a ce moment la, D'autres plus rares ne passeront surement pas l'adolescence.
13  0 
Avatar de Katyucha
Expert confirmé https://www.developpez.com
Le 28/04/2014 à 14:02
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.
10  0 
Avatar de jab
Rédacteur https://www.developpez.com
Le 27/04/2014 à 8:51
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.
10  1 
Avatar de
https://www.developpez.com
Le 29/04/2014 à 1:39
Techniquement, en tant qu'archi Réseaux & Télécoms, je manipule des "objets" un peu différents mais comme vous, le job fait balayer un spectre assez large de technologies (topologies physiques, switching data/voix, protocoles de routage IP unicast/multicast, sécurité).

Voici donc l'idée globale (qui paraitra peut-être caricaturale pour certains), que je me fais des niveaux débutants/confirmés/experts relativement à une technologie.

1) Bien évidemment, le débutant est en phase d'apprentissage. Mais la caractéristique principale, c'est qu'il doit être coaché. C'est quelqu'un qui génère inévitablement de l'inertie dans une équipe. Donc s'il est "laissé à l'abandon", il risquera de devenir rapidement un boulet et sa motivation en prendra un sérieux coup. Si le débutant est face à une "déviation", il a généralement besoin d'aide. Le transfert de connaissances vers le débutant se fait en "push mode" : c'est son mentor qui l'alimente ou éventuellement l'aiguille vers l'information efficace.
Phrase type :"j'arrive pas à accéder au serveur, j'ai déjà vérifié 2 fois toutes les configs des routeurs, tu peux vérifier avec moi ?".

2) Ce que j'attends d'un confirmé, c'est qu'il soit capable de reproduire les tâches/schémas usuels associés à son job. Le confirmé est autonome et lorsqu'il est face à une "déviation", son expérience lui permet de savoir s'il a besoin d'aide ou non parce qu'il est normalement capable d'en résoudre une grande partie. Il est donc orienté "push/pull". A partir de ce niveau d'expertise, j'attache aussi beaucoup d'importance à l'aspect capture de connaissances. Le confirmé est un élément clé pour améliorer les procédures/méthodologies de travail et parfois en créer de nouvelles.
Phrase type : "j'arrive pas à accéder au serveur, pourtant j'ai déployé exactement ce qu'on avait fait sur la maquette, je poursuis mon troubleshooting".

3) Généralement, la 1ère caractéristique de l'expert, c'est d'être reconnu par ses pairs. Et puis, les experts échangent avec d'autres experts... Pour l'expert, chaque "déviation" est une opportunité pour améliorer son savoir-faire, étendre sa connaissance et souvent innover. "Out-of-the box thinker", il est définitivement en "pull mode" : il sait trouver l'information efficace par recherche personnelle ou en contactant les experts de son réseau avec qui il reste en contact régulièrement. C'est le point d'escalade naturel pour les confirmés de l'équipe (l'expert n'aime pas vraiment travailler sur des problèmes de 1er niveau remontés par le débutant) et c'est aussi un élément clé en ce qui concerne la veille technologique.
Phrase type : "impossible d'accéder au serveur, je suis curieux de voir ce que ça donne si on fait un redesign du routage, on n'avait pas vraiment testé ça sur la maquette"

Steph
9  0 
Avatar de Simara1170
Membre éprouvé https://www.developpez.com
Le 29/04/2014 à 14:07
De la part d'un membre qui n'a pas l'air d'être un francophone de naissance, je trouve ça au contraire plutôt pro au contraire...
C'est vrai que ça mériterait une remise en forme, mais dans l'ensemble c'est pas mal...

Par contre niveau commentaire pertinent sur un site pro, dans le genre "ça fait tâche", j'te file un oscar

NB: surtout que la remarque a déjà été faite, et la raison a déjà été donnée, si tu lisais le topic avant de poster, tu l'aurais vu, et tu te serais peut-être abstenu...
9  0 
Avatar de grunk
Modérateur https://www.developpez.com
Le 28/04/2014 à 11:14
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.
8  0 
Avatar de Zefling
Membre expert https://www.developpez.com
Le 28/04/2014 à 11:33
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 ?
8  0 
Avatar de Kropernic
Expert confirmé https://www.developpez.com
Le 28/04/2014 à 12:52
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.
8  0