2ヶ月間、英語で後輩指導してみた

[下に日本語版があります。](#%E6%97%A5%E6%9C%AC%E8%AA%9E)

# English

This article is the 17th of the [Diverse Advent Calendar](https://qiita.com/advent-calendar/2019/diverse).

## Introduction

One of the personal biggest news this year is that [**"I have a junior engineer from India"**](https://www.wantedly.com/companies/diverse-inc/post_articles/199675).
And it was hard for her to communicate in Japanese at that time, so I strongly felt the necessity to communicate in English with her (In India, English is one of the official languages. That's why she is quite fluent in English).

On the other hand, I'm quite poor at English, so it was really challenging to communicate with her, but I decided to communicate with her in English and this effort is still going.

I'm going to describe what I learned and noticed from my experience.

## About me

* Graduated from a Japanese graduate school of engineering 6 years ago.
* There were no people must communicate with in English.
* Felt frustrated every time I took part in international conferences, and I couldn't ask any questions there.
* Scores of English Test? Pleeeeeeeeeeease just guess.

## Obstacles I have been feeling

### Listening, Listening, Listening!!

For Japanese engineers, reading English is a part of daily tasks, because we have to read tutorials, API references, etc..!
However, how about listening? We hardly ever listen to any sentences in a daily work environment.

I couldn't understand several sentences well.

For example, I still can't recognize the difference between the pronunciation of `r` and  `l`.　That is why I have a problem recognizing some words in a conversation.


### Poor vocabulary

One more cause I can't hear words is my poor vocabulary.
Why I can hear words I don't know without recognizing spelling from sound?
Additionally, my vocabulary is unbalanced because I'm learning English from American criminal drama my mother watching everyday, so maybe I can hear words `murder`, `case`, `special agent` or like that.
(This is the digression but I learn that using `I'm sorry` not only to apologize but also to mourn someone from the drama.)


### Difference between cultures

In Japanese school's English classes, we learn not only English as language but also cultures underlying language.
But the culture is mainly American's it.

Of course, all english speaker is not all American.
Now, can I communicate using English assuming that? I have been confusing.


## Advantages I have been thinking

### Vocabulary of programming

Almost all popular programming language's grammars are based on English.
And almost all popular libraries and frameworks has English manual.

So I know the words like `variable`, `arguments`, `functions`, `if statements`.

And source code is common language all over the world! (like a formulas of mathematics)

It means that writing codes and request "Please write like this!" as final option.
(I know it's rough way, but) Having options make me assure.


### My experiences of traveling foreign countries

Last and this year, I went some countries, USA, Taiwan, Thailand and Philippine.
During travel, I had to communicate in English and local languages (and body language!).

I leaned that I can communicate with someone in my poor English skills if I really want.


## After 2 months

### Problems before communication

Why the "Specifications" are so ambiguous?

I noticed this when I try to describe business specifications in English to the junior engineer.
We are talking in very ambiguous Japanese words.

I want every business person (including me) to write or describe specifications concretely.
After that, we can start communicate. Because I don't have enough vocabulary to express ambiguous things.


### I can't hear perfectly, Uh, I know

Still it's hard to listen and understand words for me.
Maybe reckless training (a.k.a OJT) doesn't work. I have to train this skill other way.

### Dictionary.app and Google Translate (with Alfred) is my power

I'm using [Alfred](https://www.alfredapp.com/) (with PowerPack) on my MacBook.
It makes able to search words in Dictionary.app with `define` keyword.

<img width="567" alt="スクリーンショット 2019-12-16 20.43.37.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41896/d86d05b1-5639-7ec5-d9c3-cec684da9ef3.png">

As you know, Dictionary.app contains Japanese to English dictionary and English to Japanese dictionary.
I often use it to know English words correspond to Japanese words and to make sure English words whether I mean.

Also Alfred can open Google Translate with specified query using `translate` keyword.

<img width="1093" alt="スクリーンショット 2019-12-16 20.47.42.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41896/3e6d12b8-197f-fdb2-444c-c90e369c4d6d.png">

If I found English sentences I can't understand, I paste it into Alfred with `translate`.

These solve the problem of vocabulary.


### Steady improving

I wrote many issues, comments on pull requests and messages on chat.

To write issues, I search words to express specifications.
To review codes, I learned some idioms to say `it's good` and `Please fix it` softly.
Communicating via chat trained me to write English sentences immediately.

During 1 on 1, I listened hardly and speaking with dictionary and Google Translate.

I don't know what is good, but the junior engineer said to me "Kikuchi-san is good teacher".
Any other words for rewarding? I don't know.

### Her improving

Also she is improving.

She can understand describing functional specifications in Japanese, and also understanding concept of `Observable` (of Reactive Extensions) and `Stream` (of Dart).
As you know, concept of `Observable` is hard thing.

I hope she will be good engineer than me. (Maybe it's not so hard)


## Conclusion

I recommend to dive into the environment you have to communicate in English.
It's not comfortable but it's highway to improve your English skill.

By it, I can write English like this!



# 日本語

この記事は[Diverse Advent Calendar](https://qiita.com/advent-calendar/2019/diverse)17日目の記事です。

## はじめに

今年の個人的大ニュースの一つといえば [**インドから来たエンジニアさんが後輩になった**](https://www.wantedly.com/companies/diverse-inc/post_articles/199675) ということに尽きます。
加えてそのエンジニアさんは当時まだ日本語勉強中だったので、英語でコミュニケーションとる必要がありそうだとひしひしと感じていました（インドは英語が公用語の一つで、そのエンジニアさんも英語が上手）。

私は英語がてんで駄目なので、個人的にこれは大きな挑戦でした。そのエンジニアさんのためにも私個人のためにも、英語でコミュニケーションを取ることにしました。今も英語でコミュニケーションしようプロジェクトは継続中です。

この経験を通じて学んだこと、気づいたことを書き留めようと思います。

## 人間のスペック

* 日本の工学系の大学院を卒業して6年経ちました
* 身の回りに、英語でないとコミュニケーションとれない人、というのは今までいませんでした
* 海外のカンファレンスとか行って質問できず悔しい思いをしてきました
* 英語の成績はお察しください。優秀だったらこんなに困ってない

## はじめに考えていたハードル
### とにかく聞き取りがむずい

日本のエンジニアの皆様におかれましては、チュートリアル読んだりAPIリファレンス読んだり、なんだかその他諸々を読むので、英語を読むことは日常茶飯事だと思います。
しかし聞き取りはいかがでしょう。多分殆ど機会がないんじゃないかと思います。

未だに単語の聞き取りが上手くできません。

例えば `r`と`l`の音の違いを認識できず、文中の単語が訳わからなかったりします。


### ボキャ貧

単語を聞き取れない原因のもう一つが語彙不足です。
音からスペルを書き起こせないのに知らない単語を聞き取れるはずもありません。
加えて、親が毎日のように観ているアメリカの刑事ドラマのおかげで語彙が偏りつつあります。多分 `殺人` とか `事件` とか `特別捜査官` とかだったら聞き取れます。（余談ですが、ドラマのおかげで、 `I'm sorry` は謝罪だけでなく、お悔やみ申し上げるときにも使えるというのを知りました）

### 文化の違い

日本の英語教育では、言語としての英語だけでなく、言語の背景にある文化についても習うと思います。が、その文化というのは大抵アメリカの文化です。

当然、英語話者全員がアメリカ人ではないので、この文化観を前提に英語でコミュニケーションとって良いのか困ってしまいました。

## 活かせるだろうと思っていたこと
### プログラミングの語彙

この世の大抵のよく使われるプログラミング言語の文法は英語が元になっています。
それに、よく使われるライブラリやフレームワークも大抵英語のマニュアルがあります。

それのおかげで、 `変数` `引数` `関数` `if文` とかそういう言葉は知っているわけです。

それに、ソースコードは全世界共通語です！（数学における数式みたいなものですね）

これは最終手段として、ソースコードを書いて「これっぽく書いて！」という手が使える、ということです。
（乱暴な手段ですが、）手段があるというのは安心に繋がります。

### 海外旅行経験

昨年と今年で、アメリカ、台湾、タイ、フィリピンに旅行をしていました。
旅行中は英語や現地の言葉（場合によってはボディーランゲージで）コミュニケーションをとる必要がありました。

そこから私は、英語力が低くても、伝えようと思えば伝わるもんだ、という学びを得ていました。

## 2ヶ月後
### コミュニケーション以前の問題

「仕様」ってどうしてこんなに曖昧なんでしょう？

仕様を後輩エンジニアさんに英語で説明しようとして気づきました。
なんだかめちゃくちゃ曖昧な日本語で私達は会話していることに。
（私を含め）すべてのお仕事する人には、仕様はちゃんと具体的に書くか説明するかしていただきたい。
話はそれから。だって、曖昧なものを表現する語彙がないんですもの…

### やっぱり全部は聞き取れない

未だに単語を聞き分けるのは難しいままです。
がむしゃらなトレーニング(OJTってやつです)ではこのへんは上手く行かないのでしょう。他の勉強方法を模索する必要を感じています。


### 辞書.appとGoole翻訳こそパワー

私が使っているMacBookには[Alfred](https://www.alfredapp.com/)（PowerPack購入済み）を入れています。
これがあると `define` というキーワードで辞書.appを呼び出す事ができます。

<img width="567" alt="スクリーンショット 2019-12-16 20.43.37.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41896/d86d05b1-5639-7ec5-d9c3-cec684da9ef3.png">

ご存知の通り、辞書.appには和英辞書と英和辞書が入っています。
私はもっぱら日本語に対応する英単語を調べたり、英単語の意味が意図した通りかを確認するのに使っています。

Alfredを使うと `translate` キーワードでGoogle翻訳に任意のクエリをつけて開くことができます。

<img width="1093" alt="スクリーンショット 2019-12-16 20.47.42.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41896/3e6d12b8-197f-fdb2-444c-c90e369c4d6d.png">

意味を取れない英文に出会ったとき、`tranlsate`キーワードと一緒にAlfred に放り込んで使っています。


この２つのおかげで、語彙の問題はなんとかなっています。


### 着実な進歩

たくさんissueを起票したり、PRのコメントを書いたり、チャットでメッセージ書いたりしました。

Issueを書くために仕様の表現に使える言葉を検索したり、
レビューするために `いいね` と伝える慣用句とか `これ直して` とやさしく伝える慣用句を調べたりしました。
チャットでのやり取りが、すぐに英文が出てくる用になるトレーニングになりました。

1 on 1でも一生懸命聞いたり、辞書とGoogle翻訳首っ引きで発話したりしてました。

何が良かったのかはわかりませんが、「Kikuchiさんはいい先生です」と言ってもらえました。
これ以上に報われる言葉があるでしょうか？（いや無い）

### 後輩の進歩

後輩のエンジニアさんも成長しています。

機能仕様の説明を日本語で聞き取ったり、(Reactive Extensionsの) `Observable` とか(Dartの) `Stream`の概念を理解したりしています。
御存知の通り、 `Observable` は理解が難しいアレです。

この方が私を超えるようなエンジニアになるのを楽しみにしています。（そんなに難しくないと思いますが）

## 最後に

英語でコミュニケーションを取らないといけない環境に飛びこむの、おすすめです。
快適ではないですが、すごい速さで英語力が伸ばせます。

そのおかげで、私もこんなに英作文できるようになりました！！