プログラマーは英語が必要?

これもよくある疑問の一つだと思います。英語ができないとプログラマーには成れないのでしょうか?
結論から言うと出来たほうが有利ですが、出来なくて困ることはあまり無いと思います。

f:id:kyart:20210717005655j:plain
英語とプログラマー

英語ができなくても良いわけ

一般的に仕事で使う分野、趣味で使う分野いずれも日本語で調べ物などがしっかりとできているからです。プログラミングの分野には「枯れた」技術、という表現があります。それは悪い意味ではなく、長いこと使われ続けているので地味だけど堅牢である、安定しているという意味です。この「枯れた」技術を使ってプログラミングをすることが多いわけで、その場合は大抵日本語しか理解できなくて困ることはありません。
書籍も日本語でしっかりと解説されたものが豊富に手に入ります。その技術を扱ったウェブサイトを日本語で容易に見つけることが出来ます。エラーメッセージを検索すればその意味や解決方法を日本語で見つけることができるでしょう。
会社や学校でチームとしてプログラミングをするのであれば、十分な日本語のドキュメント類もあるはずですし、教えてくれる人もたくさんいます。
つまり国内の環境でよく使われている技術であれば、日本語で調べたり聞いたりすることが容易なのです。

英語ができると良いこと

とはいえ、英語が得意だとメリットもたくさんあります。

関数名などの英語の意味がピンとくる

現在のプログラミングは、用意されている機能のリストから必要なものをピックアップして組み合わせていくというやり方が一般的です。それらを関数、またはメソッドと呼びます。数学の1次関数とかとはまったく違うものです。そんな関数名は大抵は英語の動詞です。
例えばこんなプログラミング言語の一つJavaのドキュメントを見てください。
docs.oracle.com
見方はともかく、appendというメソッドがズラリと並んでいます。
appendとは「後ろに追加する」という意味ですが、その英語の意味を知っていると見ただけでそのメソッドが何をするものかピンときます。そうでないと説明を読んで自分が求めているものかどうかを調べないといけません。些細なことですが、チリも積もればで知っているのとそうでないのに結構差が出てきます。

自分で付ける変数名、関数名も英語がほとんど

関数というのは自分でも作ります。たくさんつくります。その際には英語で命名することが一般的です。

const STATUS_ACCEPTED = 1;
const STATUS_NOT_ACCEPTED = 0;
const STATUS_PENDING = 10;
const STATUS_KARIYOYAKU = 99;

function isBooked($num){
        if ($num <= 0)
            return true;
        else 
            return false;
}

これらSTATUS_ACCEPTEDとかisBookedとかは自分でつけた名前です。is何々とか、set何々のようなよく使われる決まった表現もありますが、毎回考えるのも辛いところです。
ちなみにisBookedのBookは「本」ではなく「予約する」という意味の英語です。これも知らないと何をする機能なのかピンとこないでしょう。
日本の開発者チームではSTATUS_KARIYOYAKU(ステータス仮予約)みたいな変数名もよく見かけます。英語を調べても他の開発者に伝わらないくらいならローマ字で、というのもアリだと思います。ただ多用すると英語と混ざってくるので鬱陶しくなります。

エラーメッセージなどは英語の場合がほとんど

f:id:kyart:20210717005133p:plain
エラーメッセージの例

NullPointerExceptionというよくあるエラーの画面です。昔は「ぬるぽ」「ガッ」というのが流行りました。
このように大抵のエラーメッセージは英語で出てきます。冷静になれば英語ができなくても調べ方は容易ですが、英語アレルギーがあると、毎日のようにこんなメッセージを見るのは辛いでしょう。

新しい技術は英語情報がほとんど

実際に困ることがあるのはこの理由でしょう。新しい技術を使いたい場合には、英語のドキュメントしかない場合ばかりです。最新の技術を使ったり、その開発チームに質問したり、自分で解決できない問題を調べたりするのには英語が必要です。

英語はできるにこしたことはない

そういうわけで英語ができることはプログラマーにとってアドバンテージであることは間違いありません。特に読めること、次に書けることが大きな武器になります。
「なでしこ」のような日本語プログラミング言語以外では基本的に半角英数字でコードを書くわけですから、英語の文章ではありませんが英語のようなものが画面にびっしり書いてあるというのを見るのには慣れてくると思います。
苦手意識を持たずに使っていく、読んでいくのが良いと思います。
ちなみに日本人の書いたプログラムの中で使われている英語の変数名、関数名にスペルのミスが多いのもご愛嬌です。
adressとか、telefonとか、見たことがあります。