この記事を書いた経緯
私は現在エンジニアスクールに通っています。
プロエンジニア講師に個別で補習をしてもらい、何週間も悩んだ機能がやっと実装できました。
動いたときの喜びが今でも忘れられません。
答えをすぐに教えるような教え方ではなかったため2時間かかりましたが、とても丁寧に実装まで導いてくださいました。
(気が早いですが)自分がいつか誰かに指導する立場になったとき、この記事を見返そうと思い、投稿させていただきます。
質問した人
- 自分のできる限りググりつくしている。
- 今回の質問は(Java)SpringSecurityについて。登録済のId,Passを入力してもloginできない状態だった。
事前準備
- コードをもらっておき、予め何が問題だったか予想しておく。
講師の教え方
1. 何がしたいのか、自分の言葉で全体のコード説明させる。
- 最後まで喋らせる。口を挟まない。
2. 何が問題だと思うのか、自分の言葉で説明させる。
- 何でそう思うのか根拠を聞く。
- デバック等で確認したか聞く。
- 気になるポイントがあれば、どんな意図でそうしたのか聞く。
3. 実際に動かしてみて、動かないことを一緒に見る。
- どこまで動いていると思うか聞く。
- デバックを一緒にしてみた上で、またどこまで動いていると思うかまた聞く。
4. どこまで値が渡させているか場所が判明したら、解決方法を探る。
- 質問者が解決する上で分かりずらいものを付けていたら一旦外す。(今回だと独自のlogin画面。一旦設定をデフォルトにしておく。)
- 必要なところまで値が届くように、細かくデバック&実行していく。
- エラー、例外が出たら何だと思うか読ませる。
- 自分で調べさせて、予想を言わせてから解説する。
- 調べさせても予想が出ない場合は、ヒントを出してみる。
5. あとは少しずつひも解いていく。
6. 4で外したコードを戻して、実装してみる。
7. 実装できたら「いえーい!」と一緒に喜んであげる。
8. 最後に「こうしてもいいよ」「こうしたらもっといいかも」を伝える。他に理解できなかったことはないか聞く。
まとめ
- 一緒に喜んであげる。
- 焦らせない、せかさない、ゆったりする。
- 「おしい」と言ってあげる。(全然見当違いじゃないと伝えると安心してもらえる)
- 自分の考えを言わせる、調べさせる、また考えを言わせる。
- 付属する知識も一緒に伝える。
最後に
今回私は悩んで調べまくってもできなかった機能が実装できて、本当に嬉しくて、またプログラミングの勉強を頑張ろうと思いました。
そう思ったのは、自分の力で実装までできるように丁寧に導いて下さったからだと思います。
実務で2時間丁寧に教えて頂けることはそうそうないと思います。
解決までのプロセスが学べるので、未経験、新人に一度だけでもいいので、こんな体験に付き合ってあげるのは良いのではないでしょうか。
因みにSpringSecurityでログインできなかった原因
- 独自のuserを作っていなかった。(作る意味が分かっていなかった)
- 独自のlogin.htmlがタイムリーフになっていなかったので、入力した値を渡せていなかった。
最後まで読んでいただきまして、ありがとうございました。