自分自身、かなりおっちょこちょいだと思う。ポカミスが多いのだ。だからってわけでも無いのだが、ミスをしないコンピュータ(まぁ、エラーはあるけど、人間のエラーレートに比べれば遥かに低いわけで)というのは、ありがたい存在だ。もしも計算機が無い時代だったら、しょっちゅう計算ミスして困っただろうな。だから、おっちょこちょいな人ほどコンピュータは、かけがえのない存在なんじゃなかろうか。あまり詳しくない人から見ると、コンピュータ好きな人間ってのは、何やら物事を正確に行える人間のように見えるらしいのだが、実際は全く逆なんじゃないかって事。
でもプログラミングのミスはどうするか。入出力が決まったプログラムで、自分が好んで良くやるのは、同じプログラムを2つ作るというやり方だ。1つは実行効率も保守性も非常に悪いけど、造りが極めて簡単なもの。成果物に使ってはいけないようなライブラリ(配布条件とかの制限で)とかも、どんどん使って、とにかく楽に作る。もう1つは、提出用のプログラム。実行効率を考慮して、保守性も考慮してキチっと作るから、構造はそれなりに複雑なものになる。ライセンスの都合上、車輪の再発明なんかも余儀なくされるのでコード量も多い。
あとは、乱数で入力データを与え、2つのプログラムの結果を比較するプログラムを作って、ぐるぐる回して、見つかったバグをつぶしていく。
これも一種のテストの自動化だから、リファクタリングも思いっきりやれるし、何よりいいのは、プログラミング過程全てが楽しいのだ。単体テストコードを書く、あのわずらわしさが無い。
HOME