エンジニア研修のメンターとして必要な要素（だと思った）4+1選

# はじめに
株式会社LITALICOでエンジニアをしています@yknoguchiです。この記事は[『LITALICO Advent Calendar 2021』](https://qiita.com/advent-calendar/2021/litalico)10日目の記事の1本目です。

ついでに僕の誕生日です。さらにさらに1年後輩の@shinekobeくんの誕生日らしいです！おめでたい日！！[彼の記事](https://qiita.com/shinekobe/items/9536ebce03363c4ecc80)は2日目に上がっていますので是非ご覧ください。

また、今日[２本目](https://qiita.com/yknoguchi/private/d344154c58065b60cbee)も投稿しております。こちらはMac標準搭載アプリであるAutomatorを使った作業時間短縮の内容になっています。こちらも是非よろしくお願いします。

さてこの記事は、僕が新卒2年目にして新卒エンジニア研修のメンターを行った際に「これはメンターとして必要だったな」と感じたポイントをまとめ、1年前の研修の準備をしていた自分に当てた内容になっています。「これさえあればメンターとして完璧！」となることを保証する物ではありませんが、いずれも備えておけば研修がより良く進められるヒントにはなるかと思います。

これからメンターをやる予定の方々に、1つでも参考になれば幸いです！

## この記事の対象読者
- 今後エンジニア研修のメンターをやる方々

（メンターでなくても、新卒エンジニアがジョインしてくるチームの人たちが読んでも参考になる部分はあるかと思います。）

# 今年のLITALICOの新卒エンジニア研修について
内容に入る前に、今年のLITALICOの新卒エンジニア研修について少しだけ紹介いたします。（エンジニア研修の内容は今後変わる可能性があります。）

LITALICOでは、4月にエンジニアとして加入した新卒社員は初めにエンジニア研修を受けていただきます。期間は4月から7月卒業の約3ヶ月間（進み具合によって多少前後します。）

研修期間中は与えられたチェックリストに従って自分で勉強を進め、週2回あるレビューの時間で勉強した内容の定着チェックや実装したコードのレビューを行います。（具体的な内容は毎年変更しますが、例えば「git resetができる」「クラス継承を用いてコードを実装できる」などがあります。）初めはエンジニアとして基本的な内容から扱いますが、最終的には1つの簡単なWebアプリを自作できるところまで扱います。

LITALICOの新卒エンジニア研修の面白いところは、メンターが扱う内容について1から教えるということをせず、基本的に研修生自身が自分で学習を進めていくという点にあります。

メンターは週2のレビューの時間で、研修生が学習した内容が正しく理解できているのかを確認し、それに対してのフィードバックを行います。フィードバックの内容は「もっとこうやったらいいよ」といった学習方法についてや、「ここは実はこうなっているんだよ」といったさらに内容を深めていくようなものもあります。

そのため、研修生はただ受動的に教わるのではなく、自主的に能動的に学習ができる力が養われます。

僕は去年この研修を受けました。それまではずっとPythonで画像処理をやっている人間でしたが、この研修のおかげでWebアプリに対する理解と実装する自信、自分で学習を進めていく自信がつき、スムーズに業務に移行できたことを覚えています。

そして今年は僕がその研修のメンターをやることになったということなのです。

# メンターとして必要な項目4選
## 1．扱う内容の知識
当たり前ですが、扱う内容の知識は必要です。しかしここで重要なのは、**扱う内容よりも数段深い内容の知識**が必要です。

### なぜ必要なのか
何かを人に教えるときに教える内容よりも深い理解があると、話す内容の説得力が増します。例えば数学で三平方の定理を教える時に、その公式だけでなくその公式の成り立ちまで知っていると、説明するときにより具体性が出てきます。メンターがフィードバックを行うときも同様です。その内容に対してより深い知識があると、研修生の成長にさらに寄り添った観点からフィードバックができるようになります。

また、研修生は予想以上に意外なところから質問をしてきます。「なぜここはこんな挙動なのですか？」「なぜここはこうしなければいけないのですか？」このような質問が来た時に、扱う内容までの理解しかない場合答えることができなくなります。答えられなくなる事態を回避するためにもより深い知識が必要なのです。

### これがないとどうなるのか
研修生にフィードバックや質問への回答をする際に、「このフィードバックでいいのかな」「この答えで正しいかな」と自信がなくなってしまいます。くよくよ考えてしまうとフィードバックをするタイミングを逃してしまったり、本当は言うべきことが言えなくなってしまったりと研修に悪影響を及ぼします。
そもそも先輩から自信なさげに言われたことは、アドバイスとして素直に聞き入れることは難しいです。

### この項目を手に入れるためにできること
扱う内容で自分が持っている知識に対して、もう一段深めて事前に学習を行いましょう。

その時に、「なぜこれはこうなっているのか？」「なんでこれをする必要があるのか？」といった_問いかけを常に行いながら_進めていくとやるやすくなります。

## 2．扱う内容に対する根拠
研修で身につけてほしい項目を作成した際に、**「なぜこの項目を学ぶ必要があるのか」の根拠**が必要です。

### なぜ必要なのか
研修で扱う内容に根拠があると、研修内容に一貫性が出てきます。そもそも研修で扱う内容に根拠を持たせようとすると、

最終的には研修でこの力を身につけてほしい
→だったらこの項目の内容が必要だ


と言う順番で研修の内容を考えるようになります。

このように一貫性を持って作られた研修の内容は研修生に、**「自分は研修を通してこの力を身につけるために、今この学習を進めているんだ！」**といった学習に対する意味づけとなり、研修に取り組むための意欲となります。

### これがないとどうなるのか
その内容を研修で扱う理由が「業務で扱うから」の一択になってしまいます。

これの悪いところは、**「業務で使うから」と言う理由は根拠に見えるようで、実はその項目を学習するための正しい説明になっていない**ところです。

そもそも研修として扱う内容ならば、業務で使うということは分かりきっています。ポケモンのチュートリアルをやっているのにカービィの説明はありませんよね。ポケモンのチュートリアルの内容がポケモンの内容なのは大前提です。

そしてポケモンのチュートリアルに「ポケモンの捕まえ方」があるのは、ポケモンの大目標が「図鑑の完成」であり、そのためにはポケモンを捕まえる必要があるからです。それと同様に、研修で扱う項目にも根拠がないと、例えそれが業務で使うものだったとしても「なんのために勉強しているんだろう」と思わせてしまう原因となってしまいます。

### この項目を手に入れるためにできること
**研修で扱う内容ひとつひとつに、なぜその内容を扱う必要があるのかを定義**していきましょう。その際も、例えば「git resetは難しいから」などではなく、「git resetは間違えた時の修正が難しいので研修の期間で正しい知識を身につけてほしいから」といった、具体的で納得感のある根拠が好ましいです。

根拠を考える際には、「なぜその内容が必要なのか」「その内容がなかったらどんな悪いことがあるのか」といった観点から考えると考えがまとまりやすいです。

## 3．分からないことは分からないという素直な心
いくらメンターでも質問された内容が分からない可能性もあります。その時は**分からないことを隠さずに、分からないことは分からないと伝えられる**ようにしましょう。

### なぜ必要なのか
（「これがないとどうなるのか」と内容がかぶるので項目をマージ）

分からないところを分からないと言えなくなると、不正確なフィードバックを返してしまうことになります。

これは僕が実際にやってしまった悪い例なのですが、研修生から受けた質問が分からなかった時に分からないと言えず、自分のその時の推理をそのまま正解のように回答してしまったことがありました。しかもそれは正確な内容ではありませんでした。

自分はそんなことしないだろうと思っていても、メンターだから研修生よりも凄そうに見せなきゃという変なプレッシャーから、気がついたらそのような行動をとってしまう可能性があります。

**適当な憶測で分からないことを答えて後からその間違いに気づいて研修生からの信頼を失うよりも、分からないことは分からないと言って一緒に調べるなどして正しい回答をした方が、行動に責任が伴い、かつ研修生に間違った知識を与えずに済みます。**

また、分からなかったことを一緒に調べることで、その調べ方を教えることにも繋がるので、研修生のためにもなります。

変に格好をつけることに何もいいことはないのです。

### この項目を手に入れるためにできること
変に格好をつけないことです。素直な心を持ちましょう。

また、自分の憶測で答えそうになった時は、**その行動が本当に研修生のためになっているのかを自問する**ことで回避できます。

## 4．研修生の現状を把握するためのコミュニケーション
研修生と頻繁にコミュニケーションをとり、研修生の現在の様子を**根拠を持って**正確に把握できるようにしましょう。

### なぜ必要なのか
研修生の状況（つまづいているところや悩んでいるところ）は常に変わっていきます。その様子を知る方法は積極的にコミュニケーションをとることが一番です。

**フィードバックは処方箋のようなもので、フィードバックを適切に行うためには、問題となっている原因を正しく理解していないといけません。**一見くしゃみをしているように見えても、それが風邪なのか花粉症なのかで処方すべき薬は変わってきます。これと同じように、研修生が語句の説明ができていない時も、考えられる原因は以下のようにたくさんあります。

- その内容の理解に必要な前提知識がない
- その内容を説明している書籍の読み方がわかっていない
- 集中して学習に取り組めていない
- レビューの時に緊張して思った通りに話せていない

などなど、、、。

例えばレビューで緊張していて勉強した内容が上手く話せないことが原因であるのに、いくら本の読み方のフィードバックをしていても意味はありません。正しい原因を知る必要があります。

そして正しい原因を知るためにはコミュニケーションが大切です。確かに研修生の様子からある程度原因を推測することはできそうですが、その道のエキスパートではない限り難易度はかなり高いです。必要なのは、「今ここで詰まっているけど、原因はなんだろう？」と研修生とコミュニケーションをとることです。もしくはその時の様子を聞いて一緒に原因を探していくことです。それが原因を知る一歩となります。

### これがないとどうなるのか
コミュニケーションを取らずに研修生の状況を推測しようとすると、おおよそ間違えます。

「自分の時はこんな感じで引っかかってたから研修生もきっとこうだろう」などと考えるともっと間違えます。他人は他人です。自分じゃありません。
**その人としっかり向き合ってコミュニケーションをとり、状況の把握をするように努めてください。**

上でも述べていますが、状況を正確に把握できていないと、間違ったフィードバックをすることになります。そうなると、「この人はいいフィードバックをくれない」「勝手に自分のことをわかった気になっている」と、メンターとしての信頼も失うことにつながります。

信頼を失うと、その後にいいフィードバックをしてもその言葉の信頼性は下がったままで受け入れられなくなります。

### この項目を手に入れるためにできること
この子のことは僕はちゃんと理解できている、という変な自信を捨てることが必要です。

また、**研修生の状況をまとめるときに、根拠を持ってまとめるように心がけましょう。**「きっとこうだろう」という状況のまとめ方はしてはいけません。そして、できれば研修生自身に「こんな状況だと思うけど正しい？」といった確認が取るようにしましょう。

## おわりに
さて、これまで偉そうに「メンターとして必要な項目4選」をまとめてきましたが、ここで第5の項目を紹介します。

それは**「自分ができていないことも棚に上げてフィードバックをする」**ということです。

誰しも完璧ではありません。できないことはたくさんあります。だからと言って自分ができないことをフィードバックしてはいけない、となったら言うべきことも言えなくなってしまいます。

そして僕もメンターとしてこの内容が完璧にできたわけではありません。僕がメンターとしてなんとか新卒研修が最後までできたのも、メンターとしてのやり方をフィードバックしていただいたシニアメンターの方々のおかげです。また、大勢の方に支えられてメンターとしてやり遂げることができました。

本当にありがとうございました！

はじめの方にも書きましたが、この記事がこれからエンジニア研修のメンターをやる人たちの目に触れ、そして少しでも助けになれば幸いです。

次回はそんな今年のエンジニア研修を実際に受けた後輩の@bashikoさんの記事になります！
是非！！お楽しみに！！