paint-brush
Pourquoi vous devez apprendre plusieurs langages de programmationpar@wagslane
3,410 lectures
3,410 lectures

Pourquoi vous devez apprendre plusieurs langages de programmation

par Lane Wagner5m2022/07/31
Read on Terminal Reader
Read this story w/o Javascript

Trop long; Pour lire

Boot.dev est un programme d'informatique intégré à la batterie dans le navigateur. La majorité du programme peut simplement utiliser JavaScript, Python et Go. Le programme complet pour [Boot.dev] ne nécessitera que l'utilisation d'environ 6 langues au total. Apprendre plusieurs langues supprime votre vision tunnel et vous aide à comprendre différentes approches de la programmation. En vous exposant à différents langages, vous commencerez à voir certains des avantages, des inconvénients, des similitudes et des différences entre les différentes approches de [programmation]

Company Mentioned

Mention Thumbnail

Coin Mentioned

Mention Thumbnail
featured image - Pourquoi vous devez apprendre plusieurs langages de programmation
Lane Wagner HackerNoon profile picture

J'ai construit Boot.dev en tant que projet parallèle au cours des deux dernières années et de nombreux nouveaux étudiants ont récemment posé la même question :


« Pourquoi votre programme d'études en informatique exige-t-il que j'apprenne plus d'un langage de programmation ? »


Il semble qu'un bon nombre d'étudiants rejoignent la plateforme avec l'opinion qu'ils préféreraient « maîtriser pleinement une seule langue » plutôt que de « partager leurs efforts ». Alors que je prévois de mieux expliquer cela dans l'application elle-même à l'avenir, je voulais écrire ce billet de blog pour fournir une explication approfondie de la raison pour laquelle nous vous avons fait apprendre plusieurs langues au cours de notre programme CS.

Tout d'abord, quelques informations sur Boot.dev

Afin que vous puissiez comprendre d'où je viens, laissez-moi vous expliquer ce qu'est Boot.dev et quels sont ses objectifs en tant que plate-forme éducative.


Boot.dev est un programme d'informatique intégré dans le navigateur. Nous avons des opinions bien arrêtées sur la meilleure façon d'apprendre à coder. Par exemple:


  • Nous enseignons d'abord les concepts d'informatique et de génie logiciel. Les technologies spécifiques ne sont qu'un mécanisme par lequel nous enseignons les concepts.
  • Nous sommes entièrement pratiques
  • Nous avons des cours guidés et des projets non guidés
  • Nous enseignons les technologies et les langues modernes
  • Nous avons un programme linéaire pour que les étudiants n'aient pas à se soucier de ce qu'ils devraient apprendre ensuite
  • Nous gamifions l'expérience autant que possible pour garder les étudiants motivés

Alors pourquoi l'ensemble du programme ne peut-il pas être enseigné dans une seule langue ?

Si vous regardez le programme CS complet que nous avons prévu dans notre feuille de route publique sur Github , vous verrez que c'est fondamentalement impossible. Certains concepts sont si étroitement liés à des technologies spécifiques qu'il est insensé d'essayer de les enseigner tous de la même manière. Regardons quelques exemples triviaux.


  • Il est difficile d'enseigner vraiment les bases de données sans SQL
  • Il est difficile d'enseigner la programmation fonctionnelle sans un langage purement fonctionnel
  • Il est difficile d'enseigner la POO sans un langage orienté objet
  • Il est difficile d'enseigner les interfaces matérielles sans assembleur
  • Il est difficile d'enseigner la dactylographie sans un langage fortement typé
  • Il est difficile d'enseigner le Web sans JavaScript
  • Il est difficile d'enseigner le ML sans Python

En bref, nous avons 2 objectifs concurrents :

  • Nous voulons enseigner tous les concepts en utilisant le moins de technologies possible
  • Nous voulons enseigner tous les concepts en utilisant les technologies qui enseignent le mieux le concept

Alors, combien de langues allez-vous m'apprendre ?

Au cours de mon diplôme universitaire traditionnel en informatique, j'ai utilisé plus de 12 langages de programmation. Je pense que c'est trop. Je ne veux pas enseigner les langues pour le plaisir de les enseigner. C'est vraiment un problème d'optimisation où nous voulons introduire le moins de langues possible, tout en enseignant efficacement chaque concept que nous voulons enseigner. Je suis convaincu que le programme complet pour Boot.dev ne nécessitera que l'utilisation d'environ 6 langues au total, et que la majorité du programme peut simplement utiliser JavaScript, Python et Go.

Apprendre plusieurs langues supprime votre vision tunnel

Il y a un avantage supplémentaire à apprendre quelques langages de programmation différents dont nous n'avons pas encore parlé. En vous exposant à différents langages, vous commencerez à voir certains des avantages, des inconvénients, des similitudes et des différences entre les différentes approches de la programmation .


Si vous n'écrivez qu'un seul langage de programmation, il est facile de supposer qu'une certaine façon de faire les choses est la « meilleure façon », la « bonne façon », ou peut-être même la « seule façon ».

Par exemple, JavaScript et Go ont des approches très différentes du flux d'erreur :

 // JavaScript try { doSomethingDangerous() } catch (err){ console.log(err) } // Go err := doSomethingDangerous() if err != nil { fmt.Println(err) }

En vous familiarisant avec plusieurs langues, je crois fermement que vous aurez une compréhension plus approfondie de chaque technologie et quand vous voudrez peut-être utiliser différents outils.

Serai-je un touche-à-tout, maître de rien ?

Personnellement, je ne pense pas. Je pense vraiment que si vous deviez vous concentrer sur un seul langage de programmation depuis le début de votre parcours d'apprentissage jusqu'à votre premier travail de codage, vous seriez en fait dans un état pire que si vous aviez passé du temps à élargir vos horizons.

Certaines personnes supposent que « apprendre à coder » consiste à « apprendre un langage de programmation ». Ils pensent que si vous apprenez Python, et que vous voulez ensuite apprendre JavaScript, vous recommencerez à partir de 0.


Cela ne pourrait pas être plus éloigné de la vérité.

Apprendre votre deuxième langage de programmation prendra 1/5 du temps qu'il a fallu pour apprendre votre premier, car environ 80 % des concepts que vous avez appris s'appliqueront aux deux langages. Une fois que vous avez utilisé 3 ou 4 langages de codage différents, vous pouvez regarder le code dans presque n'importe quelle langue et comprendre ce qu'il dit. Vous pourriez avoir besoin de rechercher la syntaxe de temps en temps, mais tout le monde le fait de toute façon .


Eh bien, pourriez-vous au moins réduire le nombre de langages à usage général ?

Si vous avez parcouru le programme, vous avez peut-être remarqué que nous avons opté pour 3 langues pour enseigner la majorité du contenu :


Nous allons essayer d'utiliser ces 3 langages autant que possible , en ne mélangeant d'autres technologies que si le sujet l'exige. Par exemple, utiliser SQL lorsque nous parlons de bases de données relationnelles.

Laissez-moi vous expliquer pourquoi nous avons choisi ces trois-là en particulier.

Pourquoi Javascript ?

Vous ne pouvez pas vraiment vous éloigner de JavaScript de nos jours. Il est difficile d'apprendre la programmation backend (ce qui intéresse la plupart de nos étudiants) sans d'abord comprendre pourquoi un backend existe. Un backend n'existe que pour alimenter un front-end, il est donc logique que nous devions d'abord vous apprendre quelques bases du front-end. Si vous allez créer un front-end sur le Web, il utilisera presque certainement JavaScript, donc notre main est forcée sur celui-ci.

Pourquoi Python ?

Python s'écarte de votre chemin, syntaxiquement parlant. Les algorithmes et les structures de données sont des concepts que les étudiants ont souvent plus de mal à maîtriser, il était donc logique pour nous de choisir un langage qui permettrait à nos étudiants de se concentrer le plus possible sur la logique. Python se lit également comme l'anglais à bien des égards, ce qui permet encore une fois de voir plus facilement ce que fait un algorithme en Python en un coup d'œil. De plus, nous avons du contenu d'IA et de ML vers la fin du programme, c'est donc une situation de deux oiseaux sur pierre où nous pouvons revoir Python à ce stade sans que nos étudiants aient besoin d'apprendre une langue supplémentaire.

Pourquoi aller?

Notre diplôme en informatique met l'accent sur la programmation backend , et j'ai personnellement eu un énorme succès avec Go en tant que langage backend. Go facilitera l'enseignement de choses telles que la concurrence, les compilateurs et les systèmes distribués que certains des autres choix auxquels j'ai pensé. Je pense que nous pourrions éventuellement avoir un cours Rust qui va à un niveau encore plus bas en termes de gestion manuelle de la mémoire, mais je n'ai pas encore décidé de cela.

Des questions? Commentaires? Préoccupations ?

Le meilleur moyen de me joindre directement est de rejoindre le serveur Boot.dev Discord . Vous pouvez aussi me @ me sur Twitter . Dites-moi ce que vous pensez de notre approche !


Également publié ici https://blog.boot.dev/education/learn-multiple-programming-languages/