プログラミングスクール講師をやって気づいた初心者がつまずくポイント
2年間、プログラミングスクールで講師をやっている。受け持ったのは主にWebアプリ開発のコースで、HTML/CSSからJavaScript、最終的にはRailsやVueまで教えていた。数十人の受講生を見てきた中で、「つまずきポイント」にはかなりはっきりしたパターンがあることがわかってきた。
講師をやめた今でも、その経験は自分のコードの書き方や説明の仕方に影響している。初心者がどこで詰まるかを知っているエンジニアは、チームの中でも「教え方がうまい人」になりやすい。
1. エラーメッセージを読まない
初心者がエラーを見て最初にやることは「スクリーンショットを撮って質問する」か「ひたすらコードを書き直す」のどちらかが多い。エラーメッセージを読んで内容を理解しようとしない。
理由を聞くと「英語だから読まない」「どこを見ればいいかわからない」という答えが多かった。
これを解決するために私がやっていた教え方は「エラーメッセージの読み方を毎回実況する」こと。
「このエラーの最初の行を見てください。TypeError: Cannot read properties of undefined と書いてあります。これは何かundefinedなのにそのプロパティを読もうとしている、という意味です。次の行に at App.js:23 と書いてあります。23行目に問題があるということです。一緒に見に行きましょう」
この実況を繰り返すことで、受講生が自分でエラーを読む習慣が少しずつついていった。
2. 写経はできるが応用できない
コードをそのまま写す、いわゆる「写経」はできるが、課題で少し変えた要件が出ると手が止まる、というパターン。
例えば「ボタンをクリックしたらアラートを表示する」のコードは書けるが、「ボタンをクリックしたら背景色を変える」になると「わかりません」になる。
これは「コードの意味を理解せずに形を覚えている」状態で、ある意味では理解の深さの問題だ。私はこれに対して「なぜこのコードはこう動くのか」を必ず説明してから写経させるようにしていた。
また「少しだけ変えてみる」演習を挟むのが効果的だった。「背景色を赤から青に変えてください」「アラートのテキストを自分の名前にしてください」という微修正から始めると、コードを読む力がつきやすい。
3. 変数の概念がなかなか入らない
変数は「箱」と説明されることが多いが、この比喩が合わない人が一定数いる。
特に「変数を上書きする」場面で混乱が起きやすい。同じ変数名に別の値を入れると、前の値はどこに行ったのか、なぜそれで良いのか、という疑問が出てくる。
あるときプログラミング経験がまったくない受講生に「コンビニのPOSレジで商品をスキャンするイメージ」で説明したらすっと入った。スキャンするたびに「金額」という変数が更新されて、最終的な合計が表示される。変数が更新されるのは当然の動作だと納得してもらえた。
人によって刺さる比喩が違うので、複数の説明パターンを持っておくのが講師として大事なスキルだと学んだ。
4. 何がわからないかがわからない
「わからないことを質問する」という行為自体が難しい、という問題がある。何がわからないかを言語化できないから質問できない。
この状態のとき、「何がわかりませんか?」と聞いても答えが出てこない。
効果的だったアプローチは「手を動かしながら話してもらう」こと。「今何をしようとしていますか」「次にどのコードを書こうとしていますか」「その結果どうなると思っていますか」と質問しながら、受講生自身に状況を言語化させる。すると「あ、そこが違うんですね」という気づきが本人から生まれることが多かった。
5. 検索の仕方がわからない
「Googleで調べてみてください」と言っても、検索ワードの選び方がわからなくて、的外れな結果しか出てこない、という問題が初期段階でよく起きた。
「JavaScriptで文字を赤くしたい」と検索しても欲しい答えには辿り着きにくい。「JavaScript font color CSS」「element style change javascript」のように英語で技術的なキーワードを使うことを教えると、情報の質が変わってくる。
検索力はプログラミングの技術と同じくらい大事なスキルで、これを早い段階で教えることで自走できる受講生になるまでの速度が明確に変わった。
6. 完成しないと「できた」と言えないと思っている
「80%完成しているけど1か所バグがある」状態のとき、受講生はそのバグを直すことに全力を注いで、完成したと言えないまま何時間も止まっていることがある。
これは「完成させないといけない」という思い込みと「バグがある = 失敗」という認知の歪みが組み合わさっている。
講師として「途中の状態を共有する習慣」を作ることが大事だと気づいた。「とりあえずここまでできたんですが」と共有してもらうことで、方向性のずれを早期に修正できるし、受講生にとっても「進捗を見せていい」という安心感になる。
まとめ
2年間の講師経験で気づいた初心者がつまずくポイントをまとめると:
- エラーメッセージを読む習慣がない
- 写経はできるが応用できない(意味の理解が浅い)
- 変数の概念でつまずく(比喩を複数持つことが大事)
- 何がわからないかを言語化できない
- 検索の仕方を知らない
- 完成させることへの強い固執
どのつまずきにも共通するのは「一人で詰まり続けない環境を作ること」と「理解を確認しながら進むこと」だ。これはチームでジュニアエンジニアと一緒に働くときにも同じことが言える。