実は少し前から未経験の方の家庭教師をしていました
こんにちは。Nonです。
今回は10月くらいから始めていたプログラミングの家庭教師についてお話しようと思います。
ハマりがちなところ?
配列と連想配列
以外と思うかもしれませんが、配列がわかっても連想配列がわからないことが多いです。
それに絡んでループなど入ってくると、さらにわからなくなるようです。
個人的には、ループと箱の関係はわかりやすくて参照やポインタなどのほうがよっぽどわかりにくいと思うのですが、なんででしょうかね?
数人持って数人ともそうだったので、僕の教え方の問題かもしれません。もう少し掘り下げる必要があるかと思います。
物事の考え方、論理的思考
これは個人で大きく違うと思いました。
できる人は言わずとも(プログラミングは完璧でなくても)完璧に近い構造で課題をこなします。
これが苦手な人は、プログラミングができていても構造がおかしい、みたいな課題を提出してきます。
気づいたのはユースケースを思い浮かべているかどうかだと感じました。
例えば、ただ商品の合計金額を算出する問題でも、現実では明細や小計、税額など色々な数字が登場し、その結果、合計が算出されると思います。
レシートなど見てもそうですよね。
これを頭で想像しながら組んだプログラムと、ただ合計金額を算出するだけのプログラムとでは、構造が天と地ほど違いました。
- 前者で組んだ生徒さんは一つ一つの計算と商品の小計を出す処理が独立していて、それらを全て加算した結果が合計という構造。
- 後者で組んでしまった生徒さんはひたすら四則演算で頑張ってしまったという構造
今では後者の生徒も構造化を理解できているので、問題ありませんが、学校を卒業した今でも、パッと思いつける人はいないように感じました。
やっぱりプログラミングに対するスタイルというかタイプは存在する
- デザイン重視
- 機能重視
今の所出会った生徒はこの2つのタイプが多かったです。
HTMLやCSSなどフロントが向いてるとか(今回で言えば)PHPなど裏の機能に向いてるとか言う話では無く、モチベーションがどう上がるかという話
どちらの生徒も、やはり定期的にプログラミングをやっていると飽きが来てしまうのですが、そのモチベを回復すべく結構工夫しました。
その試行錯誤の結果、わかったことです。
- フロント、いわゆる見た目をきれいに整える(機能はまだ無い)手伝いをしてあげて、きれいな画面を見せるとモチベーションが上がる人
- バック、いわゆる実際に動くよう(デザインはまだ無い)手伝いをしてあげて、機能を見せるとモチベーションが上がる人
がいました。もしかしたらプログラミングに対する考えというか、求めるものが結構違うのではと思うきっかけになりました。
アプリを作りたいと言うのは便利なアプリを作りたいのか、美しいアプリを作りたいのかとかいう話になりそうです。(自分でもまだ噛み砕いていない)
コツ
やっぱり先生から熱意を見せることは大事だと思いました。
僕は何かを伝えるとき、結構声に抑揚がついたり、声が大きくなったりします。僕的には(起怒っている風に見えないかな?)とか思っているのですが、以外とそうでもなく、「おとなしい人でも」しっかり聞いて頑張ろうとしていることがわかりました。
できるだけ自由に
最初は冒頭に言ったような課題を用意していたのですが、モチベーションが下がっていくのは目に見えてわかりましたので、自由な課題を用意して、アドバイスを出していくようにしたらうまくいくようになりました。
最後に
今回は未経験の方にプログラミングを教えるときのコツのようなものに関して書いてみましたが、僕も初めて半年くらいなものですので、当てにならないかもしれません。
皆さんの力になれれば嬉しいです。
また更新するかもしれません。
その時はよしなに
.