英語が苦手なエンジニアが、克服するためにやったこと

# 自己紹介
株式会社じげんの山本です。
賃貸情報サービス「賃貸スモッカ」をはじめとした不動産サービスを展開する住まいDiv.でサーバーサイドエンジニアを担当しています。
# 英語への苦手意識
エンジニアの皆さんは、言語や、フレームワークのドキュメントを英語で読んだり、GitHub の**全て英語**で記載された議論を読むことに苦手意識はあるでしょうか？
僕は以前まで苦手意識がありました。これを読んでいるみなさんも、もしかしたら多かれ少なかれあるのではないでしょうか？
普通は第二言語で技術を勉強するなんて辛いと思います。「ただでさえ技術がわからなくてググっているわけで、なんでさらに苦労をしないといけないんだ」と思う方もいるでしょう。ただそれでも「英語で技術について読めるようになった方が得ですよ!」という話をします。
「なんで英語で読むと良いのか？」「どうやったら読めるようになるのか？」ということについて書きます。

# なんで英語で読むと良いの？
この質問には①量と、②質という方向から回答したいと思います。

## ①量
単純な計算で、インターネットにある言語別の情報量を考えてみましょう。
次の表を見てください。
出典 -> https://www.statista.com/chart/4140/low-diversity-of-languages-on-the-web-hinders-accessability/ 
左は普段話されている言語で（今回は関係ない）、右側が「インターネットでどれくらいの言語がどの割合で使われているか？」というグラフです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/478998/6750b8e2-3ccf-d9e8-45e0-45fd53ef1835.png)

インターネット上で使われている言語の中での英語のシェアは、実に五割を超えています。
日本語は5.0%なので、10倍以上ですね。
これらからわかるように、情報量が圧倒的に違います。
例えば、開発中に出たエラー文をコピペしてブラウザで検索した時に、最初に出てくるのは英語の stack overflow や GitHub のスレッドではないでしょうか？
自分は今まで、英語に苦手意識があり、それを見ずに（みすみす正解をスルーして）、他の日本語ページをわざわざ探していました。
その結果、思った回答が見つからずにネットを彷徨っていて、膨大な時間を無駄にしていました。
ほとんどの場合、答えは目の前にあるのです。

## ②質
ここまでは量の話でした。
「ただ量が多くても質が悪かったら意味がない」という指摘があるかもしれません。
しかし、英語は質でも勝っているのではないか、という話をしていきます。

例えば、日本では `Ruby on Rails` で開発を行う現場が多くあると思います。
そして開発中に以下のサイトを参考にしている人は多いと思います。
出典 ->  Rails ガイド https://railsguides.jp/

自分は先日このガイドを参考にしていて、ルーティングのコードを書いていました。
そこで、 `defaults` の使い方がいまいちわからなかったので該当箇所を日本語訳版で読んでいました。
以下読んでいた箇所の添付画像です↓↓
![スクリーンショット 2021-11-29 15.23.09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/478998/91023074-99d8-52dc-4053-e238d7bb9d49.png)
ここを読んだ時、あまりすんなり理解できなかったので英語の方（原文）も読んでみました。
以下原文版です↓↓
![スクリーンショット 2021-11-29 15.24.30.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/478998/a955dcd6-8959-24f0-914a-4b292178936a.png)

英語版を読んだところ、急にすんなりと理解できたのですが、両者の違いは最後の一文です。

```
# 日本語版
上のルーティングはブラウザからの/photos/12パスにマッチし、
Photosコントローラのshowアクションに割り当てられます。

# 英語版
Rails would match photos/12 to the show action of PhotosController,
and set params[:format] to "jpg".
```

皆さんはこの二文の違いに気づきましたか？
日本語の方では、 `path` のマッチとアクションの割り当てについてしか書かれていません。
しかし、英語版では、このように`defaults` を書くと、`params[:format]` の中に `"jpg"` という値が入ってきますよ、ということが書かれてあります。

改めてですが、僕はルーティングに関しての**`defaults` についてわからなくて、このドキュメントの `defaults` の欄を読んでいます** 。
その上で、コントローラとアクションについてのみしか書かれておらず、この最後の「 `defaults` を設定することで `params` に値が入る」という重要な部分に関する一文がないというのは、解説として不十分だと感じました。
自分が読みたいのはまさにここなのに、それが書かれていません。

ここで特筆すべきなのは、このドキュメントは、**日本人の利用者が特に多いRailsのドキュメント** だということです。
それなのに、原文の英語版と比べて、日本語ドキュメントは抜けている箇所が所々存在します。
Railsのドキュメントでこれならば、日本人利用者の少ない他の技術のドキュメントでは、もっと質が悪いかもしれません。

# じゃあどうやったら英語読めるようなるの？
ここでは以下の2つを書きます
- 勉強する
- DeepLを使う

## ①勉強する
ベースとして、高校レベルの基本的な英文法がわかっていないと読むのは難しいかと思われます。ここは勉強するしかありません。今後エンジニアとして、答えが見つからずにネットで彷徨う膨大な時間と、人生の一時期英語を勉強する時間を天秤にかけたら、どっちがコスパがいいかは明らかだと、個人的には思います。英語の勉強方法はたくさんネットに載っていますので、自分に合った方法を探してみてください。
基本がわかれば②を使えばできるようになっていくと思われるので、基本をサクッとおさらいするのがおすすめです。

## ②DeepL を使う
DeepL を使っている人は既にいると思いますが、これは英語のドキュメントを読むのにとても有用な翻訳ツールです。非常にナチュラルな日本語で世界のいろいろな言語を翻訳してくれます。自分は先ほどから、英語を読もうと言っていますが、これは本質的には英語で**書いてあるもの**をよもう！という意味なので、DeepL で原文が綺麗に翻訳された日本語で読めるなら問題ないのです。
以下のリンクから Desktop アプリをダウンロードできますのでしてみてください。 **DeepL はWeb でも利用できますが、web じゃなくてアプリをダウンロードしましょう！** より便利で普段使いするならアプリでダウンロードする方が断然便利です。
出典 -> https://www.deepl.com/en/app/
![スクリーンショット 2021-11-29 16.03.17.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/478998/9ac0e25f-5f14-7f0a-ce0c-34818d408392.png)


これ、アプリをダウンロードしたら早速使ってみましょう。
例えば、わからない英語記述箇所をカーソル選択して、
(出典 -> https://stackoverflow.com/questions/13906635/what-is-the-activemodel-method-attribute-was-used-for) ![スクリーンショット 2021-11-29 16.14.07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/478998/ab9a03a6-392e-e3eb-5ee4-f1a39bf53df3.png)


(Macユーザーの方だったら) **command + c** を2回連打しましょう。
そうすると、自動で DeepL のウィンドウが前に出てきて翻訳を始めてくれます。
(ローカルでアプリを動かした時のスクリーンショットです)
![スクリーンショット 2021-11-29 16.15.11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/478998/52953973-d672-6a94-bafc-138c7fa95d78.png)

綺麗に訳せました。

## DeepL があったら、勉強は不要なのでは
こう思われる方も多いと思います。しかし、一文一文DeepLを使うのは時間がかかり、最終的には使わないことがベストだと思います。
そこで自分は DeepL を**補助輪**として使うのがおすすめです。自分は最初、これを使うことによって「なるほど、こういうふうに英語の意味を捉えれば良いのね」と理解しながら使っていました。
いずれ慣れてきたら、徐々に使用頻度を落としていって、最後には英語を自分でスラスラ読めるようにしていくのが良いと思います。DeepL はもちろん便利で素早いですが、自分で読めるのがやはり最も早いです。
自分は最初は DeepL を多用して、徐々に使用頻度を減らしていくことで苦手意識を無くしていきました。

# 最後に
英語の勉強を面倒に感じておられる方も少なくないと思います。
しかし、英語ができる場合とできない場合、エンジニアとしてキャリアを積んでいく過程で大きな差が開いてくる可能性も否めません。

実際に、GitHub の人気レポジトリは、ほとんどが英語です。https://github.com/trending?since=monthly
勉強が苦手という方も、苦手意識の克服がご自身の成長につながると捉えて、英語で読む活動を始めてみませんか？
長い目で見て必ず大きなリターンが返ってくるものだと思っています。

# 関連
以下の記事は自分の考えと似ているところがあり、自分の記事に賛同していただいた方には、とても良い記事だと思ったのでぜひ読んでみてください。
**私たちはどうして公式ドキュメントが読めないのか？**
https://qiita.com/hiraike32/items/f0a211cceb0ecc516b6c