[PYTHON] Pourquoi Super Intelli ne pouvait pas comprendre la classe

Depuis mars, mon lieu de travail travaille depuis chez moi pour le moment. Cela est dû à la prévention de la propagation du nouveau virus corona. La quantité de travail est réduite car certains travaux ne peuvent être effectués qu'au travail. Maintenant que j'ai le temps, je pense écrire un article sur Qiita et laisser quelque chose d'utile plus tard.

Pourquoi la session d'étude Python a échoué

Il y a quelques années, j'ai organisé une session d'étude hebdomadaire sur Python au travail. Quelques personnes beaucoup plus intelligentes que moi étaient présentes. A partir de maintenant, Python sera populaire, donc c'était censé être un projet sympa pour aller de l'avant et acquérir des compétences. Mais ça n'a pas marché. La principale cause était la difficulté de comprendre la classe. Même le super-intelligent qui utilise le meilleur espace du monde, Kyo, ne pouvait pas comprendre le concept de classe.

Un sentiment d'impuissance qui ne pouvait pas expliquer la classe

Premièrement, ceux qui ont utilisé des langues plus anciennes semblent avoir du mal à comprendre la classe. Bon nombre des personnes qui ont participé à cette session d'étude étaient des anciens qui utilisaient FORTRAN77 ou qui prenaient simplement des exercices de langage C lorsqu'ils étaient étudiants. Il y a encore des gens ordinaires dans le domaine de l'ingénierie qui utilisent FORTRAN. Pour ceux qui sont venus principalement aux langages procéduraux, les définitions de classe semblent très fastidieuses et inutiles. Même si j'explique les mérites de l'orientation objet, j'obtiens une réponse disant: "Mais si vous faites de votre mieux, vous pouvez le faire avec FORTRAN." Si cela est dit, ce sera "C'est vrai ...", et au mieux, je ne peux pas argumenter sauf pour expliquer les mérites d'un développement à grande échelle.

Deuxièmement, l'exemple ne semble pas familier à ceux qui n'ont pas beaucoup écrit de programme. Un exemple de dérivation d'une classe d'ambulance à partir d'une classe de voiture est un élément de base des livres d'introduction orientés objet. Cependant, lorsque j'en parle, j'obtiens une réponse disant "Alors que voulez-vous dire? Quand les gens disent: "Je comprends l'histoire des ambulances, mais je ne sais pas ce qu'ils ont à voir avec la programmation," j'ai l'impression que "c'est le cas ...".

Pourquoi les cours sont difficiles

La difficulté avec l'explication orientée objet était que je ne pouvais pas transmettre le sens des termes. Dans la rédaction technique, si la traduction japonaise correspondante n'est pas trouvée, les mots anglais sont essentiellement traduits en katakana. Mais pour les histoires très abstraites, cela empêche la compréhension de nouveaux concepts. Lorsque vous entendez pour la première fois le mot «orienté objet», en avez-vous vraiment une idée? C'est absolument impossible pour un Japonais ordinaire. Mais lorsqu'une personne anglophone entend être orienté objet, elle est déclenchée par le sentiment qu '«il vaut mieux passer plus de temps sur les objets traités par le programme que sur les étapes de traitement. Une image comme "N'est-ce pas?" Surgira dans votre cerveau.

De même, lorsque vous entendez le mot «classe», l'image d'une classe d'école élémentaire passe en premier pour les Japonais. Même si vous écoutez l'histoire de l'ambulance tout en faisant glisser cette image, il est naturel que l'image dans le cerveau ne soit pas focalisée. De plus, même s'il s'agit d'une instance, d'un objet ou d'un dépassement, il ne peut être entendu que comme le nom de l'arme de l'animation de la maladie d'âge moyen qui a provoqué l'effondrement de la Gestalt.

Ce n’est pas un rire, c’est un gros problème.

Ce n'est pas seulement un problème pour la session d'étude que j'ai parrainée, ce n'est pas un problème pour les personnes âgées ou inexpérimentées, mais c'est un problème courant pour l'apprentissage de la programmation. En outre, les Japonais qui étudient avec des traductions incompréhensibles peuvent avoir perdu la difficulté d'apprendre la programmation. Peut-être perdons-nous énormément de temps.

Que faire alors

Il est nécessaire de donner une vue d'ensemble plus claire de l'orientation des objets. Puisqu'un programme est une instruction destinée à un ordinateur, il est naturel de penser à une séquence d'instructions. Même ainsi, j'essaie d'expliquer une méthode différente, il est donc préférable de montrer une vue à vol d'oiseau familière à un stade précoce de l'apprentissage et de faire comprendre aux gens qu'il existe certainement une telle méthode. Après avoir convaincu la grande histoire, il devrait être plus facile d'entrer dans les détails tels que l'opérateur et la définition des variables.

Nous devons également utiliser un exemple un peu plus pratique. Les exemples de fabrication d'une ambulance à partir d'une voiture ou de création d'un manager à partir d'un employé sont simples pour ceux qui comprennent déjà. Mais pour ceux qui ne le comprennent pas encore, le code source et l'ambulance ne sont pas pertinents. La dernière façon de transmettre un concept abstrait est de donner des exemples concrets pour se faire une idée de quelque chose en commun. Il vaudrait mieux utiliser un exemple plus réaliste.

Une traduction japonaise plus compréhensible est nécessaire pour les termes faisant référence à des concepts abstraits apparaissant dans la programmation. Je parle de quelque chose d'invisible, donc je ne peux pas l'expliquer en arrangeant des mots katakana que je ne peux pas comprendre. Si le japonais utilise le chinois, cela peut aider à former une petite image de premier regard. De plus, bien que ce ne soit pas une méthode générale, si vous avez affaire à des personnes super intelligentes comme la session d'étude que j'ai parrainée, leur faire étudier avec l'œuvre originale est également une option.

Désormais, même les élèves du primaire essaient de faire de la programmation, mais à l'heure actuelle, il semble qu'ils aient complètement échoué à importer le "paradigme orienté objet" importé.

Recommended Posts

Pourquoi Super Intelli ne pouvait pas comprendre la classe
Pourquoi le premier argument de la classe [Python] est-il self?
Comprendre le produit tensoriel (numpy.tensordot)
Comprendre l'audit du système d'audit Linux
[Apprentissage automatique] Comprenez à partir des mathématiques pourquoi le coefficient de corrélation varie de -1 à 1.