ばかおもちゃ本店:Youtube twitter:@sashimizakana Amazon.co.jpアソシエイト

2018年12月26日水曜日

プログラムの書き方

もう昔のプログラマの引退だとか言われる年齢も通り越して、職場ではいつのまにか偉そうなツラをしている。それでも人見知りや、あんまり説教くせぇやつもうざいよなみたいな思想が変わるわけでもないので、職業上行うべき仕草みたいなものを簡単な文書にまとめて、勝手に読んでくれと社内共有用のシステムに投げたりしている。
それでなんとなく思ったのだけど、実際にプログラムを書いたり、システムを作る部分の説明というのはとっても難しい。実際の作業以外の、たとえば打ち合わせ上のコツ(議事録の書き方とか、合意の確認の仕方みたいなの)は、自分もまったく得意でない状態から必要に駆られて習得したので、そのやり方やノウハウを明文化できる。
ただ、実際の作業は、なんだかうまく書けない。

これは、小説でも絵の描き方でも粘土のこね方でも、非常に自分は似通った感じを持っていて、それは「手が知っている」ということだと思う。科学的じゃない言い方だけど、私はそのように何かを作る作業というのを捉えていて、とにかく全行程を通して、自分がそれに触れて、出来上がった何かを吟味して、こういうはずではなかったと思って、直すべくそれに触れて、やはりこうでもないと思って、さらに直して、どうにか近づけて行くという作業を延々繰り返していく中で、やがてをれを手が知るという風に感じている。
もっと頭が良ければ、それを合理的に説明できるのかもしれないけど、私には、「そういう感じ」としてしか認識できない。逆に、私は何かを学ぶときに、頭でわかりそうもない場合、いつでもそのアプローチを採用しているということだ。

まずは全プロセスを、教本を片手にでも良いからやってみて。
次に教本がない状態でやってみて。
自分でぱっと思いついた課題をこなしてみて。
この完成品で良いか、と自分に問いかけて。
直して。
直して。
直して。
すると、そのうち自分が明らかに技術を身に着けた瞬間を感じる。
(もっともこれはこのあと何回も来るし、どんどん遠くなっていく)

私はそれが来ることを知っている。
自分に多少はそれが出来る、みたいな状態になることは積み重ねさえすればどうにかなると思っている。才能云々というのは、もっともっとはるかに高いレベルを目指す場合の話で、素人の手習い程度になることは、そこまで才能とは関係がない。

でも、職人の徒弟じゃないんだから、それをそのままやれというのはなかなかに難しい。説明義務の放棄という気もする。だから非常に些末なTipsみたいなことを書きつつ、どうしたものかなと思案している。




The Art of Computer Programming Volume 1 Fundamental Algorithms Third Edition 日本語版
Donald E.Knuth
KADOKAWA (2015-06-26)
売り上げランキング: 135,850