スクラッチの学習法を実際のプログラミング学習に当てはめると気分が楽になる。
先日、キッズ向けのビジュアルプログラミング「スクラッチ」を触る機会がありました。
なるほど、よくできてるなと感心しました。
日本語の説明を読む必要がないのです。
とりあえずブロックを組み立てて「実行」するだけ。
意図通りに動かなかったら、またブロックを組み立てて「実行」。
これがトライ&エラーになっており、プログラミングの構造がなんとなくわかるわけです。
難しい説明を受けることなく、とりあえず動かすことができるというのが良いですね。
だいたい世の中のプログラミング教材は日本語が多い。
解説文を読めば読むほど嫌になります。
歴史の教科書を読むより、大河ドラマを見た方がすんなり入ってきますよね。
あれと同じ理屈です。
それを実際のプログラミング学習に応用するとしたらどうするか。
ブロックの部分(例えば構文のこと)はとりあえずタイピングしなくちゃいけませんが、
それは神経衰弱ゲームと割り切って、あとは変数だったり引数だったりを当てはめればいいわけです。
深く考える必要はありません。
とりあえず書いたら、すぐ実行して、どうせエラーするのだから、そのエラー文をヒントにする。
スクラッチでの意図通りに動かないというところは「エラー文」にあたります。
そのエラー文もきちんと和訳すると意味のある文章だったりします。
どこかの解説文を読むよりも「エラー文」の方がヒントになります。
実際にこのお作法は、現場のプログラマーの仕事そのものだったりします。
サンプルコードを見つけてくるか、ChatGPTにテストコードを書かせる。
あとは意図通りに動くように仕様変更して実行。どうせエラーが出てくるから、それをヒントに「デバッグ」です。
バグが解消されたら、心の中で「ガッツポーズ」です。
実際に動いているソースを改変するだけなので、教科書は必要ありません。
まさに、テックジムの教材は、教科書がなくても学習できるようにカリキュラムが組まれています。
サンプルソースや答えのソースがヒントになっており、
エラーを出せばまたヒントが出てくるのですから、教科書は必要ないのです。
プログラミングは「理解しない」と書けないのではなくて、「理解」は後から追いついてきます。
まさにScratchの学習スタイルは、それを体得できるように設計されているわけですね。
テックジムでも、「とりあえず書く→エラーをヒントに修正する」の繰り返しで学んでいくわけですが、
それはまさに、スクラッチ学習と同じ学習意図を組んでおります。
<参考>
■スクラッチ卒業者は次に何を学べばいい?言語選びやスクール選びのポイントとは?
何かを学習するとき、そのために色々と覚えないといけなかったり、解説を理解しないといけないのは、退屈です。
学校の授業がほとんど面白くないのはこういうわけです。
どんなにすぐれた動画教材があったとしても、授業を聞くのは苦痛です。
人類は他人の説教が苦痛だとプログラムされているようです。
実際にやってみて、なんらかの反応がないと、退屈します。
それで「NG」だと、挑発された気になって、繰り返しやってしまう。
バッティングセンターでもそんな感じじゃないでしょうか?
プログラミングも「ゲーム」と一緒です。
発想を切り替えるだけで、プログラミングは楽しいものになりますよ。
今回はさらにもう一つ、大切なことを伝授。
それは「時間を区切ること」です。
15分やって出来なかったら次にすすむ。どうせ復習するわけですから、そこで理解する必要はありません。
「納品時間」を意識すると仕事が早くなるように、時間を意識しただけで、スリル感があり、学習効率があがります。
受験テクニックもそうですよね。できることから解いていけばいいわけです。
グーグル検索するにも時間を区切る。調べごとは1分で終わらせる。それでも分からなかったらスルーです。
理解がおりるまでの一定の「トライ&エラー数」が無いと、解説文は理解できません。
これは機械学習のサンプル数が少ないのと似ています。そうやって割り切ればいいのです。
この「トライ&エラー数」がスキル向上に比例します。
寿司職人だったら何万個握ったら客前に出せるかということと同じです。
何度やっても一向に理解できないという方は実はいません。
実際はポケーと、テキストを眺めていたり考えてたりして、時間を浪費しているのです。
ちゃんとトライ&エラーを繰り返していたら脳が疲れます。
疲れた分、何かがインプットされているのですから、「理解」が降りてくるのは時間の問題です。
参考になりましたでしょうか?
ちょうどプログラミング学習には良い季節になってきましたので、
過去に挫折した方はこれをヒントに再度、挑戦してみてはいかがでしょうか?