Développeur polyvalent ou spécialisé ?

Guy Senpai
Code d'Ivoire
Published in
3 min readApr 12, 2019

--

Après les années d’études, l’on dispose de compétences et connaissances basiques dans une ou plusieurs technologies. Face au marché du travail, il nous arrive d’acquérir des connaissances et/ou compétences dans plusieurs autres technologies ou dans les mêmes technologies que nous avons apprises à l’école. Au fil des années d’expériences l’on se retrouve à devenir soit un développeur polyvalent, soit un développeur spécialisé. Pourquoi donc ces choix et quel est la meilleure alternative ?

Développeur polyvalent ?

La polyvalence se définit comme la faculté d’exécuter plusieurs fonctions à partir d’une seule entité. Ainsi un développeur polyvalent est capable de travailler avec plusieurs technologies (Java, javascript, python .NET, etc.) sans pour autant avoir des connaissances poussés dans ces technologies. Il est donc capable de s’adapter facilement et rapidement selon les projets.

L’avantage principal d’un développeur polyvalent est qu’il peut travailler sur plusieurs missions qui requiert des technologies différentes.

Par contre, pouvoir travailler dans différentes technologies requiert du temps et de l’apprentissage continue. Ce qui ne permet pas forcément de connaitre tout les rouages des technologies que l’on apprend ou utilise. Aussi, le manque de pratique continue dans les technologies apprises peut nous rendre très vite obsolète.

Autre inconvénient que je peux citer pour un développeur polyvalent est le fait de connaitre plusieurs technologies mais qui n’ont rien en commun. Par exemple, un développeur travaillant avec les technologies JAVA, Python, C++, etc sera très facilement perdu au fil des années car il aura des difficultés à revenir sur les technologies laissées en “stand-by” qui auront certainement évolué.

Selon moi, l’idéal pour un développeur polyvalent serait de se cantonner à des technologies communes par exemple, JAVA/Spring Boot/ANDROID; PHP/Node.JS pour le backend, JavaScript/HTML/CSS pour le frontend ou .NET (C#, VB, etc.) pour le backend ou encore JAVA/Spring Boot/JavasScript/ReactJS; PHP/Laravel/JavasScript/VueJS pour le full-stack…

Développeur spécialisé ?

Contrairement à un développeur polyvalent, un développeur spécialisé ne travaille qu‘avec une ou deux technologies dans lesquelles il se sent à l’aise. Il a des connaissances avancées dans cette technologie et est capable de débloquer une situation très rapidement vu son niveau d’expertise dans ladite technologies.

Le principal avantage du développeur spécialisé est son expertise. Cela le rend ainsi incontournable dans son environnement professionnel immédiat.

Contrairement au développeur polyvalent, le développeur spécialisé ne peut travailler que sur des projets concernant sa technologie d’expertise. Il n’a que de vague connaissance des autres technologies qui souvent ne lui permettent pas de travailler avec ces technologies. Il faut savoir que l’expertise vient de l’expérience, ainsi le développeur spécialisé consacre la plupart de son temps à sa technologie ce qui peut l’empêcher fortement de regarder d’autres technologies.

Aussi le choix des technologies à maitriser est primordiale car se spécialiser dans une technologie en voie de disparition est le meilleur moyen de finir inutile et obsolète. Il vaut mieux bien choisir la technologie à maitriser selon les besoins du marché et aussi selon l’affinité.

Comme exemple de spécialisation on peut citer pour le backend PHP/Symfony; JAVAEE/Spring Boot; Scala/Akka/Play ou JavaScript/AngularJS/Angular; JavaScript/VueJS/React pour les frontend ou encore JAVAEE/Spring Boot/Angular; PHP/Laravel/VueJS; JavaScript/React/C# (.NET) pour les full-Stack.

La meilleure alternative

La meilleure alternative des deux pour un développeur serait d’être capable de s’adapter à toutes les situations et d’avoir une expertise dans un domaine en particulier. Selon moi, un bon développeur doit pouvoir être polyvalent et se spécialiser dans une ou plusieurs technologies frontend comme backend. Être polyvalent dans ce cas signifie une constante actualisation des technologies apprises tout en maintenant l’avancée dans la maitrise des technologies à spécialiser.

--

--