カメヲラボ

主にプログラミングとお勉強全般について書いてます

ひなた先生本!

やねさんから、『ひなた先生が教えるデバッグが256倍速くなるテクニック』をサイン入りで頂戴しました!(´ー`)いえい。
ひなた先生が教えるデバッグが256倍速くなるテクニック (Software Design Books)
Software Designの連載時にずっと読んでたので、当時のことを思い出すように、今日一日で読み直しました。最初読んだときもそうでしたが、技術書であっても人間臭さとかストーリー性のある読み物って良いなぁと感じます。こういう本って、これから流行っていくのではないでしょうか(もしかしてすでにそうなってる!?)
一度読んだ内容ですが、結構加筆・修正とか新規に書き下ろされた部分もあって、読み応えは十分でした。このキャラクターで、続編とか出たら嬉しいなぁと思う人は結構いるんじゃないでしょうかね^^

ところで、今日は一ヶ月ぶりに書いています。最近は忙しくて、書く時間が無いわけではないのですが、大したネタが無いのであえて書かないでいました。ひなた先生本の紹介ということで書いたエントリなので、最近やったデバッグのお話でも少し書いておきましょうか。最近とは言っても、私がそのアプリケーションの開発に参加した時には、かなり大きな規模なシステムになっていて、一度動かすと何百時間も計算し続けるようなものなのですが、当時から再現性の低い、しかも致命的なバグがあることが知られていました。で、最近、いつまでも放っておくのも気持ち悪いので、本気でデバッグすることにしたわけです。

このように書くと、とてつもない作業だったかのように見えますが、1時間ちょっとでバグを特定できました。何年も前から関わっていて、そこそこプログラムがかけて、アルゴリズムとか数学の知識が十分にあるプログラマでも、ほんの僅かなミスに何年も気付けないことがあります。コードを書いたときに、ほんの少し時間をかけてテストしていれば、大した問題にはならなかったはずなのですが…。よく分からないバグが出たときにすぐ対応できるプログラマなら、多少は横着でも許されるのかもしれません。でも、おそらく高速にデバッグできるようなプログラマは最初からいい加減なコードは書かないだろなーと思います。

書きながらまとまりがなくなってきてしまいましたが、まあ何が言いたいかというと、プログラムが書けるなんて当たり前のことなんだから、もう一歩上を目指すんなら、自分の知識とか経験なんかは常に分析・体系化しつつ、上手に自分を枯らしていかんと思うんです。数年で自分より若くてスマートなプログラマがたくさん出てくるんだから、デバッグとか経験値が生きてくるスキルは日ごろから磨いておかないと、すぐ過去の人になっちゃうよ!