うちの子供には、いつプログラミングを教えるか

先々週、もう、17年ぐらいのお付き合いになる、人材派遣業界のフィクサーみたいな方とお会いしました。

久しぶりのお会いして、結婚して、娘が二人居るという話になったら、「竹洞さんは、サイバーサイボーグだと思ってたので、結婚してお子さんも居ると聞いて安心しましたわ。竹洞さんも、人間らしくなってきたんですね」と言われました…

いや、普通に人間ですから…

それで、「じゃぁ、もうプログラミングとか教えてはるんですか?」と訊かれたので、「いや、まだ教えないです。」とお答えしました。

「どうして、教えてないんですか?いつ教えるんですか?」と、色々と突っ込まれました。

上の娘が小学二年生、下の娘が幼稚園の年長さんで、まだその時期じゃないので。

今は、まだ言葉の根本的な意味について、「その言葉、わかんない」と言われて質問される事が多く、こっちも必死になって、どうすれば、言葉の意味が伝わるだろうかと考え込みながら、回答する日々です。

身近に手に触れられるものは、教えやすいのですが、手に触れられないものや、巨大なもの、あと時間感覚がまだ完全に身についていないので時間に関するもの、概念的なものについては、説明するのに非常に苦労します。

そして、それを説明し切れない時に、「自分は本当は、この言葉の意味や本質を理解していないんじゃないのか?」 という現実に直面してしまうのです。
「これはね、こういう意味だよ」って説明して、「その言葉の意味が分からない」って言われて、子供に突っ込まれた感のやるせなさというか、苛立ちというか…

そういう子供の素直な疑問・質問に対して、真正面から向き合って、考えることで、学ばされる事が多々あると気づきます。

何故、自分のおもちゃを友達に貸してあげないといけないのか。
何故、自分のお気に入りのものを妹に取られたら、力づくで取り返してはいけないのか。
何故、友達と遊ぶ約束より、日々の自分の宿題を完了させる方が優先なのか。
何故、ピアノを学ばせてるのか。
何故、英語を勉強しなくてはいけないのか。
何故、習字を習わないといけないのか。

まぁ、ピアノや英語、習字については、最初嫌だなと思っても、できるようになると楽しくなって、練習することが楽しくなるよ、という事を言い聞かせて、続けさせたら、今は楽しくやっているので、学ぶ楽しみを教えることが出来て良かった!と思いました。

ところがどっこい、過去の記憶が完全に定着するお年頃ではなくて、楽しくなかった頃の思い出が消えてるんですよね。だから、いまだに、新しい事にチャレンジするとか、理解できない事にチャレンジするというのが、最初は辛くても、徐々に楽しくなっていくというのを理解してもらえない状況です。

さて、プログラミングの教育ですが、今は、この二人の娘から次から次へと出てくる「何故?」を大事にしたいと思っていて、当分、教えるつもりはないのです。

どうしてかというと、プログラミングとは、「問題解決」であり、「解決の自動化」だからです。

ソフトウェア工学の師匠である株式会社一の大槻さんや、 有限会社メタボリックスの山田さんが主軸となって2009年ぐらいから活動されているアジャイルプロセス協議会の知働化研究会というのがあります。
私も、(幽霊)メンバーなんですけど、知働化とは、会社組織とかで確立したルーチンワーク+ノウハウを、プログラミングによって自動化したもの=プログラム、というのが当初のコンセプトでした。(大分、コンセプトが変わったらしいですが、参加してないので、キャッチアップできていません)

私としては、このコンセプトは、凄くしっくりきてます。

開発言語を買う(そう、買うの。言語を。コンパイラを。)費用が下がったり、無料になったり、稼働させるハードウェアコストも下がって、プログラムを開発するコストが激減したと思います。プログラムを開発して、実行することが、結構気軽にできる環境になりました。

その一方で、プログラムを作る前に、業務そのもののルーチンワークとか、アプローチとか、やり方とか、プログラムを組む前にあれこれ効率化できることが、あっさりと素通りされてしまって、プログラム化されているというのを感じます。

そして、とりあえず組まれて実行されているプログラムの問題を解決するために、別のプログラムが組まれて…という感じになってきていると感じるのは、私だけでしょうか?

別の言い方をすると、「問題は何か?」という深い思考、考察、議論がすっ飛ばされている感じがするのです。

プログラミングは、「問題は何か?それを解決、解くためにはどうすればいいのか?」、その自動化と思うので、 娘たちには、安易にプログラミングを教えるつもりはないんです。

今は、ひたすら、娘たちの本質的な質問と真摯に向き合って、こっちも頭を捻りながら答えを導き、分からないときは「分かりません、時間を下さい」とお願いしたり、「一緒に調べてみよう」と言ったり。

特に、「何が分かんないか分からない」と言われたときは、地道に、じっくりと、根気を持って接するようにしています。そう、問題が何か分からないのが、人生で出会う命題の殆どなので。

何が問題なのか、その本質的な定義を考える事をまずは習慣にして欲しい。
それが身につくようになったら、プログラミングではなく、まずは手作業で、アナログな作業で解決をすることを身に付けて欲しい。
解決する方法論、思考法などを身に付けて欲しい。

それから、プログラミングを学ぶ、それで良いと思っています。

コメント

人気の投稿