Table des matières
Ouvrir table des matières
Faut-il apprendre plusieurs langages de programmation ?
Je reçois des e-mails de certains d’entre vous me posant cette question : faut-il apprendre plusieurs langages de programmation ? Une question plus que légitime lorsque l’on est débutant. Certaines personnes vous diront qu’il faut connaître beaucoup de langages alors que d’autres vous diront que ce n’est pas nécessaire.
Je vais donc tenter de répondre à cette question avec une tout autre approche en vous apportant des éléments concrets et des cas différents où vous pourrez certainement vous y projeter vous permettant d’avoir une réponse à cette question.
Je pense que l’apprentissage d’un langage de programmation doit se faire par rapport à votre but et que forcément d’une personne à une autre, l’apprentissage ne se fera pas de la même façon. Il est donc important de se poser les bonnes questions.
Il est clair que si vous programmez juste pour le plaisir, vous n’allez certainement pas vous embêtez à apprendre plusieurs langages de programmation. Posez-vous ces questions : quel est votre but dans la programmation ? Quel est votre projet ? Quelle est votre ambition ? Suis-je un programmeur du dimanche ou un programmeur expert ?
Se diversifier
Si vous souhaitez vous diversifier en programmation, alors il vous sera nécessaire d’apprendre plusieurs langages de programmation. J’irais même jusqu’à dire beaucoup de langages. Le but est de couvrir plusieurs technologies pour pouvoir concevoir toutes sortes d’applications : mobile, bureau, web, industrielles, embarquées ou encore des objets connectés par exemple.
Le gros avantage est que vous pouvez toucher à de nombreux domaines et vous ne vous contentez pas que d’un coeur de métier. Je pense que la lassitude d’une technologie est quasi inexistante dans un tel cas de diversifications.
A contrario, vous ne serez jamais « expert » dans l’un des langages programmation que vous pratiquerez. Vous aurez le surnom de « touche à tout ».
J’ai mis volontairement le mot « expert » entre guillemets, car je n’aime pas ce terme dans le monde informatique. L’informatique générale étant en constante évolution tous les jours, il est difficile de se prétendre un expert de « quelque chose », mais je m’éloigne du sujet.
Si vous vous diversifiez et que vous apprenez 5, 10 ou 15 langages différents sur plusieurs technologies différentes, il vous sera très difficile de faire le « tour » d’un langage de programmation. Vous connaîtrez ses bases et la plupart de ces spécificités, mais vous ne le maîtriserez jamais assez bien que quelqu’un qui le pratiquera tous les jours. Rappelez-vous bien que plus vous vous diversifiez, moins vous maîtriserez les langages de programmation que vous apprenez.
D’ailleurs, sachez qu’il est quasiment impossible de maîtriser complètement un langage de programmation. Moi-même je pratique tous les jours le PHP et je découvre encore certaines de ces spécificités aujourd’hui.
Se spécialiser
Il faut bien comprendre que se spécialiser n’est pas forcément maîtriser et pratiquer qu’un seul langage. Il y a en réalité 2 types de spécialisation :
- technologique
- compétence
Pour la spécialisation technologique, on parlera d’un ensemble de langages de programmation à maîtriser pour pouvoir répondre à une technologie et à un besoin. Par exemple :
- la programmation .NET avec le C#, SQL Server, VB .NET, ASP .NET
- la programmation web avec le HTML, CSS, JavaScript, PHP, MySQL
- la programmation mobile avec le Java, Swift, Kotlin, HTML, JavaScript
Bien souvent, on se spécialise dans une technologie par rapport aux offres d’emploi sur marché qui recherche des profils types. On se retrouve avec des personnes ayant des compétences très axées sur une technologie précise. En clair, on se spécialise par le biais d’une technologique et non par rapport à un langage en particulier.
La spécialisation de compétence est encore plus spécialisée que la spécialisation technologique. Le profil attendu est très souvent centré sur un seul langage de programmation, pour une seule spécialité. Par exemple dans la programmation web, nous avons le développeur backend PHP (qui est un expert PHP et qui ne fait que cela) où il ne fera que du PHP pour le backend de son application. Le développeur web frontend ne fait que du HTML/CSS/JavaScript par exemple. C’est la même chose pour d’autres technologies comme le .NET. C’est d’ailleurs plus répandu que pour le profil web comme le développeur SharePoint, le développeur C# ou encore le développeur ASP .NET. On peut d’ailleurs réellement parler d’expertise dans ce cas précis puisque vous pratiquerez que cela à longueur de journée et on ne vous demandera pas de connaître autre chose (même si avoir les bases est un plus).
Alors finalement faut-il apprendre plusieurs langages de programmation ?
Comme vous avez pu le constater dans la majeure partie des cas, il est plus que nécessaire d’apprendre plusieurs langages de programmation pour répondre à un besoin bien précis. Mais dans certains cas, il n’est pas nécessaire d’en apprendre plusieurs si vous voulez vraiment vous spécialiser pour une tâche d’un projet. Dans chacun des cas, il y aura des avantages et des inconvénients, mais sachez que vous devez choisir par rapport à vos envies, vos convictions et vos projets. Le choix vous appartient et vous êtes le seul à pouvoir le faire. Néanmoins, je vais vous partager mon parcours et expérience concernant les choix que j’ai faits pour apprendre plusieurs langages de programmation.
Mon expérience
Il faut savoir qu’avant mes études en informatique j’ai toujours été attiré par les ordinateurs et encore plus avec l’arrivée d’Internet. Pouvoir partager et échanger des informations à travers le monde de chez soi était pour moi quelque chose de fascinant. Lorsque j’ai entrepris mes études en informatique option développeur, la fascination et l’envie s’est renforcées envers le web. Je savais donc après y avoir goûté que la programmation web serait mon domaine de prédilection. Malgré les autres langages que j’ai pu apprendre pendant mes études (C, C++, C#, VB6, VB .NET), j’ai concentré mon apprentissage sur les technologies web (HTML/CSS, PHP, JavaScript et le langage SQL).
Il y a 7 ans je suis entré dans une SSII (où je suis toujours) pour y faire de la programmation web avec comme challenge la réalisation d’un ERP sur mesure. Pendant 5 ans, je n’ai fait que de la programmation web et je n’ai jamais ressenti le besoin de me consacrer à d’autres langages puisqu’en plus d’exceller dans mon domaine, j’apprenais constamment de nouvelles choses tous les jours. Nous nous sommes diversifiés un peu à savoir que nous faisons des applications mobiles, mais toujours dans des langages web (Ionic 🔗).
Il y a seulement 2 ans où j’ai commencé à apprendre d’autres langages de programmation comme le Python, l’Arduino ou encore le Lua. Ces trois langages de programmation ont pour but dans mon cas de pouvoir allier la programmation et la domotique . Comment ? En créant des automatisations dans ma maison dans le but d’améliorer mon confort avec des Raspberry Pi (et Python), en concevant des objets connectés très petits équipés du Wifi grâce aux ESP8266 (Lua) et en connectant de l’équipement de maison non connecté avec des cartes Arduino (et le langage Arduino héritée du c++).
Vous l’aurez compris, j’ai appris ces langages de programmation sans suivre ce que les gens suggèrent, mais en suivant mes envies, mes passions et mes évolutions de vie. Et sans trop de modestie, je trouve que cela m’a plutôt bien réussi.
Conclusion
Comme vous avez pu le lire, il est très difficile de choisir à votre place si vous devez apprendre plusieurs langages de programmation. Mais j’espère que cet article et mon parcours vous aideront à vous projeter pour pouvoir faire vos propres choix.
Mes derniers conseils :
- Sachez que pour moi personnellement, il vaut mieux bien connaître 2 langages qu’en connaître 5 moyennement.
- Privilégiez d’apprendre les langages dont vous avez besoin dans l’immédiat.
- Si vous apprenez la théorie et que vous savez que vous ne ferez pas de la pratique dans les jours à venir, alors passez votre chemin sur ce langage et revenez-y plus tard.
- Ne faites pas comme tout le monde jusque parce qu’on vous dit que c’est mieux. Faites-le pour vous et par rapport à votre but et vos projets.
- Ne vous mettez pas la pression ! Apprenez une chose à la fois, un langage de programmation après l’autre. Ne zappez pas une étape pour aller plus vite, car vous risquez de passer à autre chose.
- Pratiquez autant que possible les langages que vous apprenez
J’espère que mon article et mon expérience vous auront inspiré !