こんばんわ、TF's appsです。
今回の記事はプログラミングの勉強や教育でダメな事を伝えたいと思います。
なぜ急にこの話題になったのかというと、
本日親戚の集まりでこんな会話がありました。
親戚「小学校でもプログラミング始まるよね?」
親戚「何をするんだろうね・・・」
親戚「本で英語のような文字を学習するんじゃないの」
親戚「教材の玩具を動かしたりするんじゃないの」
私「う~ん・・・・」
やっぱみんな学校で何を学ぶんだろうって感じだと思いますよね。
以前の記事で私はプログラミングとは「目的を達成する上での解決方法を考え、実現させる手段を導き出す思考を身に付けるもの」と紹介しました。
そう、プログラミングも算数や国語といったように、社会に出て必要となる学問だと私は解釈しています。
だから言いたい
プログラミングの扉を叩く時にダメな行動は
プログラミング未経験者が
何も分からずに、いきなり
「はじめての〇〇言語入門」のような教材を買ったり
「玩具を動かすようなキット」を買ったり
といった行動をする事だと考えます。
決して間違いではないですが、
プログラミング的な思考(本質)からはズレて、重箱の隅を突くような勉強となります。知識は増えますが、本質の理解からは遠ざかります。
学生なら良いと思いますが、社会人でプログラミングをする仕事を考えている方は、いくら知識だけの言語を覚えても、プログラミング的な思考がないと仕事にならないはずです。
なぜなら、プログラミング言語は表現する手段に過ぎないからです。目的達成の道筋を考える力は何度も言いますが「プログラミング的な思考」が必要となるからです。
プログラミング的な思考を養うには、例えば下記のような問題でどれだけ予想できるのか?という事になります。
<問題>
「電池式のロボットが交差点を少し越えたゴールに向かって進んでいます」
ロボットがゴールに達するまでに予想できる危機を挙げよ
・電池が無くなる?
・交差的でぶつかる?
電池と交差点だけに着目すると通常はこれだけですよね。この問題の答えとしては十分かもしれませんが。
でも、答えは無限にありますよ。これを理解して欲しいと思います。
・道に穴はないか?
・空から隕石が降ってこないか?
・まっすぐに歩けるのか?
・交差的は実は何百キロ先なの?
などなど
目的達成のための思考を十分に理解した上で、それを表現するプログラミング言語を学んで欲しいと思います。まぁ私はゲームが作りたいとの気持ちからこの業界に入っています。偉そうに言える立場では全くないです。
いかかでしょうか?今回は久しぶりプログラミング教育に関する記事でした。ではまた次回お会いしましょう♪