【中学３年生が教える】子供にプログラミングを教えるときの５つのコツ

# 【中学３年生が教える】子供にプログラミングを教えるときの5つのコツ

## 初めに
みなさんどうもこんにちは、Dingoです。
今回は中学３年生で、プログラミングを独学で8年間勉強してきた僕が、子供視点で皆さんにプログラミングを教えるときのコツを伝えたいと思います。
この記事を書くきっかけになったのは、父の教え方でした。
私の父はソフトウェアエンジニアで、僕にいろいろ教えようと常に頑張ってくれているのですが、教え方が少し下手なせいで説明が凄く分かりにくくなっていたりして全く話に僕がついていけなませんでした。そしてついこないだ自分の経験を思い返してみて、きっと自分がここを変えればお父さんの説明がより楽しく、分かりやすくなっていたいんだろうなあと思ったポイントがいくつもあったことに気づきました。これらのポイントを紙にまとめながら、きっとこういうことで苦戦している人はお父さん以外にもいるに違いない！と思ったのでこの記事を書くことにしました。
実例が結構この記事にはあるので、子供の立場に少しなりやすくなっているということを気に留めて読んでください。
また全部のコツを使わなくても3個以上使えば十分だと思います。
それじゃあレッツゴー:sunglasses:

## コツ#1　子供になるべく触らせる　（多少放っておく）
まず一つ目のコツなんですが、こちらは「子供になるべく触らせる」ということです。この点は、子供のピアノの教師のレッスンなんかを見ればわかると思いますが、子供は大人と違って聞いただけでやらなきゃいけない事が分かるわけではありません。大人だとある程度説明を聞いても分かりますが、子供の場合後半はじれったくて聞いてない場合がほとんどです。なのでScratchなどの説明をするときは必ず子供に何かしら動かさせてください。僕はボタンを押して何が起こるのかを見るのが好きなタイプの人間ですが、大体の子供もそうです。ある程度何をやるか子供が分かったら、後は放っておきましょう。子供として一番学べるのは、誰かに言われてやったことから学んだ時ではなく、自分からやったことで学んだ時です。数学の教科書でなぜドリル並みに練習問題があるのか？という問いに対しての答えの一つがこれだと僕は思っています。
**大事なのはこどもが自分で学んで、子供の脳みその中に情報がインプットされることです。**
子供が相槌を打ったからという理由だけで子供が話の内容を理解したとは限りません。
これは実例なんですが、昔お父さんがPythonを教えようとしたとき一時間ぐらい話を聞いて、その後コードがPrint("Hello World")しか書けなくて、「おまえはちゃんと話聞いてたのか？」と怒られたことがあります。
この**放っておかないしない**というミスにはさまざまな種類があります。例えば大人がずっと話をするのはもちろん、大人がずっとパソコンの主導権を握るのもそれです。実際にこの一時間、ずっとお父さんがパソコンの主導権を握って話をしていたので、僕からしたらすこし練習させてくれって感じでした。
**話をするな**と言いたいわけではありませんが、話はなるべく最小限にしたらいいと思います。
親として子供に教えたい気持ちはわかりますが、たまには子供のやり方でやらせてあげて下さい。

## コツ#2　プログラミング本を活用
先ほど話すことを減らすことについて触れましたが、僕は教えるときは大量に話すのではなく本を買ってそれを子供が読んで学ぶ形のほうがいいように感じました。ここで僕の経験をまた話したいと思います。
僕が中学１年生だったころ、妹が奮発して僕の誕生日にこちらの本を購入してくれました。
![81O50g96bwL._SL1500_.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2850578/dbc6f4b5-7939-35b6-6744-1ed64cb7b33e.jpeg)

[スッキリ分かるJava入門](https://www.amazon.co.jp/%E3%82%B9%E3%83%83%E3%82%AD%E3%83%AA%E3%82%8F%E3%81%8B%E3%82%8BJava%E5%85%A5%E9%96%80-%E7%AC%AC3%E7%89%88-%E3%82%B9%E3%83%83%E3%82%AD%E3%83%AA%E3%82%B7%E3%83%AA%E3%83%BC%E3%82%BA-%E4%B8%AD%E5%B1%B1%E6%B8%85%E5%96%AC/dp/4295007803)
3000円の物凄く分厚い本です。もらった３か月後に僕はJavaで本格的なプログラミングのコンセプト（オブジェクト指向等）についてこの本で学びました。そして２か月ほどかけ、本の内容をマスターするまでに至りました。僕自身、まさかこの本の内容をすべてマスターするとは思っていませんでした。この出来事を分析して気づいたのは、口で教えられたり、Youtubeの動画を見たりするより、実際にプログラムを**紙**で読んで、パソコンに書いたほうが頭に入るということです。これは多分子供だけじゃなくて大人もそうだと思います。
話に戻ると、お子さんのレベルに合わせた本を購入してお子さんの本棚に一冊、または２冊加えてあげるだけで、お子さんが将来プログラミングを学べるかどうかの確率は変わってくると思います。僕の意見を言うと、こういう本はいわば**料理本**です。この本を読んだほかの人については分かりませんが、とりあえず僕は、**レシピブック** のような使い方をしていました。この本で読んだことを実践に移すというよりは、実践で必要な知識を本に移すといった感じです。こういう使い方をすることで、僕はScratchを卒業することができました。
なのでこんな感じの本が１冊あるだけで、プログラミングを学ぶ速さが劇的に早くなります。もちろん、本の内容や、お子さんの興味のあるトピックについてかどうかで効果は異なりますが、一冊あるだけで子供としてのモチベーションが変わってきます。実際にあきらめることが多い僕は本のプロジェクトは沢山完成させています。正直な話、僕がここまでプログラミングを続けられているのはこの本と、もう一冊の図書館から借りてきたScratchの本のおかげだと思っています。
また今度本のお勧めリストを書いた記事を投稿するつもりなので、良ければそちらもできたら見てみてください。

## コツ#3　子供に作ったものを見せてもらう
3つ目のコツは「子供に作ったものを見せてもらう」です。正直これは多くの人が言っていることそのままなのですが、8年のプログラミング歴を振り返ってみると、本当だなと思いました。
とりあえず、子供が何か作ったものを見せてくれる時は電話中とかじゃない限り、見てあげてください。見てあげることで子供としてはモチベーションが超アップします。僕は実際に僕の母が見てくれた後、もっとすごいの作ろう！と思った事が沢山あります。
**:bangbang:ただし注意ポイントですが、アドバイスは１つまでにしてください。**
僕もそうだったんですが、アドバイスと分かっていても2つ以上言われると悲しい気持ちになりました。アドバイスの言い方にもよりますが、以下に書いてある悪い例のような挙げ方をされると、見せている側からしたら、全面非難されている感じで、多くの人はここで見せるのをやめてしまうと思います。
なのでアドバイスのあげ方もなるべく上手に言ったほうがいいです。例えばただ　**「弾幕が速すぎるから遅くしたら？」**　と言うよりも僕的には、**弾幕が速くてパパよけられないから、パパがクリアできるようにちょっと遅くしてくれる？**　のほうがいいです。
最初の答え方でも大丈夫といわればOkですが、結構キツめです。
一番大切なのは、とりあえず子供になにか完成させて見せてもらうことです。完成度が高くても、低くてもとりあえず見て何かいいところを言うということが重要です。
子供が見せに来ない場合は、親側から子供に聞いてみましょう。無理に聞かなくても、夕食中に今日は何を作ったのか？ということや、どんなものを作る予定なのか？を聞いたりすることで自然に見せに来てくれるようになります。
この際一番覚えておいてほしいポイントは**どんな作品でもしっかりいいところ３つとアドバイス１つを大人に話しているように印象に気を付けて伝える**ということです。これができればこのコツはつかんだと言ってもおかしくはないです。

## コツ#4 子供がほかの人の作品やプロジェクトで遊んでもいいことにする
Scratchや、Unityを始めた子供を見ている親がやってしまうポイントです。さすがに１０時間遊んでいるだけ、とかはまずいですが多少ほかの人の作品を遊んだり、使ったりすることには妥協してください。
僕もScratchで人気だった、コロナを倒せというゲームを出す前ぐらいまではほかの人の作品で結構遊んでいました。
一見ただゲームしている、と親や先生から思われがちなこの行動なのですが、この行動はちゃんとプログラミングの勉強になっています。なぜただゲームを遊んでいるわけではないかというと、このようにいろいろな作品を知ることで、子供としての目標やあこがれができるからです。僕もScratchをやっていたときは一つあこがれていたゲームがありました。また「こういうことができるんだ」と子供が感じて、想像力が開くきっかけにもなります。なのでこういった外部のプロジェクトも良い影響を子供たちに与えることが出来ます。
一番最初にある程度子供が学んだら放っておけ、といったのはこのためです。大人にずっと見られて監視されていると感じると、子供はこういった想像力を広げる機会を得られなくなってしまいます。
なのでこういった経験を積ませるためにも、多少放っておいてあげてください。
## コツ#5 休憩を取らせる
これは結構重要なことなのですが、トイレ休憩以外にも立ってストレッチをしたりして挙げてください。
僕は実際パソコンのやりすぎで背中が極端な猫背になっていたことがあります。
また自分もやっていたのでわかるんですが、ある程度して集中力が切れるとオンラインゲームだとかYoutubeとかに走ることが多いです。長時間子供がプログラミングしていたり、疲れてそうだなって思ったら休憩して「今日はもうやらないよ」と優しく伝えてください。プログラミングを学ぶのは大事ですが、他の事を学ぶのも大事です。外で友達とゲームしたり、お祭りに参加したり...そんな経験をさせることも忘れないでください。

# 最後に
結果的に子供自身も、親も未来がどうなるとか、子供が将来どの仕事に就くかは分かりません。プログラミングというのは誰もが貧乏、金持ち関係なく世界を変えることが出来るツールです。プログラミングを学ぶのは、いざというときや世界が変わって自分がついていけなくなったときに、このツールを使って自分を変えるようにするためだと自分では思っています。
スティーブジョブズも言っています。
>未来を見て、点を結ぶことはできない。
>過去を振り返って点を結ぶだけだ。
>だから、いつかどうにかして点は結ばれると信じなければならない。
>スティーブジョブズ

プログラミングというのはあくまでお子さんの「点」ということを忘れてはいけないと僕は考えています。

最後に、この記事で紹介したコツを使ってお子さんの「点」づくりが楽になれば幸いです。
最後まで読んでいただき。ありがとうございました。