Quel langage de programmation devrais-je apprendre en premier en 2021 ? ʇdıɹɔsɐʌɐɾ :ɹǝʍsuɐ

Le voyage de la plupart des gens vers l’apprentissage de la programmation commence par une seule recherche tardive sur Google.

Usuellement, c’est quelque chose comme « Apprendre ______ »

Mais comment décident-ils du langage à rechercher ?

« Ils plaisantent toujours sur Java dans la Silicon Valley. Je suppose que je devrais apprendre ça. »

Or:

« Haskell. Si chaud en ce moment. Haskell. »

Or:

« Cette marmotte de Go est juste tellement mignonne. »

Et puis il y a le reste d’entre nous. Nous chercherons probablement quelque chose comme :

« Quel langage de programmation dois-je apprendre en premier ? »

Peu de questions sont si fréquemment posées qu’elles bénéficient d’un traitement infographique complet. Mais celle-ci en fait partie :

Crédit image

Décider de votre premier langage de programmation peut être un processus amusant – un peu comme un de ces  » Quel personnage de Quentin Tarantino êtes-vous ? », quiz de personnalité.

Mais avant de courir apprendre Ruby parce que vous aimiez jouer avec Play-Doh quand vous étiez enfant, laissez-moi vous rappeler : les enjeux sont assez élevés ici.

Il vous faudra des centaines d’heures de pratique pour devenir un tant soit peu compétent avec votre premier langage de programmation.

Vous devez donc prendre en compte les facteurs suivants :

  • le marché du travail pour le langage
  • les perspectives à long terme pour le langage
  • la facilité d’apprentissage du langage
  • les projets que vous pouvez construire pendant votre apprentissage (et partager avec vos amis pour rester motivé)

Chaque année apporte de nouveaux langages de programmation, et avec eux, de nouveaux articles universitaires. Et de nouvelles bandes dessinées web.

Sérieusement. Regardez cette perle du mois dernier :

Quand il s’agit de choisir un premier langage de programmation, les options ne manquent pas. Pour réduire un peu la liste, 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 s’est progressivement élevé pour devenir le choix le plus populaire.

Mais caché en dessous de ceux-ci se trouve le petit moteur qui pourrait, lentement choo-choo’ing en popularité au cours des dernières années. Et ce moteur, c’est JavaScript.

Avant de parler de ces langages de programmation, laissez-moi clarifier les choses :

  • Je ne soutiens pas qu’un langage est objectivement meilleur qu’un autre
  • Je suis d’accord pour que les développeurs finissent par apprendre plus d’un langage
  • Je soutiens qu’ils doivent d’abord bien apprendre un langage. Et – comme vous pouvez probablement le deviner à partir du texte à l’envers dans mon titre – ce langage devrait être JavaScript.

Démarrons les choses en explorant 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 elle-même est souvent considérée comme une extension des mathématiques, ou un lien avec un diplôme en génie électrique.

Bien sûr, comme vous l’avez peut-être déjà entendu :

« L’enseignement de l’informatique ne peut faire de quiconque un programmeur expert, pas plus que l’étude des pinceaux et des pigments ne peut faire de quelqu’un un peintre expert. » – Eric S. Raymond

En 2016, de nombreuses universités traitent encore la programmation comme s’il s’agissait d’informatique, et l’informatique comme s’il s’agissait de mathématiques.

En conséquence, de nombreux cours d’introduction à la programmation se concentrent sur des langages à faible niveau d’abstraction comme C, ou sur des langages centrés sur les mathématiques comme MATLAB.

Et les directeurs de département gardent généralement le cap, en pointant du doigt les classements annuels des langages de programmation comme l’indice TIOBE, ou celui-ci de l’IEEE:

La plupart de ces classements sont pratiquement identiques à ce qu’ils étaient il y a 10 ans.

Mais le changement se produit. Même dans le milieu universitaire.

En 2014, Python a dépassé Java en tant que langage d’enseignement le plus populaire dans les meilleurs programmes d’informatique américains.

Et un autre changement est voué à… éventuellement… se produire.

Parce que si l’on regarde les langages réellement utilisés par la main-d’œuvre, on obtient un tableau très différent :

JavaScript est de loin le langage le plus populaire utilisé par les 49 397 développeurs qui ont répondu à l’enquête 2016 de Stack Overflow.

Plus de la moitié des développeurs utilisent JavaScript. Il est vital pour le développement web frontal et de plus en plus pertinent pour le développement back-end. Et il se développe rapidement dans des domaines comme le développement de jeux et l’Internet des objets.

Les offres d’emploi mentionnent également JavaScript plus que tout autre langage de programmation autre que Java :

Données du plus grand agrégateur d’offres d’emploi au monde, Indeed.com

Ce n’est pas un hasard si nous avons construit le cursus 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 préconise 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é du travail

Si vous apprenez à programmer par pure curiosité intellectuelle, n’hésitez pas à ignorer ce facteur. Mais si vous – comme la grande majorité des personnes qui apprennent à programmer – voulez utiliser cette compétence pour obtenir un emploi, c’est une considération importante.

Comme je l’ai mentionné précédemment, Java est mentionné dans plus d’offres d’emploi que tout autre langage de programmation. JavaScript arrive juste derrière.

Mais voici ce qu’il en est de JavaScript : même s’il existe depuis 20 ans, il n’est devenu que récemment un outil sérieux autour duquel des entreprises comme Netflix, Walmart et PayPal construiraient des applications entières.

En conséquence, de nombreuses entreprises embauchent des développeurs JavaScript, mais il n’y en a tout simplement pas tant que ça sur le marché du travail.

Données d’Indeed.com

Il y a 2,7 développeurs Java en concurrence pour chaque poste Java ouvert. La concurrence pour les postes PHP et iOS est tout aussi féroce.

Mais pour chaque poste JavaScript ouvert, il n’y a que 0,6 développeur JavaScript. C’est vraiment un marché de vendeurs 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 pull requests que le projet Java, Python ou Ruby moyen. Et pour couronner le tout, JavaScript connaît une croissance plus rapide que tout autre langage populaire.

Source : État de l’Octoverse 2016 de GitHub

L’écosystème de JavaScript bénéficie également d’un lourd investissement en argent et en talents d’ingénierie de la part d’entreprises comme Google, Microsoft, Facebook et Netflix.

Par exemple, TypeScript (un surensemble de JavaScript à typage statique) compte plus de 100 contributeurs open source, dont beaucoup sont des employés de Microsoft et de Google payés pour y travailler.

Ce type de coopération interentreprises est plus difficile à trouver avec Java. Oracle – qui possède effectivement Java grâce à son acquisition de Sun Microsystems – poursuit souvent en justice les entreprises qui tentent de l’étendre.

Facteur n°3 : Difficulté d’apprentissage

Ceci est une parodie d’une bande dessinée XKCD.

La plupart des programmeurs seraient d’accord pour dire que les langages de script de haut niveau sont relativement faciles à apprendre. JavaScript entre dans cette catégorie, avec Python et Ruby.

Même si les universités enseignent encore des langages comme Java et C++ comme premiers langages, ils sont considérablement plus difficiles à apprendre.

Facteur n°4 : les projets que vous pouvez construire avec lui

C’est là que JavaScript brille vraiment. JavaScript s’exécute sur tout appareil doté d’un navigateur, directement dans le navigateur. Vous pouvez construire fondamentalement n’importe quoi avec JavaScript, et le partager n’importe où.

En raison de l’omniprésence de JavaScript, le cofondateur de Stack Overflow Jeff Atwood a inventé sa désormais célèbre loi :

« Toute application qui peut être écrite en JavaScript, finira par être écrite en JavaScript. »

Et avec chaque mois qui passe, la loi d’Atwood tient bon.

Java a autrefois promis de fonctionner partout, aussi. Vous vous souvenez peut-être des applets Java. Oracle les a officiellement tuées au début de cette année.

Python souffre à peu près des mêmes problèmes :

« Comment puis-je donner ce jeu que j’ai fait à mon ami ? Encore mieux, est-ce qu’il y a un moyen peut mettre ça sur mon téléphone pour que je puisse le montrer aux enfants à l’école sans qu’ils aient à l’installer ? Hum. » – James Hague dans Retiring Python as a Teaching Language

Par contraste, voici quelques applications que les membres de notre communauté open source ont construites dans leurs navigateurs sur CodePen. Vous pouvez cliquer dessus et les utiliser directement dans votre navigateur :

Jeu Simon style années 1970
Le jeu de la vie de Conway
La guerre des étoiles-Recherche Wikipedia thématique
Un jeu roguelike dungeon crawler

Apprenez bien une langue. Puis apprenez-en une deuxième.

Si vous continuez à sauter d’une langue à l’autre, vous n’irez pas loin.

Pour aller au-delà des bases, vous devez bien apprendre votre première langue. Ensuite, votre deuxième langage sera beaucoup, beaucoup plus facile.

À partir de là, vous pouvez bifurquer, et devenir un développeur plus complet en apprenant beaucoup de langages :

  • C est un excellent moyen d’apprendre comment les ordinateurs fonctionnent réellement en termes de gestion de la mémoire, et est utile dans le calcul haute performance
  • C++ est excellent pour le développement de jeux.
  • Python est génial pour les sciences et les statistiques.
  • Java est important si vous voulez travailler dans de grandes entreprises technologiques.

Mais apprenez d’abord JavaScript.

OK, maintenant je vais tenter l’impossible – je vais essayer d’anticiper les objections de la section des commentaires.

Objection n°1 : Mais JavaScript n’est-il pas lent ?

JavaScript est – dans la plupart des cas pratiques – aussi rapide que les langages hautes performances.

JavaScript (Node.js) est plusieurs fois plus rapide que Python, Ruby et PHP.

Il est également presque aussi rapide que les langages hautes performances comme C++, Java et Go.

Voici les résultats du benchmark inter-langages récent le plus complet :

Objection #2 : Mais JavaScript n’est pas typée statiquement

Comme Python et Ruby, JavaScript est typée dynamiquement, ce qui est pratique. Mais vous pouvez avoir des problèmes. Ici, j’ai l’intention que exampleArray soit un tableau. Je définis ses valeurs, puis je vérifie sa longueur – c’est-à-dire le nombre d’éléments qu’il contient.

exampleArray = -> exampleArray.length-> 2

Mais ensuite, je lui attribue accidentellement une chaîne de caractères.

exampleArray = "text”-> "text”exampleArray.length-> 4

Ce genre d’erreurs arrive tout le temps dans les langages typés dynamiquement. La plupart des développeurs se contentent de mettre en place des contrôles pour les éviter, et d’écrire des tests en conséquence.

Si vous devez absolument avoir un typage statique dans votre premier langage de programmation, alors je vous recommande quand même d’apprendre JavaScript en premier. Ensuite, vous pourrez rapidement vous mettre à TypeScript.

« Typecript a une courbe d’apprentissage, mais si vous connaissez déjà JavaScript, elle se fera en douceur. » – Alex Ewerlöf sur TypeScript

Objection #3 : Mais je veux vraiment faire une application mobile

Je recommande toujours d’apprendre JavaScript en premier.

  1. JavaScript propose plusieurs outils pour faire des applications mobiles natives, comme Angular Cordova et React Native.
  2. Pour que votre application mobile fasse réellement 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 approprié, comme Node.js + Express.js.

Aussi, il convient de souligner que les meilleurs jours du développement d’applications mobiles pourraient très bien être derrière lui.

Pour commencer, autant les gens utilisent des applications mobiles, près de la moitié des emplois de développeurs sont des développements web. Comparez cela à seulement 8 % des emplois qui impliquent le développement d’applications mobiles.

Les professions de 49 525 développeurs, selon les réponses à l’enquête Stack Overflow de 2016.

La grande vision du « il y a une application pour ça » ne s’est pas concrétisée. Au lieu de cela, la plupart des propriétaires de smartphones ont cessé de télécharger de nouvelles applications.

Bien sûr – ils utilisent encore des applications. Principalement Facebook, Google Maps, et une poignée d’autres. Ainsi, une grande partie de la demande de développeurs d’applications mobiles est concentrée dans quelques grands employeurs.

Les perspectives pour ces emplois de développement mobile sont difficiles à prévoir. De nombreux aspects du développement, de la maintenance et de la distribution des apps mobiles sont plus faciles avec JavaScript. Ainsi, des entreprises comme Facebook et Google investissent massivement dans de meilleurs outils pour les construire en utilisant JavaScript.

Depuis 2016, à peu près tout le développement est du développement web. Tout touche cette grande plateforme qu’est « le web ». Et la prochaine vague d’appareils auxquels vous parlerez autour de votre maison, et les voitures qui vont chercher vos enfants à l’école – ils seront tous canalisés ensemble en utilisant le web, aussi.

Et cela signifie JavaScript.

Objection n°4 : JavaScript n’est-il pas un langage jouet qui a été écrit en 10 jours ?

JavaScript a une histoire excentrique.

Vous entendrez sans doute des gens faire des blagues à ses dépens.

Et bien les gens aiment détester le C++, aussi. Et comme JavaScript, C++ a réussi malgré cette haine, et maintenant il est à peu près partout aussi.

Alors, si quelqu’un vous fait un jour la tête pour avoir appris JavaScript au lieu du langage d’élite de la semaine, rappelez-vous les mots célèbres du gars qui a créé C++ :

« Il n’y a que deux sortes de langages de programmation : ceux dont les gens râlent 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. ?

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *