
2020年の小学校のプログラミング教育必修化と同時にはじまる英語の教科化。
英語はプログラミングより一足早くすでに必修化されており、2020年からは小学5年生以上が教科として授業を受けることになります。
今日は現役プログラマーの私が現場で日々感じている、プログラミングと英語が両方できることの必要性やメリットについて書いてみたいと思います。
プログラミング言語の理解が早くなる
現在、業務用として世界中で使われているプログラミング言語の大半は英語ベースで構成されています。
var , if , switch , for , while , function , class …
これらはプログラミング言語で使われている英単語の一例です。
それぞれの英単語の意味に応じた機能がプログラミング言語上で提供されています。
英単語の意味や文脈での使われ方を理解している人は、プログラミング言語上の英単語が示す機能について簡単に理解することができます。
例えば 「if(もし)」 は「条件分岐を作る」などのように理解します。
英単語の意味や文脈での使われ方がわからない場合は、英単語を機能名としか認識できず、振る舞いが想像できないためなかなか頭に入りません。
英単語→機能か、機能→英単語の違いでしかないのですが、この違いがプログラミングの理解に及ぼす影響はとても大きいです。
プログラミング上の課題解決が早くなる
コーディング(プログラミング)をしていると、「これってどうやるんだろう?」「こんなときどうすればいいんだろう?」という疑問や課題にあたることがあります。
そんな時は検索エンジンの出番です。当該課題に関するキーワードを並べてGoogle先生に訊いてみます。
初心者的な疑問であれば日本語で調べて解決することができます。
日本中のプログラマー達が書き記したドキュメントによって課題解決が可能でしょう。
問題は、中級者以上の課題や、未知の課題が発生した場合です。そんな時は英語力が非常に問われることになります。
中級者になると、初心者の頃には手を付けなかったようなマニアックなことやレベルの高いことをやりだします。それらは自ずとニッチでレベルの高い課題を発生させます。すると日本語で調べても解決ができないことがあるのです。
こんな時、私は課題解決に関係がありそうな英単語を検索窓に並べて、海外のドキュメントを検索します。すると日本ではなかった当該課題の解決策が、たくさん出てくるではありませんか。
人口1億人くらいの日本の中だけで検索するよりも、世界にその幅を広げたほうが良い結果が得られるのは当然ですよね。
検索エンジンを使って海外のドキュメントを調べられるかどうかは、プログラマーのレベルに大いに関わっていると思います。
日本語のドキュメントだけを調べて海外のドキュメントを調べないプログラマーは多いです。
しかしそんなに都合よく自分が調べやすい範囲だけで解決策が見つかるとは限りません。しかし彼らは自分が調べやすい範囲を調べた後は、安易に妥協策を採ろうとします。これを繰り返していくうちに妥協することに慣れ、技術力を向上させる機会を失い続けるプログラマーとなってしますのです。
より良くプログラミングができるようになる
料理におけるレシピ共有サイトのクックパッドのように、プログラミングの世界にもソースコードを共有するサイトがあります。
世界中のプログラマーが書いたソースコードがたくさん公開されており、ソースコードを見るだけでも大変勉強になります。
プログラミング言語は英語をベースにしている、英単語を使った構文によってプログラミング言語上の機能が提供されている、と先述しました。
そしてもうひとつ大事なことが、プログラミング言語だけではなく、プログラミング言語を使う人も英語をベースにしている、ということです。
プログラミングでは、変数名や関数名、クラス名などの名前を「ネーミング」する機会がたくさんあります。ネーミングの際には英語を使うことが世界的標準です。
つまり、ソースコード共有サイト上のソースコードを読み解くには、英語力が必要不可欠なのです。
英語が読めないと、その変数や関数が「何の目的で使うものなのか」を理解することが難しくなります。
例えば、PHPで変数は「$weather」のように書きます。英単語の意味がわかればこの変数は何の目的で作られたのかがすぐわかります。この場合は恐らく天気に関する値が格納されるのだな、と推察できますよね。
では「getUsersParentName(){}」という関数があったとして、この関数が何を目的に作られたのか考えてみてください。
この場合は「ユーザ達の親の名前を取得する」と読み解くのが正解です。ポイントは「ユーザ達」なこと。「Users」とあるので、単一ユーザではなく、複数ユーザであることを読み解くことがポイントです。
もし「Parent」の部分が「Parents」だったりするとまた意味が変わります。
ソースコードを読み解くには英語力が必要であるということがおわかりいただけたと思います。
多くの分野で他人が作ったものに触れるのが成長の近道であるように、プログラミングも多くのソースコードに触れることが成長の近道です。
自分が発信する側になった場合も英語力がないと困ります。
「$tenki」というローマ字を使った変数名では、日本人以外に内容を理解されることがありません。
プログラマーとしてより良いコードを書くには、英語力は必須といえます。
まとめ
英語は地球語、という英会話教室のCMがありましたが、英語以上に世界中で共通する言語がプログラミング言語です。
どんな国や地域でもプログラミング言語は同じものが使われています。
良いプログラマーになるには英語力が必須といえます。
そして英語 ✕ プログラミング のスキルの掛け合わせによるメリットはとても大きいです。
この記事を書いたら、プログラミングより先に英語が小学校で教科化する理由がよくわかるようになりました(笑)。