Seit März arbeitet mein Arbeitsplatz vorerst von zu Hause aus. Dies ist auf die Verhinderung der Ausbreitung des neuen Koronavirus zurückzuführen. Der Arbeitsaufwand wird reduziert, da einige Arbeiten nur bei der Arbeit ausgeführt werden können. Jetzt, wo ich Zeit habe, denke ich darüber nach, einen Artikel über Qiita zu schreiben und später etwas Nützliches zu hinterlassen.
Vor einigen Jahren veranstaltete ich eine wöchentliche Python-Lernsitzung bei der Arbeit. Ein paar Leute, die viel schlauer waren als ich, waren anwesend. Von nun an wird Python beliebt sein, daher sollte es ein cooles Projekt sein, um voranzukommen und Fähigkeiten zu erwerben. Aber es hat nicht funktioniert. Die Hauptursache war die Schwierigkeit, die Klasse zu verstehen. Selbst der Superintelligente, der den weltbesten Raum, Kyo, verwendet, konnte das Konzept der Klasse nicht verstehen.
Erstens schienen diejenigen, die ältere Sprachen verwendet haben, Schwierigkeiten zu haben, die Klasse zu verstehen. Viele der Personen, die an dieser Lernsitzung teilnahmen, waren Oldtimer, die FORTRAN77 verwendeten und nur als Studenten C-Sprachübungen machten. Es gibt immer noch normale Leute im technischen Bereich, die FORTRAN verwenden. Für diejenigen, die sich hauptsächlich mit prozeduralen Sprachen befasst haben, erscheint die Klassendefinition sehr mühsam und unnötig. Selbst wenn ich die Vorzüge der Objektorientierung erkläre, erhalte ich die Antwort: "Aber wenn Sie Ihr Bestes geben, können Sie es mit FORTRAN tun." Wenn das gesagt wird, wird es "Das ist richtig ..." sein, und ich kann nur argumentieren, um die Vorzüge einer groß angelegten Entwicklung bestenfalls zu erklären.
Zweitens scheint das Beispiel denen unbekannt zu sein, die nicht viel Programm geschrieben haben. Ein Beispiel für die Ableitung einer Krankenwagenklasse aus einer Autoklasse ist ein Grundnahrungsmittel objektorientierter Einführungsbücher. Wenn ich jedoch darüber spreche, erhalte ich die Antwort "Also, was möchten Sie sagen?" Wenn Leute sagen: "Ich verstehe die Geschichte von Krankenwagen, aber ich weiß nicht, was sie mit Programmierung zu tun haben", habe ich das Gefühl, "das ist der Fall ...".
Die Schwierigkeit bei der objektorientierten Erklärung bestand darin, dass ich die Bedeutung der Begriffe nicht vermitteln konnte. Wenn im technischen Schreiben die entsprechende japanische Übersetzung nicht gefunden wird, werden die englischen Wörter grundsätzlich in Katakana übersetzt. Bei sehr abstrakten Geschichten behindert dies jedoch das Verständnis neuer Konzepte. Wenn Sie das Wort "objektorientiert" zum ersten Mal hören, bekommen Sie wirklich ein Gefühl dafür? Für einen gewöhnlichen Japaner ist das absolut unmöglich. Wenn eine englischsprachige Person jedoch objektorientiert hört, löst das Gefühl des Wortes "etwas Besseres aus, um mehr Zeit mit den Objekten zu verbringen, die das Programm verarbeitet, als mit dem Verarbeitungsvorgang." Ein Bild wie "Ist es nicht?" Wird in Ihrem Gehirn auftauchen.
Wenn Sie das Wort "Klasse" hören, steht für Japaner das Bild einer Grundschulklasse an erster Stelle. Selbst wenn Sie beim Ziehen dieses Bildes die Geschichte des Krankenwagens hören, ist es natürlich, dass das Bild im Gehirn nicht fokussiert ist. Selbst wenn es sich um eine Instanz, ein Objekt oder eine Überschreibung handelt, kann sie nur als Name der Waffe des Anime mittleren Alters gehört werden, der den Gestaltkollaps verursacht hat.
Dies ist nicht nur ein Problem für die von mir gesponserte Lernsitzung, es ist kein Problem für alte oder unerfahrene Menschen, sondern es ist ein häufiges Problem für das Programmierenlernen. Darüber hinaus haben Japaner, die mit unverständlichen Übersetzungen studieren, möglicherweise die Schwierigkeit verschwendet, Programmieren zu lernen. Vielleicht verlieren wir enorm viel Zeit.
Es ist notwendig, einen klareren Überblick über die Objektorientierung zu geben. Da ein Programm eine Anweisung an einen Computer ist, ist es natürlich, sich eine Folge von Anweisungen vorzustellen. Trotzdem versuche ich, eine andere Methode zu erklären. Daher ist es besser, in einem frühen Stadium des Lernens eine vertraute Vogelperspektive zu zeigen und die Leute verstehen zu lassen, dass es mit Sicherheit eine solche Methode gibt. Nachdem Sie die große Geschichte überzeugt haben, sollte es einfacher sein, auf Details wie Operator- und Variablendefinition einzugehen.
Wir müssen auch ein etwas praktischeres Beispiel verwenden. Die Beispiele, wie man aus einem Auto einen Krankenwagen oder aus einem Mitarbeiter einen Manager macht, sind für diejenigen, die bereits verstehen, unkompliziert. Aber für diejenigen, die es noch nicht verstehen, sind der Quellcode und der Krankenwagen irrelevant. Die letzte Möglichkeit, ein abstraktes Konzept zu vermitteln, besteht darin, einige konkrete Beispiele zu nennen, um sich ein Bild von etwas Gemeinsamkeiten zu machen. Es wäre besser, ein realistischeres Beispiel zu verwenden.
Für Begriffe, die sich auf abstrakte Konzepte beziehen, die in der Programmierung vorkommen, ist eine verständlichere japanische Übersetzung erforderlich. Ich spreche von etwas Unsichtbarem, deshalb kann ich es nicht erklären, indem ich Katakana-Wörter arrangiere, die ich nicht verstehen kann. Wenn Japanisch Chinesisch verwendet, kann es hilfreich sein, ein kleines Bild auf den ersten Blick zu erstellen. Auch wenn es sich nicht um eine allgemeine Methode handelt, ist es auch eine Option, wenn Sie mit superintelligenten Menschen wie der von mir gesponserten Lernsitzung zu tun haben, sie mit der Originalarbeit studieren zu lassen.
Von nun an versuchen sogar Grundschüler, zu programmieren, aber derzeit scheint es ihnen völlig fehlgeschlagen zu sein, das importierte "objektorientierte Paradigma" zu importieren.
Recommended Posts