子供に教えたいプログラミング言語を色々考えた結果はrubyだった

ぼくはIT業界に身を置いていて、別の記事でも色々書いている通り、子供の教育というのにも非常に興味を持っていて日々色んな考えが浮かんではウンウンとうなっている。

プログラミング自体はものすごい能力ではない。「それさえできればいい」というわけでもない。大人になってIT業界人になってプログラミングができるものが勝ち組、できなければ負け組となる分岐点になるか、全然そんなことはない。IT業界で仕事をし、成果を出し、成功していくために必要なスキルのほんの一部がプログラミングだ、といえる。

ただし、プログラミングはコンピュータというのが何ができるのかを知る本質を得ることや、問題解決能力を養うことに非常に有効な学習材料になる。ITの基礎の基礎を大いに自分のものにできる。これからの社会で成功する人になっていくためにITというのは必修科目となりつつあり、小学校でもプログラミングが必修となることか、何かしらやらないといけないような気分にとらわれている方も多いのではないかと思う。

例えば「土日にだらだらしてるくらいだったら親子でプログラミングを勉強してみよう!」と考えられた利、または挑戦しようかと思い立ったものの何から手を付けていいかわからないというパターンも多いのではないだろうか。

そこで、中高生の時からプログラミングを一定勉強し、今もIT業界で働くぼくの知りうる様々な観点から、小学校高学年から中学生くらいまでを対象に家庭でプログラミングを教えるとなった時に、どの言語でどんな勉強をすればいいのか、考えてみた。結果的には2019年3月時点では“ruby”をもっともおすすめしたい

言語を選ぶ視点

プログラミングを勉強するにあたって、まずプログラミング言語というものがあり、それはたくさんの種類があるということを知り、面倒だな、何なんだろ、と思われる方は多いのではないだろうか。そう、しかも多い。何が違うのか、どれがいいのかと思ってもなんだかその時点で難しい。

世間的には、小学生など子供にプログラミングを教える場合にはScratchがよく選ばれている。ScratchはScratchで本当に良くて、これをとっかかりにもっとプログラミングに入り込んでいくこともきっとあるし、面白いゲームや作品が山のように公開されているのも魅力だ。

ただ、ぼくは個人的には子供にも汎用言語でのプログラミングをさせてみたかった。半分趣味とは言えばそうなのだが、本当にコンピュータがどうやって動いているのか、生のコンピュータというのが一体何なのかがカラダで分かるからだ。もちろんScratchでも問題解決能力や論理思考能力が身につくというのはそうなのだが、やはりクラシックなプログラミング言語でそういう脳を形成していった上で、次にこういうツールを使いこなしていくべきではないかと思う。それに、いずれは汎用プログラミング言語を学ばなければできないことがやたらと多いのにも気づくはずだ。

ということで、プログラミング言語を選択するうえでの軸となる、選定観点について整理する。学習対象のプログラミング言語は、どうやって選べばいいのだろう?

Web上には「今から学ぶべきプログラミング言語10選〜20XX年編〜」だとかの情報は山のように溢れているので、ぼくも色々と参考にしてはみたものの、結局なにがいいのかわからないのと、子供に教えるという視点に立ったものはそれほど多くない。実際には小学5年生くらいを相手にすると、考えるべきことは相当増えてくる。

まず、プログラミングを作って何をさせるのかが重要になってくるのだけど、基本的には子供にプログラミングを学ばせるとなったらゲーム作り以外しかないと思うので、やっぱりゲームが作れるプログラミング言語を選ぶべきかなと思う。スマホアプリなんていうこともあるかもしれないが、それは相当ハードルが高いのでいったんあきらめてほしい。Windowsパソコン上で、そこそこ気軽にゲームが作れて、そこそこ気軽に動かせる言語がいい。プログラミング言語はたくさんあるが、実は言語ごとにやれることが結構違っていて、この要求を満たす言語という時点でかなり限られてくる。

ぼくも何でも語れるわけではないが、世の中のほとんどの機械はプログラミングされて作られたソフトウェアで動いている。パソコンなんてもちろんそうだし、テレビ、エアコン、冷蔵庫、スマートフォン、ガラケー、ゲーム機などなどから、FacebookやInstagramやTwitter、発電所のシステムだって石油工場のシステムだって、飛行機の操縦プログラムだって、プログラミングで動いているのだ。

プログラミングを勉強することはそういったあらゆる世界への第一歩なのだけど、もちろんいきなり大それたことはできないので・・なんて訳にも行かないので、敷居の低いところで動くものを作って勉強していくしかない。たぶんゲームか、Webアプリケーション(Webとしてアクセスして使う仕組み、Twitterとかもそう)だろう。

Webアプリケーションを作るのも実際には結構楽しいと思うけど、今回はゲームで考える。Webアプリケーションの場合は伝言板とか掲示板の簡単なものを作って勉強していくのが定番で面白いのだけど、いったん置いておく。

それでは「ゲームをするためのプログラミング言語」というと・・・ネットで検索するとこれも多くの情報が出てくるが、以外と無責任な情報も多いので注意してほしい。例えばjavascriptだとかはそれ単体ではそれっぽいゲームを作ることは不可能だ。unityだとかC++だとか、小学生が手を出すことなんてまず不可能、大人でもそこそこ専門にやっている人でなければ最初から絶対歯が立たないような言語もしれっと出てくる。

ぼくとしても、子供が手を出せて無料ですぐにWindowsのパソコン上に環境が整うようなゲーム開発の方法を相当に探し回ったのだけど、最終的にはrubyのdxrubyというのが非常に良かった。というわけで、汎用言語でありながらこんなにちょうどいい仕組みが無料で用意されているrubyの魅力はここでかなり大きいなと思った。

近いものでいうとPythonという言語のpygameというのもある。たぶんこれでもいいのだろうけど、ぼくが見たところではどちらかというとdxrubyの方が簡単かな?と思った。最初からオブジェクト指向を意識しなくても一定作れる感じがした。

Rubyに関しては、汎用的で色々なものが作れるのも先々を考えるととても良いと思う。実はTwitterもRubyでできている。Webアプリケーションにも使えるし、パソコン上で動かすアプリケーションをゲームに限らず作ることもできる。また、インターネット上に情報が多いこともいい。

というわけで、我が家の小学生の子供たちに少しずつRubyを教えていく過程を、また書いていこうと思う。

コメント

タイトルとURLをコピーしました