カレンダー

2021/05
      
     

広告

Twitter

記事検索

ランダムボタン

自信満々に間違える

by 唐草 [2021/05/28]



 プログラムを作る上で必要な能力は、2つあると考えている。
 1つは、アルゴリズムを考える能力。仕組みや手順を考える能力とも言える。これはコンピュータに特化した能力ではない。もちろんコンピュータの仕組みを理解していたほうが効率的な仕組みを考えられるのは間違いないけれど、それ以上にどういう順番で何をこなしていくかを考えられることが重要。もしかしたらレシピを考案できる料理人は、プログラムに向いているかもしれない。
 もう1つは、考えた仕組みを特定の言語で書き表す能力。と言っても、これは言語に依存する能力ではない。各言語の分解能への理解なので、例えるならレゴブロックを組むような能力だ。どんなサイズのブロックが用意されているのか、複数のブロックを組み合わせるとどんな動きをするのかということを把握する能力。レゴでもプログラムでも作れば作るほど詳しくなっていくので、能力と言うより知識と言ったほうが良いかもしれない。
 つまりプログラムを書くというのは、実現したいものや機能を分解する能力だと言える。結果に至る手順を明らかにして、ブロックで表現していく。ぼくはこう考えている。
 長々と偉そうなことを書いてきたが、ぼくが書いたプログラムが一発で動くことはまずない。構文エラーは開発ツールが指摘してくれるのでほとんどないけれど、それはきちんと動くかどうかとはまったく別の話である。
 仕組みそのものが間違っていることもあれば、ブロックのサイズや機能を根本から勘違いしていることも多い。ぼくが書いたプログラムを動かすと大抵の場合、初回は予想から大きく外れた結果を残すことになる。
 不思議なことにデバッグ作業を開始すると予期せぬ挙動の原因になった部分は、自信満々に書いていた部分であることが圧倒的に多い。体感80%といったところ。自信なさげに書いた部分はそもそも動かないことが多いとは言え、どうして自信があるところに大きなミスが隠れているのだう?
 慢心?
 だとすれば、プログラムを作るためにもう1つの能力が必要だと言える。自分を律する平常心だ。なんだか武道の話みたいになってきた。