見出し画像

【後編】小学校で習うプログラミングの意義とは。

前編ではまず、プログラムとプログラミング的思考の概念について書きました。

後編では、その必要性について言及できればなと思っています。

小学校でプログラミングが導入されました。親はプログラミングがなんだかわからないけど、やっていれば就職に困らないのでやらせたい、という漠然とした思いで促進させる方も多そうです。私の時代はそれは「英語」だったし、私がプログラミングを勉強し始めたのは中学生くらいですが(Action Scriptやってました。懐かしい)プログラマと秋葉原とオタクが同義語みたいな時代だったのでこんなに人気職業になるとはなかなか感慨深いです。深いですが、プログラミングって結構向き不向きがあるような気がしてるので、本当に子供にプログラミングをやらせる意味があるのか…?と思い色々調べてみました。

プログラミングとマインクラフト


先日美容院行った時に、付き合いの長い担当美容師さんから相談を受けました。

「子供にプログラミング習わせたいんだけど、私ができないから何がいいのかわからないの」

とりあえず「マイクラ(Switchのマインクラフト)でできるって聞いたんだけどあれってどうなの?」と聞かれたのですが、私残念ながらマイクラはやってないので返答できず。
次行く時までに(産後だから相当あく)までに調べとくし、なんだったら私がリモートでレッスンするんでも構わないよ、とお伝えしてその日は終わりました。たぶん子供にプログラム習わせるなら最低限の知識があった方がいいだろうなあと思って、その美容師さんのために下書きで書いた記事が前編の記事になります。

マインクラフトについてもちょろっと調べました(やる時間ないから買ってないけどちょっと欲しくなった)マイクラのゲームの中で、コマンド入力して建物を構築したり、ロボット(?)に指示をするようなプレイがあるらしいです。そのコマンドがプログラム的な「おまじない」の域を出るかわかりませんが(要するに攻略サイトのコピペで終わらないかどうか)子供は柔軟性があるので、ゲーム感覚で進めて行くことはできそう。

そして少し調べただけなのですが、マイクラプログラミングを商材としたワークショップは山ほどあるみたいですね。大量の検索結果が出てきて「無料(格安)で、誰でも簡単にはじめられる」と触れ込んでおきながら、実際は環境構築の時点で結構ハードルが高い気がします。
(プログラマのくせに環境構築が苦手な人結構多いんですよね、私とか。大きい企業だと専門のエンジニアさんがやってきたり、もしくは設定済みのPCが配布されたりするし)
最終的には有料ワークショップへの導線が貼ってあって、詳しくは習いにきてね!みたいなところで終わってる。これでは確かに独学で完結するの難しそうですね。そしてマイクラに対しどちらかと言うとビジネスモデルとして興味が湧く。

例えばワークショップに加入せずとも、テキストを購入して(書籍もいっぱい出てます)そのテキスト一冊丸々終えればプログラムが書けるようになるかというと、とりあえずプログラミングに対する適正はわかりそうなので入りとしてはいいかもしれません。攻略本感覚でテキスト見ながら進めてくれるなら親としては万々歳ですよね。

文科省が謳うプログラミング的思考の狙い。

前編の記事で長々と書いたプログラミング的思考は、かなり現実のプログラムに寄せた書き方をしています(図解とかなしにnoteに書くのはあれが限界だったからだけど)なのでよりプログラムに特化しちゃってるんですけど、プログラミング的思考を学んだところで、本人がプログラム書きたいと思わなければ書けるようにはならない気がするんですよねー…(身も蓋もない)

そして私自身にも認識の齟齬があったのですが、文科省は児童にプログラミング技能を習得させたいわけではないようです。文科省がプログラミング教育を推奨するには以下の狙いがあります。

●ITが今後進化していくにあたりコンピュータの仕組みの一部を知ることでブラックボックス化することを防ぐ
●自分の目的に対し「どのような手順」「どのような活動の組み合わせ」「どのように改善するか」といったことを論理的に考える力
●身近なものにもプログラムが活用されていることや問題の解決には必要な手順があることに気付く
※プログラミング教育を通じて、児童が自ずとプログラミング技能を習得することは考えられるがそれ自体を狙いとはしない

出典: 小学校プログラミング教育の手引き(文部科学省)

それ自体を狙いとしないって書いちゃってんじゃん!!!(笑)
ていうか、そもそもプログラミング的思考を理解してプログラムにビビらないようにするのが必要なのって大人だと思うんですよね。教師とか親とか。子供は自分の好きなものは自ずと学んでいくし(ていうか手引きにもそう書いてあるし)

何より学校側が授業としてプログラミングを扱う気はないってこと。なので、学校の授業についていくためにプログラミング習わせる必要は全然ないです。プログラムっていうものがこの世界にはあるんだよ、そういう選択肢もあるんだよ、と知らせてあげること自体はあり寄りのありだと思います。

プログラミングは成功体験が大事。

私プログラマになりたくて就職した会社でずっと検証作業ばっかりやってたんです。端末テスト。それが嫌で、自分で書けるようになりたくて、お金溜めてプログラムの夜間学校に通ったんですけど、全然身にならなかったんです高かったのにw
授業はもちろん真面目に受けてたんですけど(まあ仕事後なので眠いのはあるけど)受動的にカリキュラムとして受けてるものってなかなか身にならなくて。やっぱり目的があって、これが作りたい!じゃあどうやって作る?って逆算して調べて書いていかないと覚えられないんですよね。で、効率化とか可読性とか置いといて、まずは動くプログラム書くのが大事。動いたー!っていう、自分の作りたいものができたー!っていう成功体験が、また書きたいって思いを掻き立てていく。そうやって小さいプログラムを集めて一個作品を作ったりして、それを元に就活とかしたらいいじゃないですかと私は思うわけです。
元エンジニアとしては、未経験者にちゃんとコードを書けるかどうかなんて全然求めてません。だって実際プログラミング的思考とかできててもマイクラ上手くても、仕事で使えるコードなんか最初から書けないよ。そんなことよりも、プログラムが好きで、書くのが楽しくて、もっと書けるようになりたいから自分で調べる力のあるやつを積極的に取りたい。それではちゃめちゃなコード書いてきても、それを直すのが我々の仕事だもの。そうやって他人にソースチェックされて、コードが書けるようになって、職業プログラマが育っていくのです。

職業プログラマに必要なもの。

職業プログラマというか、IT系の全職種にいえるのではと思うのですが、必要なのは「検索力」
これを知りたい、と思ったときに、目的に近づくワードセンスです。今の子供たちってスマートフォン持ってるのでそれが自然に身についてると思うんですよね。デジタルネイティブな子供たちは、プログラミングであろうとデザインであろうとゲームであろうと、やりたい目的に対してきちんと情報を引き寄せる術を身につけている(場合によってはそれが怖いこともあったりするわけですが)なので、わざわざプログラミングを習わせる必要はないと思います。習うより慣れるもんだし、やりたかったら独学で学べます。わかんないことができて、本人が聞きたいって思って、そこから初めて誰かに聞ける環境を整えてあげたらいい。それで何かひとつプログラムを作りあげたら、もうその子は立派なプログラマです。その作ったものを持って就職に臨めば間違いなく職業プログラマになれます。

プログラムは怖くない。

自分がわからなくて苦労したから子供にはITリテラシーを高く持って欲しい。そのために必要ならプログラミングだって習わせたい。気持ちはよく分かります、私だって機械のセッティング苦手だから子供にはできるようになってほしい(あれ、なんか違う)
だけど、プログラムは怖いものではないです。むしろ子供が勉強するタイミングで親にも一緒に学んでほしい。子供が「親に教える」という別の目的があれば、その分習得を頑張るかもしれない(頑張らないかもしれない)親がわからないからと言って無理やり習わせることは、敬遠して触らせないことと同じくらい危険です。小学生になってくると、強要されたことって嫌になりやすいですからね。

ちなみにプログラムが書けるようになっても、世の中の大半のシステムはブラックボックスのままです。そんな何でもわかるようになるのなんて架空の世界のクラッカーだけですよ。プログラマは超人ではないので、過度な期待はしないように。

この記事が参加している募集

最近の学び

この記事が気に入ったらサポートをしてみませんか?