ホームページ目次前の話次の話

プログラムを作っている画面を延々と覗きこむのが一番の勉強かな

2002年12月1日

早いもので、もう12月になってしまった。何かいっぱいあったような、とにかく忙しかったような気がしたが、 さて、どんな成果があったかよく分からない1年であった。まだ1ヵ月あるから、最後の1ヵ月で何か決めれば、 今年は有意義な1年ということになる。何事も、最後のキメが一番である。〆切間際に一気に原稿を書き上げる、 さらには〆切過ぎてから書き始めて、それでもちゃんと間に合わせる技術、なんだかそういうことだけは年を取る ごとに上達するが、まともな技術は次第に減っていくみたいだ。

だいぶ前のことになるが、Cのプログラムを作っているところを見せてくれという者がいた。 ちょっとCプログラムを組み始めた人であり、残念ながら私のCのプログラムの本ではないが、 入門書を読んで勉強しているらしかった。

自分で作ったCのソースコードくらい、ハードディスクの中にゴロゴロしているので、 それらを適当に見せたのだが、それではダメだと言う。プログラムを実際に作っている過程を見たいと言う。

それなら、Hello World! をエディタで打ち込んで、コンパイルして、実行すると、「ホラ、動いた」 とやったのだが、それもダメという。

ならば、どんなデモが良いのかというと、例題みたいなのではなくて、実際に仕事等で 作らなければいけない本物の利用されるプログラムでなければ意味がないと言う。 要するに、どんなに複雑でも、勉強のための例題みたいなのではダメで、実際に使うことを目的とした プログラムを作っている過程を、覗き込みたいと言う。

確かに、本とかだけで勉強していると、そこに載っているプログラムは、一応完成された体裁の整った ものである。しかし、実際のプログラム作りは、キー入力している瞬間は、コンパイルすればコンパイルエラーが ぼろぼろと出て来るようなものである。Cの関数にしたって、上から順番に打ち込んでいく訳ではない。 関数がほぼ出来上がってから、引数を増やしたり、減らしたりすることもある。 関数ブロックを { と } でくくって、とりあえず関数の外面だけを作ってコンパイルし、後からブロックの 中をちょろちょろ付け足すことはごく一般的である。

太古の昔のプログラマは、コーディング用紙なる紙にプログラムを書き、 キーパンチャーに入力してもらうのが普通だったと聞く。そういう時代には、プログラムをキー入力する前に、 デバッグを終えるように努力するのである。文法ミスから、論理ミスまで、あらゆるミスをコンピュータを 使う前に行なうのである。今の我々から考えれば気が遠くなるような作業である。

今は、適当に入力し、とりあえずコンパイルし、コンパイラに指摘されたところを直しながら 文法ミスを取り除く。論理ミスだって、適当に実行しては結果を調べたり、だいたいそのようないいかげんな 方法をくりかえしながら済ませるのである。本当に横着してプログラムが組める良い時代になったものである。

さて、実用目的のプログラムを作っているところを一部始終見せて欲しいという たいへん勉強熱心というか、極めて厚かましいというか、そういう要望があったのだが、 何しろ本人があまりに熱心に要求してくるもので、プログラムをゼロから作っているところを見せる羽目になった。

何を作っているところを見せるかは大変難しい。業務で作っているものは、何万行、何十万行という ものもあって、そんなものの作業を一部始終見せるのは不可能である。何かお茶を濁せそうな題材は ないかと思っていたら、良いものがあった。仕事ではないのだが、つい本気で組んでしまうし、実際に 使うプログラムとして、パズルの支援プログラムを1つ組んでいるところを見せた。

Cで100行程度と予想されるプログラムで、比較的簡単であり、できあがったプログラムも 実際に利用されるだけでなく、勉強にも役に立つかもしれないので、それにした。

この程度のプログラムだと、電車の中であるいは道を歩きながら、 ボケーッとして設計するだけで、紙に書いたりすることはない。 しかし、書かないために、作る時にはせっかくのアイデアを忘れてしまうことがある。

実際に覗かせる時には、ちょっとだけ何をするかを説明し、ホイホイとプログラムをして見せた。 たった100行程度のプログラムであるが、小さな関数1つ作ると動作確認というのを繰り返した。 初心者なので、ちょこちょこ確認しながら先に進むのである。 関数数個だけの全体で100行程度のプログラムを約1時間で作り上げ、動作確認までできた。

簡単な内容だから、覗き込まれたり、説明したりしなければ、たぶん30分程度でできた筈である。 それでも見せたら、納得していたようである。プログラムって、こんな風に書くのかと。

しかし、見せた題材が簡単なこともあり、いつものようにバグが入っていまい、バグ取りに 必死になるという世間一般のプログラミング風景を見せられなかったのが残念である。 世間のプログラムは、ああいう風に、作られているのだととんでもない大誤解をしていないかと心配ではある。


ホームページ目次前の話次の話