Warning: Trying to access array offset on value of type bool in /home/willcom7/will-kishin.com/public_html/wp-content/plugins/wp-word-count/public/class-wpwc-public.php on line 123
Warning: Undefined array key 2 in /home/willcom7/will-kishin.com/public_html/wp-content/themes/jstork_custom/functions.php on line 91
Warning: Undefined array key 3 in /home/willcom7/will-kishin.com/public_html/wp-content/themes/jstork_custom/functions.php on line 94
Warning: Undefined array key 4 in /home/willcom7/will-kishin.com/public_html/wp-content/themes/jstork_custom/functions.php on line 97
Warning: Undefined array key 5 in /home/willcom7/will-kishin.com/public_html/wp-content/themes/jstork_custom/functions.php on line 100
Warning: Undefined array key 6 in /home/willcom7/will-kishin.com/public_html/wp-content/themes/jstork_custom/functions.php on line 103
Warning: Undefined array key 7 in /home/willcom7/will-kishin.com/public_html/wp-content/themes/jstork_custom/functions.php on line 106
Warning: Undefined array key 8 in /home/willcom7/will-kishin.com/public_html/wp-content/themes/jstork_custom/functions.php on line 109
Warning: Undefined array key 9 in /home/willcom7/will-kishin.com/public_html/wp-content/themes/jstork_custom/functions.php on line 112
プログラミングスクール「リナックスアカデミー」に通っています。
今日はOCJ-PというJavaの技能試験対策講座の最終講座でした。
その講座の中で、先生に聞いた話が面白かったのでご共有したいと思います。
日本人はなぜプログラミングが苦手なのか
ヒントは「is a関係」
先生がいきなりそんなことを言い始めたのです。
正直、別に日本人が苦手という感覚はなかったので、意外に思ったのです。
そこで先生から聞いたのが次のような話です。
Javaでは抽象的な入れ物(クラス)の中に具体的なデータを格納して実体化したもの(インスタンス)に変えることがよくある。
このクラスとインスタンスの関係は「is a関係」と呼ばれて、「インスタンス is a クラス」という意味になる。
具体的に言うと、例えば「Yamada is a person.」と言ったときに、personは抽象的な概念で、そこに「Yamada」という具体的なデータを入れて実体のあるものにするということが起きる。
この例ならば分かりやすいが、例えば「This is a tree.」というような言い方をしたときはどうだろうか。
「tree」は抽象的で、クラスだと分かるだろうが、実は「a tree」という不定冠詞の「a」を付けたものは個別の何かを差すため、「a treeはインスタンス」だと言える。
ここで、日本語と英語の違いが関係してくる。
is a関係は英語では必ず意識されることだが、日本語にはない概念なので、日本人は平気で「This is tree.」と誤った表現をする。
このことから、日本人はインスタンスとクラスの区別をつけづらい、ひいては日本人はプログラミングが苦手な環境にあると言えるんです。
こんな話でした。
聞いてみて確かに…と思いました。
上記のような例なら分かりやすいですが、実際のプログラムの中ではたくさんの「入れ物」が出てきて、同じ名前だったり、遠くに書いてあるものに代入したり、上書きしたり、されなかったりということが頻繁に起きます。
これを整理して考える力がないと、ハチャメチャなプログラムになってしまうのですが、そういう人が結構多いんです。
私も整理するのは決して得意ではありません。
そして、この考え方は決してJavaだけではなく、多くのプログラミング言語で採用されているのです。
この話はリナックスアカデミーの先生が教えてくれました!
リナックスアカデミーはこちらから無料個別カウンセリングを受けられますよ。
そもそも全部、英語
また、当たり前のように感じるかも知れませんが、プログラムは英語を元にして作られています。
main, method, static, void, string, integer, implement, extend, exception, error…と挙げたらキリがないのですが、とにかく全部英語です。
もちろん、英語の元の意味から、Java上での意味を決めているので、英語がよく分かっているほど、上達しやすいのもうなずけます。
日本語のプログラミング言語も
実は、日本語プログラミング言語というのも存在はしていて、例えば「なでしこ」というものが有名です。
しかし、これはあまり流行らないんですよね。
日本人しか読めない点で不利ですし、日本語にしても結局「オン」とか「#」とか「¥」とか日本語以外の要素も使う必要があり、無理やり感が否めません。
日本語と英語の関係
念の為補足しておきたいのですが、「日本人は他の人種より英語が苦手」というデータがあります。
これは、日本語と英語が文法的に遠いために、このようになります。
少し難しい:イタリア語 スペイン語 ベトナム語 中国語等
難しい:フランス語 ドイツ語 ギリシャ語 チェコ語等
大変難しい:アラビア語 ヒンディ語 ロシア語 英語*
*英語はネイティブなみの能力が要求されやすいためこの難易度。ことばのしくみとしては易しい。
出典:大学書林
逆に、英語話者から見ると、言語は次のようになります。
少し難しい:ギリシャ語 インドネシア語等
難しい:ロシア語 チェコ語 ヘブライ語 トルコ語等
大変難しい:アラビア語 中国語 日本語 朝鮮語
出典:千野 1987年
日本人から見た難易度とは逆になっています。
こちらを見て、「だから英語上達しないんだ…」と納得いただけたのではないでしょうか。
日本語と英語は、そんな残念な関係なのです。
ただし、逆に2つ習得してしまったら、2つの脳を手に入れたようなものですね!
日本語と英語の比較はこちらの本に詳しいですよ!