プログラミングがbasicからなら、プログラミングを始めることはなかった

はじめに

最近、プログラミングには論理回路の知識が必要だとか、こんなような話を読みました。

昔はBasicでプログラミングを学んだ。
そのころは、雑誌に載っているコードを打ち込むことで楽しいと思えるゲームがつくれた。
でも、今の子どもにプログラミングを教えるならどうすればいい?

過去のゲームにあたるのはネットなので、HTMLやblogなどから始めさせるといいという意見がコメント欄などにかかれていました。(Flashという人もいた気がする)個人的に思うところがあったので書きたいと思います。

プログラミング歴1年未満

まだ、プログラミングを始めて1年経ってません。なので、どうしてプログラミングを始めたかということを書くと参考になるかもしれません(ならないかもしれません><)

プログラミングをはじめるまで

めんどうな作業がきらいでした。なので、自動化できるところはきょくりょく自動で行ってくれたらいいなと思ってました。それで、プログラミングができたら、めんどうなことが省けるかもしれないと思ったのです。
 はじめは、C言語を選びました。1日でやる気を失いました。画面に文字を出力するだけでとても時間がかかったからです。*1すぐに嫌になりました。
たとえ、そのまま続けられていたとしてもプログラミングを楽しいと感じることはなかったと思います。画面に文字が表示されても「ふーん」って感じだし、入力した文字の合計が表示されても特に何の感動も得られなかったからです。
 自分のwebサイトを作ることもすぐに断念しました。1ページ作るだけでとても疲れたからです。ひとつひとつタグで括って、毎回毎回おまじないを入力しなければならないのはとても苦痛でした。その上、できたものはお世辞にもきれいとは呼べないような代物でした。
 たぶん、自分の作品を作ったということに満足感を感じない性質だからなのだと思います。できるだけ楽に自分の思ったことができればそれで十分でした。

「得られる成果 - かかった労力」

上の式が負になるものはきらいです。なので、得られる成果が少ないものは長続きしません。そして、昔のBasicにあたとされているものは全て得られる成果が少なすぎるような気がします。自分のwebサイトを作っても、周りと比べて見劣りする様に満足感なんて得られる気がしません。blogを書くにしても、とりたててプログラマへの道が開けるようになるとは思いません。*2
むしろ、目を向けるべきは先ほどの式の「得られる成果(喜びとか)」の方ではなく「かかった労力」なのではないかと思います。しかし、Cで学べるのは凄いのかもしれないけど気の遠くなるような練習が必要そうな職人芸みたいなものだし、htmlを学んでもwebサイトが作れるようになるだけで楽に情報を保存できるようになるわけではありません。しばらく我慢して学んでも一向に楽ができる気配がありません。これでは、プログラミングを学ぼうという気が起きないのではないかと思います。
もちろん、はじめからやりたい作業を自動化できるような便利なコードが書けるわけではありません。でも、楽ができるという可能性を見せることは可能なのではないかと思います。*3
そういった意味で、もし、プログラミングを教えたいと思うのなら、めんどうな作業を「家の仕事」として半分ぐらい子供に押しつけて、子供が作業を終わったことを確認してから、その目の前でコードを書いて残りの仕事を一瞬で終わらせるといったことを経験させるとプログラミングを学ぶ意欲が出てくるかもしれません。*4

*1:全角の空白が入っていたことに気づかずに頭を悩ませてました

*2:blogを書くというのはふつうのことですから

*3:実際、rubyの「(1..10).inject {|sum,n| sum + n}」に惹かれた

*4:そのためには、家族で共同作業をするという習慣が必要かも