AIが隆盛してきたけど、英語はまだまだ勉強したほうが良いと思う

これは「Happiness Chain Advent Calendar 2023」の 6 日目の記事です。
https://adventar.org/calendars/9414/

:::note warn
注意
※筆者はこの領域の専門家でもなんでも無いので、ポエム記事です。個人の見解なので悪しからず。
:::

# はじめに

プログラミングの勉強を始めると、「エラー文も英語、プログラミングで書く内容も結局英語。英語ばっかじゃねえか！プログラミングの作業に全然たどり着けねぇ！」って最初に思うと思います。
プログラミングができるようになるためには、ある程度の英語力は不可欠ですが、
今まで英語に馴染みがなかった人にとってはプログラミング作業の中での英語の壁が意外に高い。

なので、プログラミングの勉強と並行して英語の勉強を始めるケースも多いはず。
しかし、近年では翻訳サービスがかなり充実しはじめ、**「英語って今から勉強するのぶっちゃけコスパ悪くね？」と同時に思う人もいるはず。**

「英語をできるようになりたいけど、英語勉強にコストを本当にかけるべきか」という迷いは、この 1,2 年で翻訳サービスが充実してきた（あるいは充実する未来を想像できる）世の中で新たに発生した悩みだと筆者は思います。
**「英語めっちゃ大事だからちゃんと勉強しろよ！」の説得力が数年前より弱くなったかも**、と感じさせる瞬間が度々あると筆者は最近感じています。

この「今から英語を勉強すべきか」の悩みについてですが、筆者は **「現段階の翻訳ツールのレベルなら英語は絶対勉強したほうが良い」** と思います。
現段階の翻訳ツールだと、英語を英語のまま読める人間と同じテンポで作業できないからです。

本記事は、「プログラミング勉強するにおいてまず目指すべき英語レベル」と「プログラミング関係なく英語できるといろいろ楽しいぜ！」について筆者の考えを好き勝手に書いたポエム記事です。

# 英語を英語のまま解釈できることの威力ー最初に目指すべき英語レベルー

筆者の現在の英語力は以下です。
ビジネス英語ができるレベルではなく「ひとりでの海外旅行で英語に困らない。勉強し直せば日常会話レベルまでは 1 ヶ月くらいで戻せる」くらいなレベルです。（英語話者としてはぶっちゃけ大したことないレベル）

- プログラミング
  - エラー文やログを翻訳せず英語のまま読むことができる。
  - 簡単な技術記事を英語のまま読むことができる。
  - 難しい技術記事や、知らない単語が多い記事は大なり小なり翻訳使う。
- 日常生活
  - 海外旅行で、英語を読むにはほぼ困らない。母国語が英語以外の国で、現地語ではなく英語の案内があると安心できる。（英語なら読めるから）
  - （英語ネイティブ以外でない国の）海外旅行で、英語を聞く話す分にはほぼ困らない。（聞き返すけど、聞き返すの含めコミュニケーションがとれる）
  - （英語ネイティブの国の）海外旅行で、英語を聞くのは聞き返すことがより多くなる。話すにはあまり困らない。

このレベルでも、プログラミングにおいては英語を英語のまま解釈できることが多いので、色々な作業がストレスなく行えます。

プログラミング学習している中で最初に目指す英語レベルは **「（特にエラー文の）英語を翻訳せずにそのまま読むことができる」英語力** だと思います。
つまり、リーディングが最初は大事です。
リーディングは努力が実りやすいです。
また、スピーキングやライティングに比べ、リーディングは日本の英語教育で土台が形成されています。

英語を英語のまま読めるとどんな感じになるか、エラー解読を例に説明してみます。

## 英語を英語のまま読めるとこんな感じ

この記事を読んでいる方は日本語ネイティブの方が大半だと思うので、日本語を例にします。
日本語ネイティブの人間にとって、一番理解が早い言語は日本語だと思います。

プログラミング作業をしていてエラーに遭遇せず作業が進むことはないはず。
エラーが発生した際に、以下のように日本語でエラーが出たら原因追求がめちゃくちゃ楽じゃないですか？
「users_controller の 24 行目で、引数の数が間違っているためエラーが起きている」とすぐに分かると思います。

```:①日本語のエラーだったら楽だよね
/app/controllers/users_controllerの24行目で発生しました。
引数エラーです。引数の数が異なります。2個の引数が想定されますが、1個の引数しか与えられていません。
```

しかし、悲しいかな、実際には以下のような英語のエラーが出るので、読み慣れていない人は激萎えします。

```:②英語のエラーはいかつい
Showing /app/controllers/users_controller where line #24 raised:
ArgumentError: wrong number of arguments (given 1, expected 2)
```

これが、英語を英語のまま読めると、② の英語エラーを見た後に、頭の中では ① の日本語と同様に解釈できます。
**読んで意味が解釈できるまでラグがありません。**
言い方を変えると、**① の日本語エラーだろうと、② の英語エラーだろうと、同じスピードで頭の中で意味を解釈できます。**（英語のほうが文法がシンプルなので、速いまである）

これを翻訳ツールを使った場合はどうなるでしょうか。
翻訳ツールを使うと以下作業が必要になります。作業に習熟してきても 10 秒はかかるのではないでしょうか？
```:エラー文翻訳までの流れの例
エラー文を見る
→エラー文をコピーする
→翻訳ツールにエラー文を貼り付ける
→エラーが翻訳される
→日本語でエラーの意味がわかる
```

加えて、違和感のある日本語翻訳が出てきた場合、どこで変な翻訳が起きているかを自力で分析する必要があります。
こうなると更に時間が掛かりますし、結局自力での翻訳が発生しているので地の英語力が必要になるというジレンマが発生します。

エラー解釈までかかる時間をまとめると以下のような感じでしょうか。

```:エラー解釈までにかかる時間
英語を英語のまま解釈できる → ラグなし（日本語と同じスピード）
翻訳が必要 → 習熟して 10 秒
```

たかが 10 秒されど 10 秒、この 10 秒の差は正直大きいと思います。なぜなら、プログラミングの作業中にはウン百、ウン千というエラーと遭遇するからです。
一つのエラーを解消して別のエラーが発生するなんて日常茶飯事です。チリツモでこのラグは効いてきます。

また、翻訳作業はプログラミングの脳みそと違う領域の脳みそを使うので、**翻訳を挟むとプログラミングの思考が一度止まりテンポが悪いです。**
英語のままエラーを読めると、プログラミングの思考を止めずに作業を続けられるので、エラーが出てもストレスなく作業が進みます。
こういった **思考回路的な要素もあり、エラーは英語のまま読めたほうが実装が圧倒的に速くなります。**

なので、プログラミングに必要な英語力として、まずは「英語エラーを翻訳使わずに読める」が最初に目指すべき英語レベルだと思います。
ハードル高く感じるかもしれないですけど、リーディングは一番努力が実りやすいですし、 **エラーで見かける英単語もそんなにパターン多くないので数ヶ月あればぐに慣れます。**

また、遭遇するエラーも同じエラーが多いので、「またこのエラーか…」と思ってエラーの意味が即わかる、でも全然 OK です。
エラーの英文を暗記できていて意味が分かるようになっている、ということなので英語を英語のまま読むことができています。
読める英語の文章が増えているということなので、英語の習得が真っ当に進んでいる証拠です。

# プログラミング学習において、英語ができる他のメリット

エラー文のリーディングに特化して一つ例を上げましたが、英語ができるメリットは他にもいっぱいあります。

## 情報収集能力が高まり、エラー解決が速くなる。

エラーを読んで原因がわかると、色々ググって解決するステップに入ります。
プログラミングの技術記事は、残念ながら日本語より英語記事のほうが記事数が多いです。最新の情報を見つけるにも英語のほうが見つかりやすいです。**質も量も日本語記事は圧倒的に不利です。**
なので、**新たな技術であるほど「日本語より英語でググったほうが解決が速い」ケースが大半**です。
そして、ググる際の英単語のワードチョイスは、もろに地の英語力が反映されます。

英語力が高まる → ググる際のワードの精度が高まる → 自分がほしい記事が見つかりやすい → エラー解決が速い
の構図が成り立つので、英語力と実装スピードも繋がっています。

## ボキャブラリーが増えると、変数名やメソッド名が良い感じになる。プログラムの可読性が上がる。

プログラミングは英語で書くので、ボキャブラリーがないと同じような単語ばかり使いがちになります。
メソッドや変数に使う英単語のバリエーションが増えてくると、読みやすいプログラムが書けるようになります。

# プログラミング学習以外において、英語ができるメリット

ここからはプログラミング関係ない話になります。
**プログラミングのためだけに英語をやるっていうのもちょっと悲しい気持ちになってきませんか？**
当たり前ですが、英語は言語なのでコミュニーケーションツールです。
英語ができるようになるとプログラミング以外の面でもいろんなことができるようになって楽しくなります。
なので、英語がある程度できるようになった際のプログラミング以外のメリットも書いておこうと思います。

## 海外旅行がより楽しくなる

筆者は英語でコミュニケーションをとるのはぶっちゃけ楽しいと思っています。
正確に言えば、「全く話せなくて苦しい時期はすでに乗り越えたので、楽しいと思えるようになっている」です。
（スピーキングなんて最初は出川イングリッシュでした。）

英語である程度コミュニーケーションが取れるようになると、一番楽しいと感じるのは海外旅行です。
「現地のレストランでオススメメニューを聞いて、それがめちゃくちゃ美味しかったとき」とか「道に迷ったけど、現地の人に聞いて目的地にたどり着いたとき」とか旅している感があってとても楽しいです。
「自分の言葉で外国人とコミュニケーションできた」という経験は、翻訳ツールを介したものとは全く異なる成功体験を味わえます。

また、「困ったら最終的に自力で英語で聞けば良いわ」ってスタンスになるので、全くビビらず旅行できるようになります。
スマホ経由で翻訳ツールに頼りっきりだと、スマホをスられたりバッテリーが切れたりしてスマホが使えなくなると、とたんに無力になってしまいます。
（もちろん便利なツールなので活用すべきだと思います。これはマインドの問題です。）

## プログラミング以外でも鮮度の良い情報を得やすい

グローバルレベルで最新の情報を集める場合、英語記事を探すケースが多いです。日本語に訳された情報はどうしても鮮度が落ちがち。人口面でも不利です。
なので、趣味の領域でも最新の情報に触れたい場合は、英語で情報収集できると鮮度の良い情報を集めやすくなります。

# 英語の勉強法について

勉強法にも少し触れようと思います。
英語に触れ続ければ英語は徐々に伸びていくので、学びはじめの題材は自分の趣味から始めて楽しんで勉強するのがオススメです。
やらされる英語勉強だけで進めると結構退屈なので、**楽しみながら英語に触れられる題材を一つでも持っておくと英語勉強は長続きします。**
筆者の場合はゲームと洋楽でした。

趣味別だと以下のような感じでしょうか？
やってるうちに「これどういう意味？」とか「言い換えるとどうなるかな？」とか「音読じゃなくてそらで言えるようになりたい」とか欲や興味が出てくるフェーズに来ます。
そこまで来たら、その欲や興味に従って英語に触れ続ければ良いと思います。

- ゲームが好き
  - 最新バージョンの攻略法が日本語化されていないから、リーディング頑張って英語のwiki見る
  - 外国人とボイスチャットしながら FPS したいから、リスニングとスピーキング頑張ってみる
- ドラマ・映画が好き
  - あの名台詞そのまま英語で言えたらかっこ良いから、いろいろセリフ覚える
  - 最新話が日本語訳されるまで待てないから、英語音声・英語字幕で頑張って見てみる
- 音楽が好き
  - 洋楽そのまま歌えたらかっこ良いから、頑張って英詞覚えてそのまま歌う
- ジャンル問わず
  - あこがれのあの外国人のインタビュー動画を原文のまま見たいから、字幕読解とリスニング頑張る

# おわりに

色々書きましたが、語学勉強は最初が一番きついです。
今まで英語をほぼ触らずプログラミングから英語入った人は、英語&プログラミングのダブルパンチで勉強がめちゃくちゃキツイと思います。
どちらも、触れ続ければある程度できるようになるので、我慢して触れ続けることが大事です。
本文でも書きましたが、英語に関しては、自分の趣味と繋がっていて英語に触れられる題材を一つ見つけておくのが長続きするコツです。

# 余談

## 翻訳ツールがどこまで進んだら、英語の勉強のコスパが悪くなりそうか（筆者の考え）

「現段階の翻訳ツールのレベルなら英語は絶対勉強したほうが良い」と書きましたが、どの段階なら不要なの？という疑問が出てきます。

筆者的には、五感と翻訳がほぼリンクしたハードが登場したらだいぶコスパ下がるかなと思います。英語のような語学なら視覚と聴覚ですね。
今は、ソフトが出てきてますがハードがない（ハードが出始め）ので、どうしても「翻訳ツールで翻訳する」という遅延が発生します。
何を言っているかというと、現状だと以下のような翻訳作業が必要になります。
現状だとスマホかざさなきゃいけないとか、翻訳かけるのにコピペがいるとかひと手間必要です。
・視覚：英語を見る →「翻訳ツールで翻訳する」→ 意味がわかる
・聴覚：英語を聞く →「翻訳ツールで翻訳する」→ 意味がわかる

これが以下のように「翻訳ツールで翻訳する」を介さなくなるような世界が来ると、相当なパラダイムシフトだと思います。
まさしく SF 映画 のような世界（近年の技術の変化を考えると、絵空事ではないと思います）。
これはもう英語のラグなし翻訳と言って良いと思うので、英語勉強のコスパがかなり落ちるかなと思います。

・視覚：英語を見る → 意味がわかる（スマートグラスとかで翻訳された文章がそのまま視覚に出るような世界）
・聴覚：英語を聞く → 意味がわかる（耳元で同時通訳で遅延なく自然な日本語がそのまま聞こえるような世界）

で、これをするためには五感とかなり近い距離で繋がったハードウェアが必要です。
今の世の中にあるものだと、視覚ならスマートグラス、聴覚なら完全ワイヤレスイヤホンとかでしょうか。
特に、スマートグラスがまだ技術的に全然普及していないので、上記の世の中になるにはもう少し時間がかかるんじゃないでしょうか。（聴覚の方はもうほぼ出来上がってきているかも）

## 翻訳内容が正しいか確認するために結局人の目が必要というジレンマ

色々書きましたが、「翻訳後の日本語が正しい」と最終的に確信を持つためには、地の英語力が必要になります。
翻訳ツールの精度はかなり上がってきましたが、違和感のある日本語で訳されるケースはまだまだ多いです。
専門用語が多い文章であれば、その傾向はより顕著ですね。

「翻訳後のこの文章の意味よくわからんけど、翻訳ほんとにあってる？翻訳間違っているのか、元の文章が難解なのかわからんから原文読むわ。」となるケースは、翻訳精度が上がっても皆無にはならないと思います。
なので、翻訳技術がいくら向上しても、「英語が正しい日本語に翻訳されているかを判断できる」くらいには地の英語力が合ったほうが良いのは間違いないと思います。