fumi blog

プログラマーに英語は必要?現役エンジニア目線から解説

「プログラマーを目指しているが英語が得意じゃない」

「プログラマーになるのに英語の勉強をする必要はある?」

本記事ではこういった「プログラマーに英語は必要か」議論に、現役プログラマー目線で回答します。

プログラマーに英語が必須ではない理由

結論、僕の意見としては「プログラマーになるのに、英語スキルは必須ではありません」
その理由を2つに分けて解説します。

日本語でのコミニュケーションをとる職場がほとんどだから

ほとんどの日系IT企業において、コミニュケーションは日本語で取られます。
プログラミング業務をする中で、プログラムの変更差分について記述するcommitや、プログラムの正しさを評価してもらうreview、さらにはプログラムの中で補足説明を行うコメントも日本語でOKの企業がほとんどです。
私自身英語はほとんど話せませんが、プログラマー業務をする中で、不便に感じたことはほとんどありません

正しい英語じゃなくてもプログラムは動作するから

プログラミング言語は、正しい英語ではなくても動作します
例えば以下の例を見てみましょう。

ruby 
yeaar = Time.curret.year #yearの綴りが間違っている
p year


「今何年か」を出力するプログラムですが、yearの綴りが間違っています。
ですが、このプログラムは正常に動作します。

逆に動作しない例は以下です。

if record is null
  p 'record is null'
end


これは英文法的には合っていますが、Rubyのプログラミング文法には沿っていないため、実行するとエラーが出ます。

このようにプログラミング言語は「英単語を使っているだけの別言語」であり、英語の能力とは関係がないと言うのが個人的な見解です。

英語ができるプログラマーが有利になるケース

ここまで、プログラマー にとって英語は必須ではない理由を説明しました。
ですが、実はプログラミングをする中で「英語が使えると有利になる」ケースがいくつか存在します。
以下で3点に分けて説明します。

より多くの情報に触れられる

プログラミング関連のドキュメントは英語でまとめられていることがほとんどです。
特にプログラミングの最新情報が公式から公開される場合、まずは英語のドキュメントで発表があります。
またStackOverflowやGithubのissueなど既存の問題について英語で語られているサイトも多くあります。
英語を学ぶことで、そういった「新しい情報に」「たくさん」触れられるようになるでしょう。

読みやすいコードがかける

基本的にはプログラミングでの「名付け」は英語で記述します。
ここで、英単語を正しく使っていると、読みやすいコードを書くことができます。
例を見てみましょう。以下は全く同じように動作する2つのプログラムです。

[例1]

year = Time.current.year
month = Time.current.month
day =Time.current.day 

print "#{year}/#{month}/#{day}"


[例2]

a = Time.current.year
b = Time.current.month
c = Time.current.day

print "#{a}/#{b}/#{c}"


いかがでしょうか 例2の方が適切に命名がされており、圧倒的に読みやすいのがわかるかと思います。
このように読みやすいコードをかけるエンジニアは市場価値が高く、重宝されやすいです。(可読性に関しては意識の問題もありますが、)英語を学ぶことで、こういったコードをスムーズに書けるようになるでしょう。

一部外資系の企業では英語が必須の場合がある

Googleなど、一部の外資系の企業では業務での公用語が英語だったり、そもそもエントリーシートが英語での記述を指定されていることもあります。
(筆者はGoogleに応募しようとして、エントリーシートを英語で出さなけばならないことが壁になり諦めた経験があります)。
英語を身につけておけば、こういった企業に応募するチャンスができ、同じスキルでも高い給料をもらうことができる可能性があります。
※ もちろん、こういった企業では「プログラミングにおいても高いスキルを持っている」前提であることが多いので、プログラミングスキル自体も磨いておきましょう。

まとめ

  • プログラマーに英語は必須ではない
  • 英語ができると有利になる場面もある

プログラミングスキルを身につけつつ、空いた時間で英語を勉強してみるのも良いかもしれません。