Le parcours de la plupart des gens vers l’apprentissage de la programmation commence par une simple recherche tard dans la nuit sur Google.
En général, c’est quelque chose comme : « Apprendre ______ »
Mais comment décident-ils quel langage rechercher ?
« Ils plaisantent toujours sur Java dans Silicon Valley. Je suppose que je devrais apprendre ça. »
Ou :
« Haskell. Tellement tendance en ce moment. Haskell. »
Ou :
« Ce gopher de Go est juste trop mignon. »
Et puis il y a le reste d’entre nous.
Nous allons probablement chercher quelque chose comme : « Quel langage de programmation devrais-je apprendre en premier ? »
Peu de questions sont si fréquemment posées qu’elles obtiennent un traitement infographique complet. Mais c’est l’une d’elles :
Choisir son premier langage de programmation peut être un processus amusant — un peu comme l’un de ces quiz de personnalité « Quel personnage de Quentin Tarantino es-tu ? ».
Mais avant de courir apprendre Ruby parce que tu as aimé jouer avec de la pâte à modeler étant enfant, permettez-moi de vous rappeler : les enjeux sont assez élevés ici.
Il vous faudra des centaines d’heures de pratique pour devenir même légèrement compétent avec votre premier langage de programmation.
Donc, vous devriez considérer les facteurs suivants :
- le marché de l’emploi pour le langage
- les perspectives à long terme pour le langage
- la facilité d’apprentissage du langage
- les projets que vous pouvez réaliser pendant votre apprentissage (et partager avec des amis pour rester motivé)
Chaque année apporte de nouveaux langages de programmation, et avec eux, de nouveaux articles académiques. Et de nouvelles bandes dessinées web.
Sérieusement. Découvrez ce bijou du mois dernier :
Lorsqu’il s’agit de choisir un premier langage de programmation, il n’y a pas de pénurie d’options. Pour affiner un peu, voici les recherches Google les plus courantes liées à l’apprentissage de la programmation, au cours des 12 dernières années :
Java a connu des hauts et des bas.
Python a progressivement émergé comme le choix le plus populaire.
Mais juste en dessous de ceux-ci se trouve le Petit Moteur qui Pourrait, grimpant lentement en popularité ces dernières années. Et ce moteur est JavaScript.
Avant de parler de ces langages de programmation, laissez-moi clarifier :
- Je ne soutiens pas qu’un langage soit objectivement meilleur qu’un autre
- Je suis d’accord que les développeurs devraient finalement apprendre plus d’un langage
- Je soutiens qu’ils devraient d’abord bien apprendre un langage. Et — comme vous pouvez probablement le deviner d’après le texte à l’envers dans mon titre — ce langage devrait être JavaScript.
Commençons par explorer comment la programmation est actuellement enseignée à l’école.
Informatique 101
Les universités ont traditionnellement enseigné la programmation sous l’égide de l’informatique, qui est souvent considérée comme une extension des mathématiques ou un lien avec un diplôme en ingénierie électrique.
Bien sûr, comme vous l’avez peut-être entendu maintenant :
« L’éducation en informatique ne peut rendre personne expert en programmation plus que l’étude des pinceaux et des pigments ne peut faire de quelqu’un un peintre expert. » — Eric S. Raymond
De nombreuses universités continuent de traiter la programmation comme si c’était de l’informatique, et l’informatique comme si c’était des mathématiques.
En conséquence, de nombreux cours d’introduction à la programmation se concentrent sur des langages à faible niveau d’abstraction comme le C, ou des langages mathématiquement orientés comme MATLAB.
Et les présidents de département restent généralement sur cette voie, se référant à des classements annuels des langages de programmation comme le TIOBE Index, ou celui-ci de l’ IEEE :
La plupart de ces classements sont pratiquement identiques à ceux d’il y a 10 ans.
Mais le changement se produit. Même dans le monde académique.
En 2014, Python a dépassé Java en tant que langue d’enseignement la plus populaire dans les meilleurs programmes d’informatique des États-Unis.
Et un autre changement est destiné à… finalement… se produire.
Car si vous regardez les langages réellement utilisés par le marché du travail, le tableau est très différent :
JavaScript est de loin le langage le plus populaire utilisé par les 49 397 développeurs ayant répondu à l’enquête de Stack Overflow.
Plus de la moitié des développeurs utilisent JavaScript. C’est essentiel pour le développement web front-end et de plus en plus pertinent pour le développement back-end. Et cela s’étend rapidement à des domaines comme le développement de jeux et l’Internet des objets.
Les annonces d’emploi mentionnent également JavaScript plus que tout autre langage de programmation, à l’exception de Java :
Données du plus grand agrégateur d’annonces d’emploi au monde, [Indeed.com]
Il n’est pas surprenant que nous ayons construit le programme de notre communauté open source autour de JavaScript. Au cours des deux dernières années, plus de 5 000 personnes ont utilisé Free Code Camp pour obtenir leur premier emploi de développeur.
Je ne défends pas JavaScript parce que je l’enseigne. J’enseigne JavaScript parce que c’est le chemin le plus sûr vers un premier emploi de développeur.
Mais JavaScript est-il fait pour vous ? Est-il digne d’être votre premier langage de programmation ? Explorons ces facteurs que j’ai mentionnés plus tôt.
Facteur n°1 : Le marché de l’emploi
Si vous apprenez à programmer uniquement par curiosité intellectuelle, n’hésitez pas à sauter ce facteur. Mais si vous — comme la grande majorité des personnes apprenant à programmer — souhaitez utiliser cette compétence pour obtenir un emploi, cela constitue une considération importante.
Comme je l’ai mentionné plus tôt, Java est cité dans plus d’annonces d’emploi que tout autre langage de programmation. JavaScript est juste derrière.
Mais voici le fait concernant JavaScript : même s’il existe depuis 20 ans, il n’est devenu qu’un outil sérieux que des entreprises comme Netflix, Walmart et PayPal utilisent pour construire des applications entières que récemment.
En conséquence, de nombreuses entreprises recrutent des développeurs JavaScript, mais il n’y en a tout simplement pas tant que ça sur le marché de l’emploi.
Données de [Indeed.com]
Il y a 2,7 développeurs Java qui se disputent chaque poste Java ouvert. La concurrence pour les emplois PHP et iOS est également féroce.
Mais pour chaque poste JavaScript ouvert, il n’y a que 0,6 développeurs JavaScript. C’est vraiment un marché favorable pour les développeurs ayant des compétences en JavaScript.
Facteur n°2 : Les perspectives à long terme
Le projet JavaScript moyen reçoit deux fois plus de demandes de tirage que le projet moyen en Java, Python ou Ruby. De plus, JavaScript croît plus rapidement que tout autre langage populaire.
Les langages de programmation les plus utilisés pour les projets GitHub, qui sont un bon indicateur de la popularité globale des langages
L’écosystème de JavaScript bénéficie également d’un investissement considérable en argent et en talents techniques de la part d’entreprises telles que Google, Microsoft, Facebook et Netflix.
Par exemple, TypeScript (un sur-ensemble typé statiquement de JavaScript) a plus de 100 contributeurs open source, dont beaucoup sont des employés de Microsoft et Google payés pour travailler dessus.
Ce type de coopération inter-entreprises est plus difficile à trouver avec Java. Oracle — qui possède effectivement Java grâce à son acquisition de Sun Microsystems — poursuit souvent les entreprises qui tentent d’y apporter des améliorations.
Facteur n°3 : Difficulté d’apprentissage
Ceci est une parodie d’un [comic XKCD]
La plupart des programmeurs s’accordent à dire que les langages de script de haut niveau sont relativement faciles à apprendre. JavaScript tombe dans cette catégorie, tout comme Python et Ruby.
Bien que les universités continuent d’enseigner des langages comme Java et C++ comme premiers langages, ils sont considérablement plus difficiles à apprendre.
Facteur n°4 : Projets que vous pouvez construire avec
C’est ici que JavaScript brille vraiment. JavaScript fonctionne sur n’importe quel appareil disposant d’un navigateur, directement dans le navigateur. Vous pouvez construire pratiquement n’importe quoi avec JavaScript et le partager partout.
En raison de l’omniprésence de JavaScript, Jeff Atwood, co-fondateur de Stack Overflow, a formulé sa célèbre loi :
« Toute application qui peut être écrite en JavaScript sera finalement écrite en JavaScript. »
Et chaque mois qui passe, la Loi d’Atwood reste solide.
Java avait également promis de fonctionner partout. Vous vous souvenez peut-être des Java Applets. Oracle les a officiellement éliminées plus tôt cette année.
Python souffre de problèmes similaires :
« Comment puis-je donner ce jeu que j’ai créé à mon ami ? Mieux encore, existe-t-il un moyen de le mettre sur mon téléphone pour que je puisse le montrer aux enfants à l’école sans qu’ils aient à l’installer ? Euh. » — James Hague dans Retiring Python as a Teaching Language
En revanche, voici quelques applications que des membres de notre communauté open source ont construites dans leurs navigateurs sur CodePen. Vous pouvez les consulter et les utiliser directement dans votre navigateur :
Recherche Wikipedia sur le thème Star Wars
Un jeu de type roguelike dans un donjon
Apprenez une langue correctement. Ensuite, apprenez une deuxième.
Si vous continuez à passer d’une langue à l’autre, vous n’irez pas loin.
Pour aller au-delà des bases, vous devez bien maîtriser votre première langue. Ensuite, votre deuxième langue sera beaucoup, beaucoup plus facile.
À partir de là, vous pouvez vous diversifier et devenir un développeur plus complet en apprenant plusieurs langages :
- C est un excellent moyen de comprendre comment fonctionnent réellement les ordinateurs en matière de gestion de la mémoire, et il est utile dans le calcul haute performance.
- C++ est idéal pour le développement de jeux.
- Python est génial pour la science et les statistiques.
- Java est important si vous souhaitez travailler dans de grandes entreprises technologiques.
Mais apprenez d’abord JavaScript.
D’accord, maintenant je vais tenter l’impossible — je vais essayer d’anticiper les objections venant de la section des commentaires.
Objection n°1 : Mais JavaScript n’est-il pas lent ?
JavaScript est — pour la plupart des usages pratiques — aussi rapide que les langages haute performance.
JavaScript (Node.js) est des ordres de grandeur plus rapide que Python, Ruby et PHP.
Il est également presque aussi rapide que des langages haute performance comme C++, Java et Go.
Voici les résultats du benchmark inter-langage le plus complet récemment réalisé :
Objection n°2 : Mais JavaScript n’est pas typé statiquement
Comme Python et Ruby, JavaScript est typé dynamiquement, ce qui est pratique. Mais cela peut poser des problèmes. Ici, je veux que exampleArray
soit un tableau. Je définis ses valeurs, puis vérifie sa longueur — c’est-à-dire le nombre d’éléments qu’il contient.
exampleArray = [1, 2]
-> [1, 2]
exampleArray.length
-> 2
Mais ensuite, je l’assigne accidentellement à une chaîne de caractères.
exampleArray = “texte”
-> “texte”
exampleArray.length
-> 4
Ce type d’erreurs survient tout le temps dans les langages à typage dynamique. La plupart des développeurs mettent simplement en place des vérifications pour les éviter et écrivent des tests en conséquence.
Si vous devez absolument avoir un typage statique dans votre premier langage de programmation, je vous recommande tout de même d’apprendre JavaScript en premier. Ensuite, vous pourrez rapidement vous familiariser avec TypeScript.
« TypeScript a une courbe d’apprentissage, mais si vous connaissez déjà JavaScript, ce sera une courbe douce. » — Alex Ewerlöf sur TypeScript
Objection n°3 : Mais je veux vraiment créer une application mobile
Je recommande toujours d’apprendre JavaScript en premier.
- JavaScript propose plusieurs outils pour créer des applications mobiles natives, tels que Angular Cordova et React Native.
- Pour que votre application mobile puisse réellement faire quelque chose d’intéressant, elle aura probablement besoin d’un back-end approprié, que vous voudrez construire avec un cadre de développement web adéquat, comme Node.js + Express.js.
Il convient également de noter que les meilleures années du développement d’applications mobiles sont peut-être derrière nous.
Pour commencer, même si les gens utilisent beaucoup les applications mobiles, près de la moitié de tous les emplois de développeurs concernent le développement web. À comparer avec les seuls 8 % d’emplois qui impliquent le développement d’applications mobiles.
Développeurs par profession, selon l’enquête Stack Overflow 2023. Cette question a reçu 76 872 réponses de développeurs ayant participé à l’enquête, ce qui la rend assez représentative.
La grande vision de « il y a une application pour ça » ne s’est pas réalisée. Au contraire, la plupart des propriétaires de smartphones ont cessé de télécharger de nouvelles applications.
Certes, ils utilisent encore des applications. Principalement Facebook, Google Maps, et quelques autres. Ainsi, une grande partie de la demande pour les développeurs d’applications mobiles est concentrée chez quelques grands employeurs.
Les perspectives pour ces emplois dans le développement mobile sont difficiles à prévoir. De nombreux aspects du développement, de la maintenance et de la distribution d’applications mobiles sont plus faciles avec JavaScript. Ainsi, des entreprises comme Facebook et Google investissent massivement dans de meilleurs outils pour les créer en utilisant JavaScript.
Pratiquement tout le développement est du développement web. Tout touche cette grande plateforme qu’est « le web ». Et la prochaine vague d’appareils avec lesquels vous interagirez chez vous, ainsi que des voitures qui viendront chercher vos enfants à l’école — tout cela sera également relié entre eux via le web.
Et cela signifie JavaScript.
Objection n°4 : JavaScript n’est-il pas un langage de jouet écrit en 10 jours ?
JavaScript a une histoire singulière.
Vous entendrez sans doute des gens faire des blagues à son sujet.
Eh bien, les gens aiment aussi détester C++. Et comme JavaScript, C++ a réussi malgré cette haine, et aujourd’hui il est pratiquement partout également.
Alors si quelqu’un vous fait des reproches pour avoir appris JavaScript au lieu d’un langage d’élite du moment, rappelez-vous les célèbres mots de celui qui a créé C++ :
« Il n’y a que deux types de langages de programmation : ceux dont les gens se plaignent toujours et ceux que personne n’utilise. » — Bjarne Stroustrup
J’écris uniquement sur la programmation et la technologie. Si vous me suivez sur Twitter je ne vous ferai pas perdre votre temps. ?
Le contenu de cet article a été traduit de l’article original.