英語を勉強した方がいい理由


前置き

昨年のTOEICのスコアは600点でした。
辞書を片手に時間をかければ英語の本を読めるレベルだと自己評価しています。

まだ初〜中級者レベルですが、
英語を学べば学ぶほど必要性を感じたので共有してみます。

プログラムは英語

予約語や型名、標準関数名などすべて英語を基にしていまよね。

if / int(integer) / print etc.

文法だってそうです。

たとえば有効な状態かを「IsEnabled 」プロパティで判定できるクラスがあったとします。
※判定系はIsから始めることが多いですよね。

そうするとこうなります。

C#
if ( foo.IsEnabled )
{
    foo.SendMessage();
}

英文に直すとこうでしょうか。

if foo is enabled, foo will send a message.

ほぼそのまま!
自然なコードを書けたり、すらすら読めたりしそうじゃないですか?

ニュアンスを感じ取れる

「いい命名」は英語基準

エンジニアのバイブル「リーダブルコード」に次のように載っていました。

specific(明白)な名前を選ぼう
例えば、インターネットからデータを取得する処理なら、
「Get」という関数名よりも「Fetch」や「Download」の方が明白です。

正直「Download」はまだしも「fetch」はピンと来ませんでした。
「Get」と比べて何が明白なのかと。

「fetch」には「取りに行く」「取りに行かせる」というニュアンスを含むそうです。
インターネットを介して取りに行かせているイメージを表現できる訳ですね!

こういったニュアンスを掴めないと、せっかくのヒントも見落としてしまいますね。

用語の解釈

オブジェクト指向の継承に関する考え方で「is-a関係」というワードがあります。
「is関係」や「is-the関係」ではなく「is-a関係」です。違いをイメージできますか?

「is-a関係」は「A is a B.」というシンプルな文を表していますが、

  • 「A = B」ではありません
  • 不特定多数の中の1つというニュアンスを持ちます
    • 「A」は「B」より具体的なもの
  • 「B」は名詞である(形容詞などではない)

といった具合に「a」が「A」と「B」の関係性を表します。

「A = B」ではないと書きましたが、
日本語なら「Qiitaは情報共有サービスだ」のような文が近いのではないでしょうか。
「情報共有サービスはQiitaだ」というと変ですよね。

日本人には伝わりにくい冠詞のニュアンスが本質的な意味だと思います。

その他(これらも超大事)

  • StackOverFlowで調べものが捗る
    • Writingが得意なら質問だってできますね
  • GitHubで勉強が捗る
  • 英語圏の最先端の情報を、翻訳される前に読める
    • マイナーすぎて翻訳されてない情報も然り
  • 社内外で評価される可能性がある

DeepLみたいな超有能な翻訳サイトもありますが、誤訳はゼロではありません。
間違いに気付けるというのも利点かもしれませんね。

さいごに

いろいろな利点を上げましたが、一番の理由は英語は楽しいってことですね!
単に技術的な記事を読みたくて勉強し始めたんですが、止まらなくなりました。

なんとなく避けてたよ~って方は、やってみると楽しくなってくるかもしれませんよ