プログラミング教育は、難しいところの本当の面白さを伝える努力が必要だと思う | ハッピーコンピューティングのブログ

ハッピーコンピューティングのブログ

東京都小平市の小さなプログラミング教室のブログです。

世の中にプログラミング言語と名のつくものはたくさんあって、
それぞれに個性や哲学と言えるものを持っています。

C言語はOS作るために生まれた言語だからハードウェアに近かったり
JavaScriptはブラウザで動かすために作られた言語だからhtmlやCSSと関連づいていたり。
その言語を利用してほしい主要なフィールドがあるのが普通ですが

JavaやPythonのようなオールラウンダーな言語もあります。

どの言語を選ぶかというのは本来
先に作りたいモノのカタチ

それが設計図なのかぼんやりとしたイメージなのかわかりませんが

そういうものが先にあってから「こういうの作るならこの言語」

という選択に至るものです。
 

とはいえ、これはもちろん仕事の現場の話であって

プログラミングって興味あるんだけど何から始めていいの?

という初学者に、いきなり

何作りたいの?そういうのが決まっていないと何も始まらないよ

というのでは、取りつく島もありません。

 

一昔前までは

とりあえずC言語からスタート

という答えが多かったように思いますが

今では状況もずいぶん様変わりして

ScratchとかPythonとか、日本ではRubyとか

いろいろな言語が提案されているようです。

 

ひとまずC言語、という風潮はおそらく

C言語がコンピュータの仕組みを理解するなら最適。

なぜならC言語はコンピュータの難しい部分を隠さないので

C言語を学ぶと必然的にコンピュータの仕組みの知識も得られるから

というような考え方から来ていたように思います。

 

時代は変わり、求められているものが

「コンピュータの仕組みや成り立ちの知識」

ではなく

「論理的な思考や、創造的なセンス」

そういうものになってきました。

 

なんというか

「ゴリゴリの」

「理系理系した」

「オタク趣味的な」

深い知識はノーセンキューだ

そこまでは求めてないよと

時代が言っているような気がしないでもないのです。
 

だけど

かつて苦労してコンピュータの深いところまで勉強して

プログラミングの技術を身につけた人たちが

今、論理的な思考力とか創造的なセンスとかを発揮しているとしたら

それは

同じ道を辿ればそういうチカラが身につくこともあるよという指針であって

コンピュータの奥深くにある本当に面白いところは難しそうだからスルーして

うわっつらの即おいしいところだけを食べて

さあ、あの創造的なチカラが身につくかというと

ひょっとしたらそういう人も出てくるのかもしれないけれども

少々虫が良すぎやしませんかと言いたくなるのです。


だから

私たちのような教える側が

コンピュータのうわっつらのおいしいところだけを伝えるのではなくて

少々難しいけど

理屈はこんな風になっていて

それはとても知的で面白くて

時間をかけて学ぶだけの魅力があるんだよと

根気よく伝えていく努力が求められていると考えています。

 

と、いうわけで

さすがにアセンブラがどうとかこうとか言いませんから

せめてC言語はもう少し大切に扱われればいいのにな

ていうか

それでもCが好きなんじゃあ!

と大きな声で言いたいのです。

長くなってしまったわりには

オチがただのC言語信者でごめんなさい。

ハッピーコンピューティングではもちろん

Scratch も RaspberryPi もできますよ(!)