初心者をメンターするときに覚えておきたい「忘れかけた初心者の頃の気持ち」と教訓12選


# はじめに
会社でインターン生を受け入れることがあり、そこで僕がメンターとして関わる機会がありました。インターン生や新卒のメンターみたいなことはちゃんとやったことがなかったのですが、インターン生とのやりとりの中で「あー自分もエンジニアになりたての頃はわからなかったなー」ということや「あ、そういえば○○とだけ伝えても何のことかわからないよなー」と実感することがありました。あとはこのときにああ言うとウザいだろうなーとか笑

**そう、これが忘れかけていたあの頃の気持ちです。**

メンターする側はメンティである初心者の気持ちを理解していると、初心者の目線に立ったアドバイスやフォローができて、初心者の成長をより促進できると思います。だからこそメンターとなる人は「忘れかけた初心者の頃の気持ち」をたまには呼び起こす必要があるんじゃないでしょうか。

メンタリングを成功させる手法とかはいろいろあると思いますが、実際にメンターしてみて感じたこともすごく大切だと思いますし、今後またメンターとか更にマネージメントとかやる機会が訪れたときの参考になるかもしれないのでまとめておこうと思います。

# メンターとメンティについて
たまたま見つけたこちらの記事がとてもわかりやすくて良かったです。
[新入社員が来てメンターになれって言われたけど、どうすればいいのかという対話テクニック](http://qiita.com/hirokidaichi/items/2e8e731acfd7b6c7e02f)

# 「忘れかけた初心者の頃の気持ち」と教訓
それではここからまとめてみます。小見出しはメンターしたときに感じたことと自分が初心者の頃を思い出して初心者の気持ちを想像してみました。

## 初心者の声1.「ヤバイ、仕事渡されたけど結局何したらエエんや？わからんへん(;´д｀)ﾄﾎﾎ…」
**【教訓】ゴールを明確にし、実現方法をフォローし、実装は任せましょう。**

ある程度開発の流れがつかめてくると、次に渡す仕事では概要だけ伝えてあとはよろしく！という感じになってきたりします。相手がそれだけで自走できる状態であれば良いのですが、自走できる状態でなければ「結局何をしたら良いのだろう？」「どうやって作ったら良いのだろう？」という感じで困っていたりします。そのまま放置するとメンティにとってもメンターにとっても良い状況にはならないはずです。ただ単に内容を伝えるだけではなく、以下のような手順で進めるのはいかがでしょう？

1. **ゴールを明確にする**
 最初の仕事の概要の伝え方にもよるのですが、最終的にどういう成果物を出せば良いのかがイメージできていないことがあります。図などを使って細かく説明したり、認識を合わせておくことで後々作り直しや手戻りが発生しないで済みますし、メンターもメンティも無駄にストレスを貯めることなく進められるでしょう。

2. **実現方法をフォローする**
 ゴールを明確にしたら、それを実現する方法がイメージできるかどうか確認すると良いでしょう。イメージできればそのイメージを聞いて必要があればフォローすれば良いし、イメージできていない場合はどう実装していくのかをフォローしていくと良いでしょう。

3. **実装は任せる**
 ゴールと実現方法が確認できたら後は実装するだけなので、ここからは任せてしまいましょう。

という感じで、とにかく手段はどうあれゴールや実現方法の中で不明瞭でフワフワしている箇所をなくしてあげることにより、成果物のズレが小さくなって良いと思います。

## 初心者の声2.「てか、それそんな一気に言われても頭入らへんて(つд⊂)ｺﾞｼｺﾞｼ」
**【教訓】教えることにメリハリを付け、メンティのスキルレベルに合わせて段階的に教えましょう。**

何かを教えるときにメンティがわかってなさそうなことを一気に全て教えたり、自分の教えられる全ての情報を教えたところでメンティが全てを飲み込めなかったら意味がありません。「今の段階では○○（技術用語）はスルーで良いや」「これは今教えておかないと後々困るな」という感じでメンティのレベルや顔色、反応を見ながら判断しましょう。

## 初心者の声3.「これって何でこうなるの？┐(´д｀)┌ﾔﾚﾔﾚ」
**【教訓】なぜこうなるのか、仕組みや考え方を教えましょう。**

「このときはこのコマンドを実行する」だったり「このときはほげほげすれば良い」という感じで起きている問題に対する解決方法だけ教えるのではなく、そのコマンドの内部では何が起きているのか、なぜほげほげすると解決するのか、そういった仕組みや考え方を（必要な場合は）教えましょう。どこまで教えるべきかバランスが難しいところでもありますが、なぜこうなるのかを教える必要があるところは適宜教えていかないとメンティが全く成長しません。

## 初心者の声4.「ここは良い感じにしておいて！って言われても…良い感じってどんな感じやねん！( ﾟдﾟ)ﾎﾟｶｰﾝ」
**【教訓】初心者に「良い感じ」という便利ワードは控えましょう。**

いろんな開発を経験していくと次第に「このときはこうする」という感じで問題と解決方法がセットになって身に付いていきます。初心者にはその積み重ねがないので基本的に通じません。「良い感じ」と雑に投げないでしっかりアウトプットのイメージや詳細を説明しましょう。

## 初心者の声5.「○○（技術用語）って言ってたけど何のことや？知ってる前提で話されてもわからへん…つらい(´・ω・｀)ｼｮﾎﾞｰﾝ」
**【教訓】自分の中での技術的な当たり前は相手にとっての当たり前ではない。**

文字にするとすごく当たり前のように感じますが、実際メンティとやりとりしている最中は意識していないと自分の当たり前が相手にとっても当たり前のこととして話を進めてしまったりしてしまいます。メンティの目線に立って、メンティの顔色や反応を見つつ、難しい用語を控えたり、わかってなさそうな用語が出てきたら簡単な言葉で説明したりすると良いでしょう。

## 初心者の声6.「こんなんもわからへんの？的な態度をとられてもなぁ(*´･ω･)(･ω･｀*)ﾈｰ」
**【教訓】経験を積んでる人間がいろいろ知っているのは当たり前で、それを使って相手を貶めるような態度をとるのはやめましょう。**

冗談なら許せますが、リアルに嫌味で言われると一気にやる気が失せますよね。初心者相手でなくても無意識のうちにやってる可能性もあるので、気を付けたいこところです。

## 初心者の声7.「エラーの追い方…全然わからへんm9(^Д^)ﾌﾟｷﾞｬｰ」
**【教訓】トラブルシューティングの方法は喜んで教えましょう、教えましょう。**

基本的に初心者はトラブルシューティングできません。良くあるのが「エラーログ読んでも何を言ってるのかわからない」「どこを直せば良いのかわからない」であったり、「そもそもエラーログを読まない」というのもあったりします（自分もそうでした）。例えば簡単な例ですが```undefined local variable or method `hoge' for ...```というエラーが出ていたなら、「```hoge```っていう変数が定義されていないよねー、だからこのアクションに```hoge```が定義されているか見てみよう」というふうに何が起きているのかしっかりフォローすると良いでしょう。

## 初心者の声8.「グ、ググり方がわからへん(´；ω；｀)ﾌﾞﾜｯ」
**【教訓】どういうワードで検索したら良いのかわからない、というケースは割りとありがちなのでフォローしましょう。**

良い例えが出てこないのですが、どうやって調べたら良いのかわからないことって結構ありますよね。初心者かどうかに関わらず自分が詳しくない領域のことを調べるときは結構ありがちです。「こういうワードで調べたら良いよー」という感じでフォローすると良いでしょう。

## 初心者の声9.「この人（メンターのひと）すげぇ焦らせてくるやん(;ﾟ∀ﾟ)=3ﾊｧﾊｧ」
**【教訓】無駄に焦らさない、時間があるときはたくさん時間をあげてやらせてみましょう。**

特に初心者の場合は変に焦らせるとミスに繋がったり、間に合わせようとして雑に終わらせたりと、あまり良い結果は出ないです。初心者は技術の引き出しも少なく、このときはこうするという瞬発力もないので、焦らせたところでスピードが上がる訳でもないです。「できたところまでで良いからやってみよう」や「ここの実装は時間使っても良いから考えてやってみよう」という感じでメンティ自身が考えてアウトプットを出せる機会を多く与えてあげると成長にも繋がるので良いでしょう。

## 初心者の声10.「え？！あ、はい…じゃあお願いします( ｀・∀・´)ﾉﾖﾛｼｸ」
**【教訓】「自分でやった方が早い病」に陥らないようにしましょう。**

OJTとかでやっててメンティにとっては難しい仕事だった場合、メンティから質問攻めにあうことがあります。このときに「あ、自分がやった方が早いわ」となってお願いした仕事を取り上げてしまうと、メンティは成長できないし誰のためにもなりません。メンター側からしたらメンターである自分の時間を消費してほんとにやるべき仕事に使える時間を削っているだけです。ここはメンティの成長に繋がるようにフォローなりアドバイスなりするべきだし、もしかしたら「自分の教え方が良くないんじゃないか？」「もっと違うアドバイスをした方が良いのかも！」と自分自身の振る舞いにも目を向けてみましょう。

## 初心者の声11.「この人（メンターのこと）全部教えてくれるなあ…楽勝やん(ΦωΦ)ﾌﾌﾌ…」
**【教訓】何でもかんでも根掘り葉掘り教えるのではなく、適度に考えさせるターンを作りましょう。**

質問されたときに最初の頃はすぐに教えてあげて良いと思いますが、徐々に慣れてきたら教えることに変化を持たせた方が良いでしょう。あまり具体的ではないですが、

- 少し考えたらわかりそうなことはヒントだけあげて後は考えさせる
- 大枠や概要だけ伝えて、細部はどうするか考えさせる
- 前教えたことであれば「○○のときにやったことだからちょっと考えてみて」という感じで解決のきっかけを与えて考えさせる

メンティに自分ごととして考えてもらい、過剰なフォローやアドバイスはメンティの成長の妨げになるので控えるように気を付けた方が良いでしょう。

## 初心者の声12.「（補足あり）またエディタ批判されたわc(`Д´と⌒ｃ)つ彡 ﾔﾀﾞﾔﾀﾞ」
**【教訓】エディタやPC環境のことであまりごちゃごちゃ言いすぎないようにｗ**

これは自分が初心者の頃嫌でした笑「放っといてくれー、好きなようにさせてくれー」と思ってました笑（今思ったら嫌味のように言われたからかなーと思ったり思わなかったり）

（補足）とはいえエディタの設定が糞だと大きなシステム開発では生産性を落とします。例えばタグジャンプが設定されていないといちいち「この関数どこで定義されてたっけなー？」と考え込んだり全文検索したりしないといけないので時間の無駄です。あんまり嫌味にならないように「生産性落ちるからこういう設定入れた方が良いよー」とか、何か建設的な方法で伝えてあげた方が良いよなーと思います。

# さいごに
ちょっとネタっぽくなりましたが、割りとあるあるで当たり前なことがほとんどだと思います。でも思うんですよね、割りと雑な人は適当にメンターして誰も幸せにならないっていうパターンがあると。もちろん自分もまだまだですが、メンターしててこんなことぼんやり考えて、あー普段の業務してると全く考えない新鮮な気持ちだなーと思ったので、こんな形でアウトプットしてみました（他に何かあったら追記するかもです）。