(偉そうに書いていますが、基本的に「自分が見失いがちなこと」を自戒の為に書いています)
認めよう
バグの無いソフトウェアは無い ※
ユーザーとしてはもちろん技術者としてもなかなか認めたくないことではありますが、昔から言われていることでもあり、様々な調査研究で証明されていることであり、もしあなたが熟練の技術者なら経験上からも残念ながらそれが真実だとわかることでしょう。
※ わかっているとは思いますが、開き直ってバグを放置して良いという意味ではありません。
しかし
希望を失ってはいけません。バグを減らすことは出来ます。またバグを見つけてデバッグすることも出来ます。
もしあなたがバグを作り込んだ当人である場合、その失敗を訂正するか、次はもう少しマシに失敗するよう心がければ良いのです。
もしあなたが使っている API にバグがあり、それが自分の責任でないとして、いくつかの道があります。
- API を使わないか、回避する使い方をする。
- API の中身を除いてバグを修正する。
- 作者にバグを報告する。※
※ もしその作者が外国人の場合チャンスです。連絡と同時に外国語の勉強をすることが出来ます。「それでも腹が立つなら」の項を参照してください。
掲載コードにミスの無い技術書は無い
バグの無いソフトウェアがないのと同じように、誤りの無い書籍もありません。しかし同様に、誤りを正すこともできます。
もしあなたが読者なら、そのことに腹を立て、Amazon の読者レビューに愚痴るのは止めましょう。筆者をかばっているのではなく、単に時間の無駄です。あなたが筆者のミスに気付くまでに無駄にした時間それ以上に無駄にする必要はありません。
しかし
あなたが読者なら、そのミスを出版元に連絡することが出来ます。出版社の Web サイトに掲載される正誤表に新たな項目が加わるか、もっと運が良ければ増刷の際に修正され、他の人を助けることが出来るでしょう。
日本語に違和感の無い翻訳本は無い
これも同様に、完璧な翻訳など無いことを認めましょう。
もしあなたが読者なら、そのことに腹を立て、Amazon の読者レビューに愚痴るのは止めましょう。筆者をかばっているのではなく、単に時間の無駄です。翻訳は外国語に通じていると同時に、日本語にもより通じている必要があります。技術本の翻訳はそれに加えて、その技術に通じていることも必要です。そんなことが重なる奇跡を期待している時間に、新しい技術が生まれ、内容はどんどん陳腐化していきます。その時間をもっと別のことに使うべきです。
しかし
あなたが読者なら、そのミスを出版元に連絡することが出来ます。出版社の Web サイトに掲載される正誤表に新たな項目が加わるか、もっと運が良ければ増刷の際に修正され、他の人を助けることが出来るでしょう。もし筆者にそのことが伝われば、次の翻訳本の精度が上がる可能性があり、それも多くの人の助けになることでしょう。
あるいは「原典を参照する機会」「外国語を学ぶ機会」と捉えましょう。技術者の修行に終わりはありません。強制的に勉強するチャンスが来たと思いましょう。「それでも腹が立つなら」の項を参照してください。
それでも腹が立つなら
その怒りは、あなたがレベルアップしたことの何よりの証明です
ただ自分を誇らしく思いましょう。
その怒りはあなたがレベルアップするチャンスです
バグではないですが、私はかつて「こんなもの絶対に使いこなせるようになるはずが無い」と、正規表現に対して思っていました。記号だらけで、覚えるのを拒絶されているかのようで、便利さよりもこのような記法が存在することをむしろ腹立たしく思ったものです。そうして避けてばかりいたそれも、やがて実務上の都合から使うはめになりました。使ったはみたものの気に入らないので「もう二度と使うものか」という決意をするのです。しかしやっぱり実務上の必要から同じことを繰り返すことになります。そのうちに、結局使いこなすことが出来るようになってしまいました。いまはもちろん、とても便利に使わせてもらっていますし、この技術にとても感謝しています。
またある時私は、繰り返すバージョンアップの中でなかなか解消しないバグについてフォーラムに英語で投稿しました。しかし私がバグだと思っていたそれは、ある時点でひっそりと追加された新機能だったのです。私は恥をかいただけだと思うかもしれません。しかし一方で、その新機能についての知識を得、且つ英語の勉強をする良い機会にもなりました。
その怒りはあなたのスキルを支える礎です
怒りを胸に沈めてはならぬ
怒りは両足に込めて
己を支える礎とせよ
(覚悟のススメ)
エンジニアに祝福を!