見出し画像

OOP学習の難易度が高い理由【日本語の単語認識への曖昧さが邪魔をするから】

先日終えたUdemyのOOP学習教材、さすがに1回だけでは理解しきれないので復習していて、突然にひらめいたので忘れる前にメモ。

学習教材やそのオススメ情報についてはこちら。

(約 2,400文字の記事です。)



日本語の単語は曖昧、適当、だが通じる。これが問題。

日本語は、漢字、ひらがな、カタカナ、3種類も使う。なので1つの意味の単語がたくさんある。ちょっと異常なくらい、たくさんある。なので日本人は無意識に「単語の重要性」を軽視している、というかいちいち厳密に捉えていたら仕事にならない、会話にならない。

OOPの場合でも、継承?承継?多様性?多態性?抽象?疑似?仮?
いっぱいある😭

でも英単語ではそれらに対応する単語は1つずつしかない、OOPの場合。

まずこの理解がとっても重要。日本人は割と無意識に、単語1つの意味合いを軽く捉えて、それを補うために文脈で意味を理解しようとする傾向があるのではないか?ふと思いついたのである。

その瞬間に色々理解できた気がする。


英単語は単語のイメージがしっかり固まっている

それに対して英単語は、単語の持つイメージはしっかり固まっていることが多い。日本人からすれば、「on, in, at, by, 全部2文字じゃん?名詞の前にくっついてくる謎の単語」くらいにしか思わないが、それぞれの前置詞には確固たる意味がある。

なので名詞の英単語にもカッチリとした意味がある。恐らくはラテン語由来の何かだとは思うが、日本語よりも1つの概念を示す単語にバリエーションは多くはないと思う。というか日本語が異常w

ハシが箸、端、橋、だからなぁ。
カミが髪、紙、神、加味、上、だからなぁ。


OOPで怒濤の英単語、というかプログラミング英単語には全部カッチリした意味がある

なのでおそらく日本人でプログラミングを始めると、何となくの英単語のイメージで「しか」英単語を捉えていない状態で学習を続けている人が多いと思う。また私もこれまでの教材で日本人がそこまで英単語についてシビアに指摘しているメディアにであったことがないことも、その根拠の一つ。

だがこれまでの経験上、3DCGでの英語での理解の時期も含めて、英単語にはカッチリとしたイメージが必ずついて回る。だからプログラミングでも突然出てきた見知らぬ英単語、これにはきちんとした意味があってその英単語が採用されている。

OOPでは怒濤の英単語の嵐になる。それだけ「概念の説明」が必要なのがOOPの特徴なのだ。だからその概念を正しく理解するためには、その英単語の持つ正しいイメージを理解する必要がある。

だが日本人は英語が苦手だ。


日本人が英語に苦手意識を持つのはこの単語レベルの潜在意識の違いではないか?

もしかしたら日本人が英語に苦手意識を持つのは、実は英単語に関するしっかりとしたイメージを覚える・捉える・認識する・理解することが苦手な人が多いからではないか?とふと思った。

もちろん日本語の持つ、わびさび、曖昧を曖昧のまま受け入れ、明確化することなく緩くお互い上手くやっていきましょ、という精神はいい面もある。

だがプログラミングに関しては、逆に悪さをする。コンピュータにわびさびは通用しない。Yes?No?If?Else?

だとすれば「前置詞が意味不明」なのもうなずける。たった2~5文字にそんな意味があったのか?を学んでこなければ、ずっと謎の記号のままなのだ。

ということは逆にOOP学習の肝が見えてきた。


OOPを理解するためには「英単語」の持つ概念やイメージを正しく理解することが鍵

鍵なのではあるが、日本語でOOPを学習すると永遠に英単語は出てこないw 私はたまたまUdemyの英語コースでOOPを学んでいるため、滝のように流れてくる英単語の中から、特にOOP特有の英単語に出会う。そしてそれ以外でも、「今まで何となく分かったつもりで調べてみなかった基礎的な英単語」をあらためて調べてみると、自分が何となく抱いていたイメージとは違った、別のイメージの英単語だったりすることも多い。

クラスは「型」じゃない。例えば鋳型だとかスタンプの元とか、じゃない。もっと抽象的な「理論上の仕組み」でしかない。コンパイラに解釈させるための「ルール」に近い。それを具現化したものがObject(s)だ。Object(s)は「物」でもない。デジタルデータであり、メモリアドレス上の情報だ。

なのでメモリアドレス値が必ず存在する。コンストラクタでクラスのルールに従って、ようやく具体的なオブジェクト、つまりコンクリート・オブジェクトにしている(なる)わけだ。

突然カタカナ英語がドドドッと出てきたが、シンプルに説明するとそうなるのだ。

こんな感じで、日本語でフワッと捉えると逆に訳が分からなくなる。だが英単語で理解していけば、その具体性が明らかとなる。

なのでOOPの理解、ひいてはプログラミングは英語で学んだ方が、急がば回れ、なのだ。今まで何度か主張してきたが、どうやら間違いないっぽい。


<宣伝>
私が学習したOOPのオススメUdemyコースはこちら😊


もはや今の時代では英語で雑談の価値はかなり低くなると思っている。間もなくAIリアルタイム翻訳で何とかなる時代になる。なので英語学習のモチベーションや目的意識を切替える必要がある。「何のための英語学習?」を決めた方がいい。そういう意味ではプログラミング+英語は、強力なモチベーションだと思う。

というわけでダダダッと思いつきで日記を書きましたとさw😊

お休み~。

今回の創作活動は約1時間(累積 約3,904時間)
(1,149回目のnote更新)


読んでくれてありがとう。気長にマイペースに書いてます。この出会いに感謝😊