カレンダー

2020/08
      
     

広告

Twitter

記事検索

ランダムボタン

コンピュータ的でない

by 唐草 [2020/08/30]



 正直なところ自分がコンピュータプログラムを書ける人間だとは思えなくなっている。
 コンピュータを使ってお金を稼いでいるし、コードを書くことだって頻繁にある。ぼくの得意分野は作業の自動化だと思っている。最近ではとんとやらなくなってしまったが、小規模なゲームを作った経験だってある。
 それでもやはりプログラムを書いているという実感は、日を追うごとに薄れていく。これは過度に謙虚なわけでもなく、マウントを取るために嫌味を言っているわけでもない。ましてや自信の無さから卑屈になっているわけでもない。今の自分のスキルを自分の知識で評した結果である。
 ぼくの書いたコードは、このサイトや職場のサーバで動作している。ユーザが直接操作する部分もあれば、自動同期など人目に触れず裏側でひっそり動くものもある。高性能なサーバで動かしているということも大きいが、エラーを出すことなく毎日決められた仕事をキッチリこなしている。
 それでもなお、ぼくはプログラムを書いているとは思えない。それは、ぼくの書くコードがあまりにも人間的だからだ。人間的とは言え、さすがに1000回の処理を全部書くような初心者的なことはしていない。ループ命令などの基本制御構造は使っている。
 ぼくがいいたいのは実装されたコードの形ではなく、コードを書く際に考えるアルゴリズムの話だ。ぼくのコードは、完全にぼくの分身なのである。自分が手作業で処理をしたらこうやるだろうということをコードにしているだけに過ぎない。発想の原点が人間寄りで、コンピュータに相応しい考え方ができないのである。この感覚は、ある程度プログラムを書いたことがある人にしか分からないかもしれない。
 ぼくの発想では、逆立ちしようが何をしようが絶対にクイックソートのアルゴリズムは思いつけないのである。
 やはり工学的な視点からコンピュータを学んでいないことが原因なのだろうか?それとも、指折り数を数えたり、カードを使って状況を整理してしまうせいだろうか?
 もっとCPU内部の回路やインタープリタの実装を理解したアルゴリズムを組み立てたい。これができて初めてコンピュータを使っているプログラムを書けると言えるだろう。