最近プログラミングの教え方についての記事をちょくちょく見るので思い出して書いて見る。
プログラミングの経験といえば、今は懐かしいAction scriptをかじったくらい。周りにもアプリ開発者はいなかったし、C言語の本を揃えるところからはじめてなかなか大変だった。
本を見て、サンプルのコードをそのまま書いて見て、書いてあるとおりに動いて、ちょっとアレンジしてみたりして、それでどうなのという感じ。これでアプリが出来るのかと雲をつかむような話だったが、だんだん複雑になるにつれ、サンプル通りに書いたつもりでも動かないことが増えてきた。
何一つ分からない時、理解の糸口になるのは「言われたとおりにやったのにうまくいかなかった」ことだけだ。
何も手がかりのないツルツルのところにちょっとした窪みが出来たような感じだった。
そのまま書き写しつもりだったのに漏れていたのはどこなのか。
サンプルでは動いたのにアレンジしたら動かなかったのは何故なのか。
それが手掛かりだ。
「理解していないのは何なのか」を理解することでちょっとだけ入り口が開く。それを何度か繰り返すことで「こういうことだったのか」と理解できようになる。それを積み重ねて自分の作りたいものが何とか作れるようになった。
結局一年ほど掛けてどうにかリリースまで漕ぎ着けることができた。
ただ、自分は致命的に短期記憶が弱かった。いつまでたっても関数を覚えられず、毎回調べ直さなければならない。これは向いてないわとそれきり止めてしまった。
こんなんでも、アプリ開発してリリースしたとなると、「どうやったの?」とわらわらと人が集まってくる。
その時感じたのは、プログラミングがどうしても出来ない人がかなりの数いるということ。
その人達はみんな同じことを言う。「本に書いてあるとおりにやったのに動かない」「言われた通りにやったのに動かない」そう口を尖らして言う。
そうしてうまくいかないことに不機嫌になり、脱落していく。
そこからなのになあ。
うまくいかなかったら「よっしゃ、来たぞ」と思わなきゃ。
実家の母がイトーヨーカドーのサイトがリニューアルするたびに「ここにあったボタンがなくなってわからなくなった。どうしてこんなことするのかしら」と不満を(なぜか自分に)ぶつける姿を見て、こんな感じなのかなと思った。