← Back to list

Faut-il apprendre un nouveau langage de programmation ?

Faut-il vraiment investir du temps et de l’énergie à apprendre un nouveau langage de programmation ?

Christophe Vaudry in norsys-octogone · 2024-10-16 09:02 · 4 claps · 7.6 min read
#veille #langage-de-programmation #apprendre #apprentissage #développement-logiciel
Open on Medium ↗
Wiki topics: 🎮 · Gaming 🥊 · Combat Sports

Faut-il apprendre un nouveau langage de programmation ?

Faut-il vraiment investir du temps et de l’énergie à apprendre un nouveau langage de programmation ?

Il ne s’agit pas d’apporter une réponse définitive à cette question (je doute d’ailleurs qu’on puisse le faire). L’objectif est ici de fournir des éléments sur les points clés pour aider à prendre cette décision.

Juste pour vous donner du contexte sur ce qui suit, quelques éléments d’information sur moi. Je suis dans l’informatique et le développement depuis plus de 20 ans en ayant exercé des fonctions ou rôles assez diverses : chercheur, enseignant, développeur, chef de projet, architecte. Le langage de programmation que je pratique le plus dans mon contexte professionnel est Java mais au fil de ma carrière j’ai été amené à en apprendre et pratiquer plusieurs.

Pourquoi apprendre un nouveau langage de programmation ?

Le premier point structurant est la question du “Pourquoi ?” : pour quelle(s) raison(s) considérer vous d’apprendre un nouveau langage de programmation ? Quel est ou quels sont vos objectifs à cet égard ?

Je ne vais pas considérer ici le cas où il vous est imposé d’apprendre un nouveau langage de programmation dans le cadre professionnel, par exemple pour le besoin d’un nouveau projet ou d’une nouvelle mission. Il n’y a pas vraiment débat dans ce cas, vous devez apprendre ce nouveau langage, cela vous est imposé de l’extérieur.

Sachant que vous connaissez déjà un langage de programmation, pourquoi vouloir en apprendre un autre sans que cela vous soit imposé ?

De mon point de vue, les principales raisons sont les suivantes :

  • Apprentissage d’un nouveau langage perçu comme une manière de pouvoir continuer à progresser dans sa carrière.
  • Apprentissage d’un nouveau langage perçu comme un avantage concurrentiel.
  • Apprentissage d’un nouveau langage perçu comme une manière de progresser dans sa pratique du développement.
  • Apprentissage d’un nouveau langage perçu comme une nécessité pour réaliser un projet ou objectif personnel.

Quelques raisons d’apprendre un langage de programmation

Quelques raisons d’apprendre un langage de programmation

Nous allons détailler ces différentes raisons dans les paragraphes suivants.

Apprendre un langage pour continuer à progresser dans sa carrière

Vous avez le sentiment ou vous constatez que le langage et la stack technique associée que vous utilisez est devenue obsolète. Vous avez l’impression qu’à cause de cela vous passez à côté des missions ou des postes intéressants. Pire vous sentez qu’il risque d’être compliqué de changer de mission ou de poste : vous êtes enfermés sur certaines technologies, et cela entrave votre capacité à progresser dans votre carrière.

C’est un point très valide pour apprendre un nouveau langage de programmation et la stack technique associée. Cela implique que vous fassiez une forme de veille qui vous permet :

  • de constater de manière objective que votre stack technique est obsolète ou en train de le devenir
  • de définir quel langage de programmation il serait stratégique d’apprendre

Il faut faire attention de ne pas confondre ce besoin légitime et nécessaire de s’auto-former pour ne pas s’enfermer sur une technologie dépassée avec le besoin de suivre la “hype” du moment (voir au sujet de la “hype” cette courte conférence du DevFest Lille 2024).

On notera ici, que si c’est valable pour un langage de programmation qui est l’un des éléments les plus fondamentaux d’une stack technique, il est pertinent dans tous les cas de toujours faire un minimum de veille et de s’assurer que de manière générale les bibliothèques et les frameworks que l’on utilise évoluent et ne sont pas eux-mêmes victimes d’obsolescence.

Apprendre un langage pour développer un avantage concurrentiel

Dans son article “Beating the Averages”, Paul Graham explique comment l’utilisation de Lisp leur a donné à son ami Robert Morris et lui, un avantage concurrentiel dans leurs développements. L’article et ce qu’il relate est ancien (il date de 2001 et a été révisé en 2003) mais cela reste une lecture à conseiller.

Maintenant, la légitimité de cette raison d’apprendre un langage de programmation dépend grandement de votre contexte : si vous développez votre propre produit et que de changer de langage décuple votre productivité ou que le langage en question est vraiment l’outil adapté par rapport à ce que vous cherchez à développer (parce que c’est dans cet écosystème que vous aurez les meilleurs bibliothèques ou frameworks pour atteindre votre objectif), ou que les caractéristiques intrinsèques du langage (sécurité, performance, etc.) sont essentielles à la réussite de vôtre entreprise, c’est une bonne raison.

La déclinaison de la légitimité de cette raison en ESN, peut être par rapport à la rareté sur le marché de la compétence en question associée à une valorisation forte de cette compétence. Cependant, cela veut dire qu’il faut savoir aller chercher d’une manière ou d’une autre des missions en relation avec cette compétence. Cela peut donc se justifier. Il faut cependant dans ce cas être conscient que le ROI (“Return On Investment”) est plus compliqué à obtenir.

Apprendre un langage pour progresser dans sa pratique du développement

Dans l’excellent livre “The Pragmatic Programmer” de Andrew Hunt et David Thomas (une lecture hautement recommandée), ils écrivent dans une section traitant de l’investissement dans le développement de vos connaissances :

Learn at least one new language every year. Different languages solve the same problems in different ways. By learning several different approaches, you can help broaden your thinking and avoid getting struck in a rut.

Si je me permets une traduction en français, cela donne

Apprenez au moins un nouveau langage chaque année. Des langages différents résolvent les mêmes problèmes de manières différentes. En apprenant plusieurs approches différentes, vous élargissez votre manière de penser et éviter de rester bloquer dans une ornière.

Il y a du vrai là-dedans mais je tempèrerai un peu ce conseil, en ne le prenant pas de manière trop littérale et comme un devoir pour tout développeur qui se respecte.

Il faut bien définir ce qu’on entend ici par “apprendre un nouveau langage” : est-ce que c’est un apprentissage qui permet de résoudre des problèmes/puzzles dans ce langage ou est-ce que c’est une maitrise complète de son écosystème ? Bref, il y a apprendre et apprendre.

Il faut bien comprendre que l’idée est de pratiquer la manière dont des langages différents résolvent différemment des problèmes identiques. S’il y a certes toujours des différences entre 2 langages de programmation distincts, ces différences ne sont pas nécessairement des différences fondamentales. Bref, vous n’élargirez pas de la même manière votre horizon intellectuel si vous apprenez un nouveau langage de programmation qui n’a pas de différences fondamentales avec les langages que vous connaissez déjà.

Ce qui est intéressant c’est que même si vous n’explorez pas en profondeur tout l’écosystème d’un langage, en vous limitant à des résolutions de “petits” problèmes algorithmiques (par exemple sur Exercism ou CodinGame), en soit cela va vous apporter les bénéfices évoqués dans “The Pragmatic Programmer”. En effet, quand on pratique depuis longtemps un langage, il y a de nombreux aspects de ce dernier que l’on ne remet plus en question. Explorer ainsi un autre langage est donc un excellent moyen de prendre du recul et de challenger ses certitudes.

Ainsi, je pense qu’apprendre un nouveau langage permet de progresser dans sa pratique du développement. Cependant l’apprentissage d’un nouveau langage de programmation peut être assez chronophage si on décide de creuser l’écosystème. Il faut également bien se rendre compte que — comme pour un langage naturel — sans pratique régulière on perd très vite les compétences acquises.

Donc de mon point de vue, c’est une raison valide d’apprendre un nouveau langage de programmation. L’intérêt réside principalement dans l’apprentissage de nouvelles manières de voir et d’aborder les problématiques. Néanmoins, il faut bien voir que le temps qu’on investit là-dedans est du temps qu’on n’investit pas pour explorer d’autres sujets et qu’il est peu productif de trop se disperser. Il faut certainement trouver un équilibre entre ne connaître qu’un seul langage de programmation et passer son temps à en apprendre de nouveaux.

Il y a 2 épigrammes d’Alan Perlis qui sont à mon sens en relation avec cette raison d’apprendre un langage de programmation et sur lesquelles j’aimerais conclure cette partie :

  • Epigram 19 : “A language that doesn’t affect the way you think about programming, is not worth knowing.” (tentative de traduction en français “Un langage qui n’affecte pas votre manière de penser sur la programmation, ne vaut pas la peine d’être appris”)
  • Epigram 42 : “You can measure a programmer’s perspective by noting his attitude on the continuing vitality of FORTRAN.” (tentative de traduction en français “Vous pouvez mesurer la perspective d’un programmeur en remarquant son attitude au sujet de la vitalité toujours renouvelé de FORTRAN”)

Apprendre un langage pour réaliser un projet/objectif personnel

Il faut choisir l’outil adapté au problème. Il se peut que pour réaliser un projet personnel ou un objectif que vous vous êtes fixés, il faille apprendre un nouveau langage de programmation et son écosystème.

Il y a une similitude avec l’apprentissage d’un langage pour se donner un avantage concurrentiel mais la cible est différente : on choisit l’outil qui nous semble le plus adapté pour réaliser un projet/objectif personnel pas pour gagner économiquement face à ses concurrents.

Si vous êtes un développeur Java faisant de l’informatique de gestion au quotidien et que vous avez un projet personnel qui implique du développement pour un système embarqué ou qui nécessite de la manipulation et de la visualisation de données, il ne semble pas inconsidéré d’apprendre un autre langage. Cela peut-être aussi parce que vous voulez apprendre la programmation à votre enfant ou que vous vouliez développer un site ou des outils numériques pour cette association que vous venez de rejoindre : le ou les langages que vous connaissez déjà peuvent ne pas être les plus adaptés, et en apprendre un nouveau peut être une option.

Dans tous les cas, cela constitue une raison tout à fait valable pour apprendre un nouveau langage de programmation, même si cet apprentissage demande un investissement certain. La première chose à faire est quand même de voir si vous ne pouvez pas atteindre votre objectif avec les outils que vous connaissez déjà. Si vraiment ce n’est pas le cas, cela peut être l’opportunité d’élargir vôtre horizon intellectuel.

Alors faut-il apprendre un nouveau langage de programmation ?

Il est nécessaire dans chaque métier et corporation de veiller à toujours apprendre et développer ses compétences. C’est particulièrement important dans les métiers du développement logiciel dans lequel les évolutions sont nombreuses, fréquentes et parfois extrêmement rapides. Le développement d’un logiciel demande la maitrise d’un ou de plusieurs langages de programmation, mais pas seulement.

En effet, le développement d’application un tant soit peu complexe fait intervenir des équipes plus ou moins grandes qui doivent s’organiser et se coordonner, implique un travail de conception et d’architecture en continue, demande la mise en place de composants techniques variés (bases de données en tout genre, *middlewares* variés, etc.), requiert l’écriture de documentation, nécessite des tests à tous les niveaux. Et une fois l’application développée et testée, il faut la déployer pour la mettre à disposition des utilisateurs.

Ainsi pour progresser dans sa pratique du développement, il ne faut pas viser qu’à l’apprentissage de langages de programmation car le temps investi dans l’apprentissage de ces derniers, c’est du temps qu’on ne peut pas allouer à d’autres apprentissages qui peuvent s’avérer tout aussi importants. Néanmoins, l’apprentissage d’un langage de programmation peut être pertinent et utile, et est en soit un axe de veille technologique tout à fait valide.

J’espère avoir pu apporter des axes de réflexion qui aident à évaluer l’intérêt d’investir du temps et de l’énergie par rapport à son contexte personnel, et pourra ainsi vous aider à répondre à cette question dans le vôtre.

Remerciement

Je remercie mes collègues Anthony Tenneriello et Thomas Verhoken pour leurs relectures attentives et leurs remarques.


메타데이터
post_id
2f9d81f4659f
slug
faut-il-apprendre-un-nouveau-langage-de-programmation-2f9d81f4659f
url
https://medium.com/norsys-octogone/faut-il-apprendre-un-nouveau-langage-de-programmation-2f9d81f4659f
canonical_url
https://medium.com/norsys-octogone/faut-il-apprendre-un-nouveau-langage-de-programmation-2f9d81f4659f
author_url
https://medium.com/@christophe.vaudry
status
ok
fetched_at
2026-07-22 12:36:18