Ce qui rend l’apprentissage d’une nouvelle langue difficile

Donc vous connaissez la langue x et vous pensez qu’il y a une bonne raison d’essayer la langue y. Le changement devrait sûrement être facile – après tout, les langages de programmation sont tous les mêmes, n’est-ce pas ? De nouvelles recherches suggèrent qu’il y a des problèmes.

Il ne fait aucun doute que la partie la plus difficile de l’apprentissage de la programmation est l’idée initiale de ce dont il s’agit. Nous avons encore tendance à enseigner aux débutants comme si apprendre une langue était la même chose qu’apprendre à programmer. Ce n’est pas le cas. Mais une fois que vous avez appris une langue, nous pouvons dire avec une certaine certitude que vous savez programmer. Vous n’êtes peut-être pas bon dans ce domaine, mais vous avez fait la transition de non-programmeur à programmeur et c’est un énorme pas en avant.

Après l’énorme saut, vous vous attendriez à ce que le changement dans une autre langue soit un trébuchement – mais apparemment non. Apprendre une autre langue est difficile à cause des interférences de ce que vous savez déjà. De nouvelles recherches de la North Carolina State University et de Microsoft suggèrent fortement que le problème est qu’une fois que vous avez appris une langue, votre état d’esprit et vos habitudes rendent le passage à une autre langue plus difficile qu’il ne devrait l’être. Qui plus est, ce fait est largement ignoré et il n’y a pas d’outils ou d’installations pour résoudre le problème ;

Pour apprendre de nouvelles langues, chaque programmeur que nous avons interrogé a utilisé l’apprentissage juste à temps, une stratégie opportuniste axée uniquement sur l’apprentissage des fonctionnalités nécessaires. Compte tenu des contraintes de temps, les programmeurs ont utilisé des ressources immédiatement disponibles telles que la documentation en ligne, des didacticiels vidéo, des recherches en ligne et des experts disponibles. Les ressources traditionnelles telles que les livres de langage de programmation n’étaient utilisées que comme référence, car les programmeurs “n’ont tout simplement pas le temps de le faire”

Apprentissage juste à temps – ah, je le connais bien et avec l’aide d’Internet, cela peut bien fonctionner 90% du temps. Quand cela échoue, cependant, vous vous retrouvez généralement dans une situation “si vous voulez y arriver, je ne commencerais pas à partir d’ici” après avoir “juste à temps” votre chemin vers le mauvais endroit.

Les interférences inter-langues sont un vrai problème :

Des interférences inter-langues se produisent dans diverses transitions linguistiques sur les messages Stack Overflow. Nous avons constaté que 61 % des 450 messages contenaient des hypothèses incorrectes sur la langue cible, et seulement 39 % contenaient des hypothèses correctes.

Ceci est très probablement une conséquence de l’approche juste à temps de l’apprentissage de la nouvelle langue. Vous continuez avec ce que vous savez et pouvez le modifier légèrement jusqu’à ce que la pratique révèle que vous ne pouvez vraiment pas faire fonctionner quelque chose et que vous devez prendre du recul et admettre que vous devez réaliser quelque chose de nouveau sur la langue.

La recherche a été effectuée en examinant les questions de Stack Overflow sur les paires de langues, puis en réalisant des entretiens. Vous pouvez voir le nombre de publications pour chaque paire de langues et le pourcentage de réponses acceptées et le pourcentage d’hypothèses de départ correctes :

lanpairs

Alors, que pouvons-nous faire à ce sujet?

L’article présente quatre solutions possibles.

Implication I—Concevoir une documentation qui réduit les interférences et soutient le transfert de connaissances.

L’idée ici est que nous avons tendance à écrire de la documentation pour les programmeurs débutants et non expérimentés. Les programmeurs expérimentés ont besoin que les principales différences soient soulignées et que les similitudes soient confirmées.

Implication II : créez des outils automatisés pour fournir des commentaires à la demande

Bon ça a l’air d’être une bonne idée en tout cas !

Implication III—Soyez intentionnel sur la syntaxe, la sémantique et la pragmatique du langage de programmation.

Celui-ci semble peu probable si nous nous attendons vraiment à ce que les concepteurs de langage tiennent compte de la facilité de conversion dans leur langue.

Implication IV : prend en charge non seulement les langages de programmation, mais aussi les écosystèmes de langage de programmation.

Cela semble également être un défi de taille – rendre l’environnement entier plus semblable aux autres environnements. Le traumatisme d’avoir à passer à de nouveaux outils fait partie du traumatisme d’avoir à faire face à une nouvelle langue – tout cela ajoute au stress. Je ne pense pas que quiconque serait en désaccord avec cela, mais l’idée que nous avons un IDE et un environnement de langage uniques semble peu susceptible d’être réalisée.

Lisez le reste du papier. C’est intéressant et, pour un article de recherche, étonnamment facile à lire.

  • Mike James a perdu le compte des langues qu’il a apprises. Il a commencé avec Fortran et BASIC, a progressé à travers Java et Lisp et plus récemment s’est plongé dans Go et Rust. Ses livres spécifiques au langage dans la bibliothèque I Programmer sont sur Python, Kotlin, C # et JavaScript, voir l’encadré.

Plus d’information

C’est reparti : pourquoi est-il difficile pour les développeurs d’apprendre un autre langage de programmation ?

Nischal Shrestha, Colton Botta, Titus Barik, Chris Parnin

Articles Liés

L’aptitude linguistique, pas les mathématiques, prédit la compétence en programmation

Est-ce que les mathématiques aident à la programmation ou la programmation aide-t-elle les mathématiques ?

Enseignement en profondeur

Pensée computationnelle pour les enfants

La vraie raison d’apprendre à programmer – The Power

Ce qui fait un programmeur

Programmation – Un défi de toute une vie

Enseigner des concepts, pas seulement du code

Pour être informé des nouveaux articles sur I Programmer, inscrivez-vous à notre newsletter hebdomadaire, abonnez-vous au flux RSS et suivez-nous sur Twitter, Facebook ou Linkedin.

Bannière

pythondata

commentaires

ou envoyez votre commentaire à: comments@i-programmer.info

.

Leave a Comment