【雑文】目標の達成とプログラミングは似ている
最近は、小学校でもプログラミング教育をするんだそうですね。
コンピュータをより適切、効果的に活用していくためには、その仕組みを知ることが重要です。コンピュータは人が命令を与えることによって動作します。端的に言えば、この命令が「プログラム」であり、命令を与えることが「プログラミング」です。プログラミングによって、コンピュータに自分が求める動作をさせることができるとともに、コンピュータの仕組みの一端をうかがい知ることができるので、コンピュータが「魔法の箱」ではなくなり、より主体的に活用することにつながります。
私がプログラミングに初めて触れたのは小学校4年生の時で、友達の家にMSXがあったのを触った時でした。BASICが内蔵されていて、ちょっとした命令でピッ!とか音が鳴る(BEEP)ようなものでも、機械が自分の命令で動作したということですごく面白く感じました。BASICの良いところは、命令単体でもちょっとしたことができるので、手探りでまとまった仕事をくみ上げてゆける、というところです。
コンピュータに何か仕事をさせるには、細かく段取りを決めてひとつひとつ記述するプログラミング力が求められます。よくよく考えてみると、これは、自分自身が何かをやりたいときでも、ゴールにたどり着くまでの工程を細かく分けて、ひとつひとつやっていくことと共通点があります。
- やりたいことを思いつく。
- やりたいことを達成するまでを細かいステップに分けて段取りする。
- ステップをひとつひとつ具体的にやってみる。
- たいていどこかでつまづくので、トラブルシューティングする。
- 当初の目的を達成する。
- 少しできると、もっとやりたくなる、こともある。最初に戻る。
どの段階も大事なのですが、二番目の段取りで「どうしたらいいか、わからない」、そして四番目のトラブルシューティングで「どうしたら上手くいくようになるのか、わからない」が、人生の悩みの大半ではないかな、と思います。ぶっちゃけこれ以外は、ネット全盛期ですから、調べればたいてい例がみつかります。
冒頭の手引を見ると、プログラミング教育では二番目の段取り力の養成を重視しているようなのですが、私の肌感覚では、四番目のトラブルシューティングこそがこの先生きのこる重要スキルではないかなと感じます。人生のデバッグ力、大事ですよね。