フリーランスのエンジニアが良い案件を効率良く探す為にはどうしたら良いのでしょうか? 知り合いのエンジニアを仲介して仕事を探す。 クラウドソーシングで良い案件を探す。 自ら売り込みにいく。 人によって方法は様々あります。 […]
プログラマーが必要な英語力とは?
プログラミングに英語が必要になるかどうかは、その人が必要としている、または目指しているレベルがどの程度なのかによって変わっていきます。
[adinserter block="1"]
以下の各章の中で、各レベルごとに必要となる能力について検証していきます。
目次
プログラム言語と英語の必要性
プログラムでよくある関数名に次のようなものがあります。
SetParam(...)
これは「パラメータをセットする」という意味の英語を短縮化したものです。次の関数名はどうでしょうか。
CalcDiff(...)
"Calc"はcalculateすなわち「計算する」、"Diff"はdifferenceすなわち「差分」のことでしょう。つまり差分を計算するという意味だと解釈できます。一般的に、プログラムの関数名や変数名、定数名などにはよく英語が使われます。しかし、これらは別に英語である必要はありません。例えば、CalcDiffの代わりに
KeisanSabun(...)
と書いても問題はありません。全く英語を知らなくても、プログラム言語の文法さえ理解しておけば、プログラムを書くこと自体は可能であることをこの例は示しています。
プログラム言語でも英語は使われています。if、while、switch、class、virtual、abstractなどなど、これらは全て英語です。しかし、これらの単語だけ覚えておけば、英語の文法について理解することも必要はないし、ましてや英語を読解する能力も必要はありません。
以上の考察から、英語は必要がないように見えます。
本当に英語は不要なのか?
プログラムを書くだけであれば、英語の能力は不要です。しかし、他人の書いたプログラムを読解して修正する作業が必要になった時、英語ができないでは済まされないことになります。
現在では、仕事でもプライベートでも様々なプログラムが作成され続けています。そして、そのほとんど全ては英語を活用しています。もし、他人の書いたプログラムを修正しなければならなくなった時、『英語ができません』では済まされません。必要最低限の英語の能力は必須となります。
では、どの程度の能力が必要になるのでしょうか。たいていのプログラムでは、難しい単語を使った名称はほとんどなく、パターンもある程度決まっているはずです。get、set、isといった動詞や、param、arg、countなどの名詞及び短縮形を覚えておけば、たいていは間に合います。
もし、わからない単語があっても、辞書で調べれば済む話です。そこには英文法の理解などは一切不要です。プログラムを読むという行為を行うためには、いくつかの英単語を覚えておけば十分だということになります。
英単語だけ覚えておけば十分か?
プログラムを読むためには、よく使う英単語だけ覚えておけば十分だという結論になりました。確かに、日本国内で限られたプログラムを修正するような作業をするだけならそれで十分でしょう。では、もっと広い世界、たとえば、オープンソースを読んで、ときには修正するようなことをしようとした場合はどうでしょうか。
中学で習う文法を覚えておこう
英語圏ではプログラムのコメントは英語です。英語圏外でも、世界中に公開しているソースコードは英語であることが多いでしょう。プログラムの内容を理解する上でコメントの存在は重要です。それが全く読めないと、プログラムを理解する上で致命的な問題となります。そうなると、少なくともコメントを読めるだけの英語の読解力が必要になります。
コメントを読めるだけの読解力はどの程度のものでしょうか。コメントはその内容も長さも多岐にわたります。とは言っても、英語の論文を丸々読まなければならないくらいのコメントがプログラム内に埋め込まれていることはまずないでしょう。
そうすると、多くても100個程度の単語からなる文章が読めれば十分です。ここでもわからない単語は辞書を引けば理解できます。しかし、英文法の知識は必須です。よって、世界中にあるソースコードを理解するためには英文法を覚えなければならないことになります。
これは敷居が高いと思うかもしれません。しかし、中学校で習う程度の文法を覚えておけばなんとかなるものです。コメントはあくまでもプログラムの理解をより深めるための補助的なものに過ぎません。プログラムを読むことができれば、逆にそこからコメントの内容を理解することもできるでしょう。お互いに補完し合っているわけですから、大抵の場合ならなんとか読むことはできるはずです。
高校・大学レベルの英語の読解力が必要な場合も
しかし、英語が必要になるのはプログラムのコメントだけではありません。もし、利用したいライブラリが海外製で、日本語ドキュメントが存在しない場合、英語のドキュメントだけが頼りになります。それは、プログラムのコメントとは比較にならないほどたくさんの英文が登場することになるでしょう。
そうなると、もはや高校・大学レベルの英語の読解力が必須となります。これは大変敷居が高くなりました。
ではもう一度英語を勉強する必要があるのでしょうか。幸い、コンピュータ関連のドキュメントに含まれる単語の種類は偏っています。それに、難しい文法が現れることもそれほどありません。
なぜなら、ドキュメントは相手に簡単に内容を理解してもらうために書かれているからです。平易な文章で書かれていることが大半なので、いろいろと読んでいるうちにだんだんと理解できるようになっていくでしょう。
さらに上を目指す
昨今では人工知能などによる認識技術や機械学習の分野が目覚ましい発展を遂げています。そういった新しい技術を理解するためには論文などを読む必要があります。日本語に訳された論文などというものはないので、ほとんどの場合は英語の論文を読むことになります。
少し古い技術なら、日本語の書物が出てくるのを待って読むのもいいでしょう。しかし、最先端の技術をできるだけ早く取り込みたいという場合、英語の読解力はもはや必須となります。
英文そのものも一気に難解なものになるでしょう。数学の専門用語や記号なども繁茂に登場します。これは一朝一夕に読めるようになるものではありません。日頃から英語を読む訓練をする必要があります。
読むことができれば十分でしょうか。英会話は不要でしょうか。海外で行われる様々なイベント・会合などに参加する場合、そこで使われる言語は当然英語になります。話を理解するためには、英会話の能力は必要になりますし、より専門的な用語も覚えなければならず、敷居は一気に上ることになります。
より高度で新しい技術を理解したい場合は、高度な英語の能力が必須となります。
まとめ
プログラミングに必要な英語の能力について、その段階ごとに紹介しました。結局、自分がどのレベルを目指すのかによって必要な能力は変わります。しかし、いきなり高いレベルに達することはほとんど不可能でしょう。今の自分のレベルをまずは理解して、段階を踏んで上達を目指すようにしましょう。それが一番の上達の近道になります。