ばかおもちゃ本店:Youtube twitter:@sashimizakana Amazon.co.jpアソシエイト

2016年5月28日土曜日

どうやってプログラムを教えればよいだろう

プログラムを教えるということをずっと考えている。
自分の子どもに教えるのもそうだし、会社で教えるということについても考える。私はプログラマだが、職場の大半は非プログラマであり、その人達のすべてがプログラムを書ければ、ずいぶん仕事が楽になるのではないかと考えたりする。何か良いアイデアがあれば、誰だってプログラムを書けるようになるのではないかとずっと思っている。例えば誰だって時間と機会さえあれば、英語を覚えられるように、プログラミングを行えるようになるはずだ。
もっとも、それで良いプログラムとか、大規模なサービスを一人で作れるかというのは、英語を話せるからといってそれで小説を書けるようになるかというような問題に近い。それはもっと難しく、果てしなく時間のかかることだ。もっともそれが出来なくとも、ただ単純にプログラムを書けるだけでも、いいことには違いはない。

そうして良い方法を日々考えている反面、優れた方法などというものは、相対的にあったとしても、本当に聞くだけであっという間に分かるようになるなんていうものは、無いのだろうと思ったりする。それこそ語学がそうであるように、そんなものがあるなら、すでに発見されているはずだ。誰も見つけていない上手いやり方、そんなものを、特に優れたプログラマでも、教育者でもない私が見つけられるとは考えにくい。そもそも私が前述しているとおり、必要なのは、時間と機会であり、それがもっとも大きな要素だ。優れた師がなくとも、時間と機会だけあれば人は書けるようになる。すくなくとも私がそうであったように。

そうすると結局のところ重要なのは、いかにして時間と機会をそこに割かせて、それを苦痛と感じさせないかということだ。言い換えると、面白がってもらって、ついついやりたくなる課題がいっぱいある、そんな状況になれば、誰だってプログラムを書けるようになるはずだ。少なくとも、そういうことを面白がれるような人ならば、書けるようになるはずだ。

面白おかしい技術的なものを作るということであれば、私は世のプログラマとくらべても、すこし経験がある。つまりはそういうものを教える対象に作ってもらったり、あるいは私が作ったおもちゃで遊ぶのにはプログラミングが必要である、というような状況にすれば、私なりの独自の授業ができるかもしれない。

そういう観点で言うと、TIS-100なんかをプレイするというのも悪くないかもしれない。実際のプログラムと比べるとアセンブラに近いし、やや特殊ではあるが、プログラムの流れというものがいかなるものかということを理解するという面ではなかなか悪くないし、面白くもある。