カテゴリー
システム開発全般 プログラミング

プログラミングと英語

プログラマーやエンジニアにどのくらい英語が必要かというのはよく聞かれる質問です。

プログラマに必要じゃないという回答は見たことがないし、当然私も英語は必要という考えですがその理由は二つあります。

第一に、これが一般的にもよく言われるこだと思うのですが、プログラミングを行っていて不明点が出てきた時はGoogle検索で解決方法を調べますが、その時に英文の記事しか検索結果にでてこないことがよくあるということです。幸いにして、日本語の検索でも大抵の解決方法は誰かが解決方法を書き、ネットで公開してくれています。

しかし、バージョンに依存するような頻度の少ない問題や、最近バージョンアップした言語やライブラリなどの情報は、日本語で検索できないこともあります。その場合は、英語で疑問点を調べなくてはなりません。

とは言っても、そのような英語の文章は大抵シンプルで、関連するプログラムが付記されているので理解するのは難しくない場合が多いです。

ただ、英語に苦手意識が強いと、その文章を読む作業も苦痛になるし、英語で調べたら簡単に見つかる解決策を、日本語で探そうとしてより時間がかかってしまうこともあります。この点において多少の英語力というのは必要だと思います。

もう一点、個人的にはこちらのほうがエンジニアがある程度英語に習熟しておいた方が良いと思う理由です。それはプログラミング言語は基本的に英語・アルファベットで書くことを前提に作られているということです。

作成したプログラムは、その後の修正・改善のために他のチームメンバーや自分でも読み返します。そのため時間が経ってから自分でプログラムを読んだとき、また他人が読んだときに、理解しやすいプログラムを書くことが必要です。

英語圏の達人プログラマーが書くプログラミングの教科書的な本には、普通の文章として読めるようなプログラムを書きなさいというようなことが書かれています。例えば、ファイルの上から下に実際に処理される順序でプログラムを書くこと、関数や変数に実際の処理に沿った命名をすること、単数形・複数形や動詞・名詞の違い、それらのルールを統一をする(規約に沿う)ことなど。

実際の開発現場でも、 実際の機能と異なる命名をされた関数名や変数名があるプログラムを読むと、理解するのにより多くの時間を費やしてしまうことがよくあります。

英語圏以外のプログラマにとってこのようなことに対して注意を払うためには、基本的な英語の文章作成力、読解力を養っておく必要があると感じます。

ちなみにアルファベットを使って、ローマ字表記で関数名・変数名を指定してプログラムを書くことは可能です。実際にローマ字表記でプログラミングを行うプログラマもいるのですが、英語に訳せない日本語や固有名詞に使用する以外で、ローマ字表記を使用することを私はお薦めしません。

・英語表記で書かれたプログラミング言語の予約語や、フレームワークのプログラムと異なる表記体系が混在してしまう
・日本語(ローマ字表記)には複数形がない
・ローマ字表記は表記ゆれを起こしがち
   例) Hensuu←→Hensu, Henshu←→Hensyu, O Sadaharu←→Oh Sadaharu

よって、プログラミングを行うために英語力は必要か?ということに対しては

・疑問点・不明点をググるために英語は必要
・読み易いプログラムを書くために英語の単語力・文章作成力・読解力が必要
・日本人のみの開発現場では、リスニング・英会話力は不要

だと考えています。