パン屋で働くエンジニアが英語フレンドリーであるために習慣化していること

# Abstract

縁あって[しがないラジオ](https://shiganai.org)に出演させていただいて、
英語学習のお話をさせていただいたのですが、
主に
 **ハードルを低くして小さなところから日常的に使っていくことでコミュニケーションツールとして慣れよう！** 
みたいなことを話して終わったので、[ラジオ](https://shiganai.org/ep/sp43-norikatsu_k)では話さなかった、
"エンジニアとして"どうやって英語の力を維持・向上するようにしているかを少しご紹介させてください。
自分自身、英語圏での生活経験や留学経験がほぼなくても**そこそこ英語使える人**にはなれたと思うので、参考になる点があるかもしれません。

# TL;DR

端的に言うと生活の中で触れるインプット・アウトプットをどんどん英語にしています。
特にテック系の話題や最新技術の情報に触れるときは英語情報を敢えてあたると言う苦行によって、
鮮度の高い情報を仕入れつつ英語力が劣化しないようにしています。
以下にいくつかそのとき意識していることを記載しておきます。

- 最初から完璧な理解を目指さない。60%くらいわかれば良い。
- 理解度をあげたい場合は、回数を増やす。密度を上げることに時間を使わない。
- 眼、耳、口、手を使ってインプットとアウトプットを行う。どれかだけでは効率が悪い。

上記の点を意識してインプットとアウトプットを行うと、学習効率が上がったり、継続しやすくなったりすると思います。

# What I'm doing in my daily life to improve/keep my English Skills.

以降では各パートごとに自分がどのようなことを意識して、どのようなコンテンツを英語でインプットアウトプットしているかを簡単に紹介します。
英語学習をしようと言うエンジニアの皆さんの一助となれば幸いです。
また、各パートは自分が重要度が高いと思う順に並べているため、そちらも学習の助けになればと思います。

# Listening

### まず聞くことから始める。

赤ちゃんが言語習得する際に一番最初にすることも聞き取ることだったりします。
英語を"異国の言語"という聞き流される雑音から、"何か意味のあることば"として脳に入力されるものに切り替えること、
つまり自分に実装された聞き取り関数のInputとして受け取れるデータ型に日本語型の他に英語型を追加する作業になります。

```
function kaiwa (Japaneseinput || Englishinput){
  // ここで処理して
  // ここで結果を返す
}
```

的な感じです。
以下にリスニング強化のためにオススメの動画や音声コンテンツに関してを紹介しておきます。

### 英語に対する苦手意識を下げるために使えるコンテンツ(だいたいAmazon Prime Videoにある)

- TopGear
自動車好きなので高校生のころから見てました。娯楽コンテンツかつ日本語字幕もあるので気楽に見れます。
また、イギリス英語なので日本人が比較的聞き取りやすく、真似がしやすい発音です。

- The Game of Thrones
世界中で大人気のアメリカドラマですが、舞台のモデルが中世イギリスとかなのでこちらもイギリス英語の発音です。
基本的に難しい話はしないため、語彙も難しくないです。

- Silicon Valley
こちらもHBOのドラマですが、取り扱う内容がテック系でミームも多く、1話が30分前後のコメディなのでエンジニアにはとても馴染みがある話題が多く良いコンテンツだと思います。
こちらはアメリカ西海岸の英語だったり、ギークがボソボソと早口で喋る演出などがありハードルが少し高いかもしれません。

- Gossip Girl
完全に趣味ですが、当時の若い世代のカルチャーやスラングなどに触れられたり、セレブ階級の登場人物が多いため丁寧方向の英語があるなど、カジュアルな英語とハイソな英語の聞き取りにちょうど良いかな？と思います。

- SUITS
~~月9版許すまじ~~
掛詞的なジョークや映画のクォートが多い、専門用語や強気の言い回しが多いなど、適切なシーンで使うとちょっとできる人間っぽく見える英語が非常に多いです。これが字幕なしで見て理解できる人は普通にバイリンガル以上でネイティブに近いと思います。


### エンジニアとして英語でインプットする(YoutubeやiTunesUなど)

- Coding Tech (YouTube チャンネル)
カンファレンスなどでのテックトークが公開されています。いろんな技術やスタックに関して海外の超強い人たちが話しているため、技術に関する勉強と英語の勉強が同時にできます。
当然ですが、テック系の言葉がたくさん出てくるので非エンジニアには厳しいです。
逆にエンジニアだと技術用語から内容を推測できるのでとっつきやすいかもしれません。

- Traversy Media (YouTube チャンネル)
こちらはプログラミングやウェブ開発のチュートリアル動画を配信しているチャンネルになります。
例えばTypeScript触ってみるか！ってときに日本語情報の前にここでチュートリアルを見ながら写経して、
理解できなかったところは日本語情報をググったりMSDNとかに見に行ったりしています。

### リスニングに関してのまとめ

見ていただくとわかると思うのですが、基本的にリスニングと言いながら動画コンテンツを使っています。
目で見て、耳で聞く事で片方だけだと取りこぼす情報をできる限り拾えるようにすることで、
耳だけだと聞き逃したりする情報を補足できるように意識して動画コンテンツでリスニングをすることで、
英語に耳を慣らすようにしています。

# Speaking

### 聞いた言葉をおうむ返しにする。から始まる英会話

会話でも文面でも、基本は入力→自分の考えとかを考えるなどの処理→考えた内容をアウトプット
が入出力処理の基本だと思います。
考える行為は負荷が高いので一旦忘れて、入力情報をできる限りそのまま返却する事でアウトプットの練習を行いましょう。

```
function kaiwa (input){
    return input;
}
```
みたいな感じですね。ここに処理を追加すると会話が実装できます。

### おうむ返しの仕方を考える

スピーキングの練習で効果的なのがシャドウィングで、
これは聞いた音をそのまま口に出すというやり方です。
が、基本的に日本人はカタカナ英語を口から出してしまいます。
自分のシャドウィングを恥ずかしさに耐えて録音して聞いてみたり、
モノマネ芸人になったつもりで恥を捨ててハッチャケて外国人ぶるのがベストですが、
それでも日本人にとってスーパー難易度が高いのが発音(pronunciation)ではないかなーと思います。
なのでここで一つ強力なスピーキングハックを紹介します。

- Engrish を受け入れる

- イギリス英語を話す
 
これだけです。
日本人はどうしてもlとrの発音で苦戦したり、アメリカ人の音を合体させて発音する英語の発音が日本語の発音と遠すぎてつらみが深くなってしまうので、潔くアメリカ英語の発音とlとrの違いは諦めて日本人にも聞き取りやすく発音しやすいイギリス英語にシフトしましょう。
waterを"ワーラー”って発音しちゃうアメリカン英語よりは、"ウォータ"と発音するイギリス英語のほうが発音しやすいと思います。
lとrもcollectとcorrectとかelectionとerectionとか辛いので、相手が前後の会話内容から類推してくれることに期待する方がlとrを練習するより数倍合理的かつ時間がかからないやり方だと思います。

### おうむ返し練習用コンテンツ

- BBC World Serviceのニュース
BBCのニュースは基本的に全世界向けで、非英語話者でも理解ができる難易度の単語や文法かつ、ラジオなので聞いて理解できるように文章もそこまで長くない上、放送コードによって健全な内容のため一番スタンダードなおうむ返し特訓コンテンツだと思います。

- the Game of Thronesのセリフ
こちらも文章の難易度や単語の難易度が低く、アメリカのコンテンツながらイギリス発音のため実におうむ返ししやすいです。
ただ、暴力的な単語などが多く口が悪いため上品な英語を話したい紳士には向かないかもしれません。

- Top Gearのセリフ
POWER is EVERYTHING, MORE is BETTER. という名言がありますね。僕個人にとっては聖典にも等しいシャドウィングコンテンツですが誰にでもお勧めできるものではないです。

### おうむ返しがあたかも英語をペラペラ話しているかのようになったら
ある程度自分の口から出るおまじないが英語に聞こえるものになったら、
やっと自分の言葉を話す段階ですが、ここは正直どうやったらできるというものでもないと思うので、
ひたすら自分の頭で考えたことを英語で出すしかないなぁと感じています。
一つ言えるのは、脳内で日本語→英語の変換プロセスや英語→日本語の変換をかけているとオーバーヘッドがすごいです。
脳みそ上の概念を別の言語を挟まずにネイティブコードに変換できるとオーバーヘッドがなくなってパフォーマンスが劇的に上がります。
実際、英語を話すときにオーバーヘッドがない単語だけで会話してると日本語も英語も違いを感じずに喋れてます。
オーバーヘッドは単語とそれが意味する概念が結びついていれば概念→日本語→英語変換→英語喋る。
とならないため起きないっぽい感じなのですが、如何せん語彙力勝負なので地道に単語や文法やイディオムを覚えて使って刷り込みしていくしかない感があります。
やった分だけ英語がスラスラできるようになるので、学習曲線の角度が上がった時の英語できるぞ感がすごいのですが、
そこまでは地道に日々のインプットアウトプットで英語を使い倒すしかないのが実際のところです。
プログラミングを始めて学んで、ある程度自分でプログラムが書けるようになるのに近いかもしれません。

### スピーキングに関してのまとめ
スピーキングは相手がいないと上達が分かりづらく、またする機会もないため日本にいると練習が難しいのですが、
上で挙げたシャドウィングを録音してチェックする手法は1人でもできるため、スピーキングの上達に効果的です。
また、ある程度英語話者がスムーズに聞き取れる発音を身に付けることで、相手に聞き返されたりすることが減ると心理的プレッシャーも減って、英語話すのが楽しくなる好循環に入りやすくなると思います。
さらに、エンジニアに限って言えばテックの話題など世界共通かつすでに自分も知っている話題などがあるため、ある程度の英語が喋れるようになると、一気に話せる話題が増えて上達速度を挙げられると感じます。
是非挑戦してください。


# Writing
### ライティングとリーディングのプライオリティについて
おそらく、リーディングとライティングの優先度に関してはどっちが先かの意見が分かれると思うので、
個人的な意見を書いておきます。
エンジニアとしてアウトプットする英語はたいていの場合シンプルだと思います。
gitへのコミットメッセージや、チャットでのやり取り、仕様の話などがエンジニアがよく使う英語になるんじゃないでしょうか。
また、テキストコミュニケーションを想定した場合エンジニアはGoogleにアクセスできる状態でコミュニケーションをとることが多いと想定されるため、リーディングはGoogle翻訳にぶん投げるという荒技がつかえますし、
昨今Google翻訳の翻訳内容がいい感じのため、読むことに関しては最悪日本語にしたものを使うことで乗り切れる場面が多いと感じます。
ただ、コミットメッセージ程度を書くためにいちいちググったりするのは手間がかかるので、
個人的にはコミットメッセージのような1文のライティングがサクッとできるようにライティングを優先した方がいいんじゃないかな。
と思っています。

### (スピーキングができるなら)口に出したことをそのまま書けば文章になる。
質を考えなければ、口に出して相手に伝わる英語は多分大体そのまま文章にすれば伝わります。
Twitterとかで英語でちょこちょこツイートしたりするくらいなら文法的におかしくても通じる気がします。
自分のライティングスキルはそこまで高くないので、テキストチャットやメッセージアプリなどで英語話者の友人知人とやり取りする時はしゃべっているのまんまの英語を書いています。

### アウトプットの質を上げる。のは自学自習だと厳しい。
英語に限らず日本語であっても、文章をきちんと書くことは高等技能にあたります。
英語で長い文章をちゃんと書く場合、まず英語のできるレビュアーを置いて、書くしかない。
というのが正直な感想になります。コードレビューと同じで品質を担保するために複数人で取り組むケースです。
海外のエンジニアはちゃんとした文章を書けるやん？と思うかもしれませんが、
彼彼女たちは院卒とかなので学術論文やレポートを書く技術を持っています。
個人的には、そのレベルで英語の文章を書けるようになるにはもう海外の院で論文書くしかないのでは...と思います。
実際、日本の大学では英語論文を書くためのサポートとかあまりないと思いますし。
または後述のリーディングとも関連しますが、英文を写経したりするとスピーキングの項で述べたシャドウィングのようにライティングスキルが向上すると思います。

### ライティング、日本人は高校まで頑張ってるから割とできる説
リーディングとライティングのスキルに関しては、ほぼ大学受験のためにやってきた英語の勉強がそのままワークすると感じています。
実際、学生時代に英文レポートを書く時は高校時代に使っていた文法書や英語で書かれた英作文のテキストを参照しながら書いたあと、自分より英語ができる人間にチェックを依頼して修正してもらうようにして書いていましたし、
レポートなどは参考文献からの引用なども多くあるため自分の力のみで長文の何ページもあるような文章を書くことは厳しいと感じます。
たとえ日本語であってもそのような長文をしっかりと書くことは難しいのではないでしょうか。

# Reading

### 読むための第一歩は単語力
おそらく、大学受験のために英語を勉強した程度の単語力があれば、ほとんどの文章は読めるレベルの水準の単語量を日本では学生のうちに学んでいると思います。
なので、単語力を上げるために必要なテキストは実は受験用の単語帳や受験用の文法書でなんら問題はありません。
ですが、単語を覚えるときには日本語の直訳ではなく、その単語がどういうことを意味するのかという概念を覚えるようにしないと厳しいなと感じています。
直訳だと意味が通らなかったりする場合が多い上に、訳語がいくつもある場合にそれを全部覚えるのは非効率的かつ非現実的だと感じるからです。
また、読んでいて知らない単語が出た場合即検索する習慣を持つのも効果的だと思います。
自分ごとになりますが、MacはSpotliteから単語検索で辞書が開けたり、右クリックメニューで単語検索したりできるため非常に捗ります。
日本語ですら読めないわからない漢字とか熟語とかたくさんあるので英語で完璧とか絶対無理！と開き直ってめちゃくちゃ辞書を引いてます。
そして何度も調べるような単語は接触回数が増えるため何処かのタイミングで覚えたりします。

### リーディング力を高めるために使えるコンテンツforエンジニア

- medium
英語圏エンジニア版はてなブログ的な感じで使われてる気がするので木になる記事があったら読みます。
当然辞書検索しまくりです。

- POST D
英語圏のブログ記事とかの邦訳メディアなので面白そうな記事から元記事に飛んで英語で読みます。
記事内で触れられている別記事とかのリンクを押すと英語である確率が高いのでそれも合わせて読んじゃいます。

- TechCrunch, GIZMODE, Engadget などの日本語版もあるウェブメディアの英語版
情報収拾も英語でやったりします。流石に網羅は辛いので気になる記事だけですが。
このあたりはカジュアルなメディアなので難しくないし気軽に読めて息抜きになるかもしれないです。
読めなくてもあまり困らないですし。

- 技術書
これを普通に読めたらもはやリーディングを鍛える意味があるのかわかりませんが、オライリー本とか、海外で教科書として使われるような本は読めたら英語で読んだりします。~~訳が微妙なので。~~
ハッカーと画家の元になったエッセイブログとかも面白かったです。

### エンジニアが触れる英文って基本海外の大卒以上が書いて大卒以上が読むことを想定している。
全体的に、精読して正確な読解ができるようになる！とか高いハードルは自分に課していなくて、読んでなんとなく理解できることを目標にしていたりします。
海外で大学レベル以上の教育を受けてる人たちは大学で専門教育を受けていない日本人が日本語でもわからない専門科目をさらに英語で取り扱うわけですから、ハードルがすごい高いことはご理解いただけるかと思います。
また、エンジニアをやってるとリファレンス和訳されてないやんけ！！ということが多々あると思いますが、そこで回れ右する前にちょっと読んでみると意外と読めることに気がつくと思います。とくにOSSとかは非英語母語の人たちも使うことを考えると結構シンプルな英語が書かれていたり、リファレンスなのでコードも書いてあったりで理解しやすく精読を求めなければ内容理解に問題はないのでは？と思っています。

# Conclusion : EaaT (English as a Tool)

英語はツールです。例えばgitのような。
非常に強力で、デファクトスタンダードの位置にいますが、今後も覇権を保ち続けられるかは誰にもわかりません。
使わなくたってsvnでやって行ける現場があるように、他のやりかたで乗り越えていく方法もありますが、
使えることで得られる恩恵はすごく大きいツールです。

gitだって最初はadd, commit, push, pullから使い始めたことでしょう。
日常的に使えるようになった今ではgitが使えない人や使わない現場が理解できないかもしれません。

マイナーなコマンドまで暗記し手で覚えて意識せずに使えるようになる必要はありません。
わからなければ-hすればいいし、ググっても構いません。ただ、addやcommitのレベルは覚えないと使うのが難しいかもしれないです。

我々エンジニアが日々書いているコードは英語ベースで、日々使うコンピュータはそもそも英語圏で生まれ育ったものです。
であれば、それを使い日々コードを書いているエンジニアは、英語と縁のない生活を送る多くの人たちよりは数歩ぶんほど、
英語力が高いのではないでしょうか。
新しい技術を日々学ぶエンジニアライフは学ぶ対象をフレームワークやツールやライブラリから英語に置き換えることもできるかもしれません。
であれば、エンジニアの皆さんの英語習得へのハードルは、自分で思っているよりは随分と低いのかもしれません。


# Tips：おまけ 
Windowsユーザーだとあまり関係かもしれないのですが、
無意識に英語を理解できるようになるためにMacやLinuxやiPhoneなどの多言語対応環境では常に英語を使うようにしていたりします。
高校生の時に受験勉強と思って初めてもう10年くらいそんな環境設定にしていますが、
困ることはほぼないので英語に対する拒否反応を抑え、心理的ハードルを下げるのに有効かもしれません。
よかったら試してみてください。