質の高い情報の集め方。 Who > Review > Google

私は時折、本を書きます。本を書くのはとても大変な作業で、膨大な時間と思考力を使います。そして、多くの著者が1回本を書き上げると、もう2度とこんな辛い経験はごめんだと言います。しかし、時間が経つとまた経験したくなる不思議さを、本を書くという仕事は兼ね備えています。
さて、人は本を書くと何を得られるのでしょうか?
名声?お金?達成感?未経験者の人はそんなものを想像するかもしれません。しかし、私の経験上、それらはあくまで運によって得られるものであり、求めて得られるものではありません。
では、何を得るのでしょうか?
私が本を書いて得られたものは、質の高い情報の集め方でした。何か分からないこと、気になることが出てきた時、その答えを見つけるまでのスピードと精度が劇的に早くなりました。このスキルは本を書くだけではなく、仕事をする上でもとても役に立っています。
私はプログラマーとして非凡な才能は持ち合わせていません。しかし、多くのプログラマーよりも課題解決のスピードに優れているという自信があります。それは、質の高い情報、つまり答えを見つけるスピードと精度が優れているからに他なりません。
本を書くような人は、あらかじめその分野の隅々まで精通していると思うかもしれません。確かにそういう人もおられるでしょう。
しかし、私の場合は前述の通り、エンジニアとしての非凡さや卓越した技能はありません。ましてや、教養のバックグラウンドは高卒レベルです。そのため、何を書くにしても逐一調べる必要があるがため、その中で調べる技術が磨かれていったのです。
ここでは、私が本を書くという経験によって育まれた、質の高い情報の調べ方を紹介していきます。なお、ここで紹介する方法は次の前提条件がありますので、留意して下さい。

  • 主に自分の分野であるソフトウェアの視点からの方法です
  • 日本語の書籍がまだ出ていないような分野を調べる方法です
  • 最新情報を幅広くキャッチアップするための方法ではありません
  • 特定分野の情報を、書籍に書けるレベルまで調べ尽くすための方法です
  • その上で、できる限り最短期間で回答を得るための方法です

基本的な調べ方

実際に何かを調べる時、どうやって調べているのでしょうか?何か特別な方法があるのかといえば、全くそんなものはなく、皆さんと同じようにGoogleを使ってWebで検索しています。
Googleは大変優秀です。日々進化していると実感しています。またWeb上にはどんどん新しい情報が溢れており、Googleはそれらを綺麗にスクリーニングしてくれています。お陰で、私が本を書く上で必要とする情報に限れば、Webから見つけられない情報は基本的にはありません。
しかし、Webには情報が多すぎたり、正しさの証明が難しいという問題があります。そこで、重要となるのが、情報の正確さを即座に見抜く力であり、それこそが最短で答えを得る結果に繋ります。

ノイズでしかない日本語の情報

少し過激な言葉になりますが、誤解を恐れずに言えば、ある一定の知識水準を越えると、日本語の情報は、Web検索においてノイズへと変化します。
そのため、私はGoogleの設定でデフォルトの検索言語を英語にしています。また、検索に使用するキーワードもアルファベットのみを利用することで、日本語の情報に極力ヒットしないように気をつけています。
こうすることにより、Googleの検索結果のランキングを正常化しています。これだけで検索精度が倍以上になるでしょう。

なぜノイズになるのか

なぜ日本語の情報がノイズになってしまうのでしょうか?私はこの答えとして、以下の3つの原因があると考えています。

  1. 日本語が一次情報ではないことが多い
  2. 情報発信者、量が英語に比べて勝負にならないほど少ない
  3. 英語の更新頻度が早すぎて、日本語情報のアップデートが追いつかない

奇しくも先日、フィンランドベーシックインカムが実施されるという誤報が日本で出回りましたが、これも上記の理由が当てはまります。
もし、この誤報を鵜呑みにして立場のある人が、メディアで情報を発信する人間がいたとすれば、社会に対して悪影響を及ぼす危険性があります。つまり、この件から見ても、日本語のみで正確な情報を得ることの難しさ、正確性がいかに重要であるかの双方を理解できるかと思います。

質の高い情報を得るための方法

まず、私が情報の質を図るための指標があります。それは、次のような式になります。

これは、まず、Google 検索ランキングに信頼を置きます。その上で、信頼性の確保が難しい場合は、ページに対するレビューを評価します。それでも難しい場合は、その情報を誰 (個人・団体は問わない) が発信したのかによって判断するというものです。
つまり、最短で質の高い情報にたどり着きたければ、この逆を辿れば良いということになるわけです。
要するに、調べたい情報があれば、まずすべき行動は、その分野のキーマンを調べ上げて把握することであり、調査したい内容があれば、キーマン周辺からの発言を調べ上げれば良いのです。

より具体的な方法

ここからは、より具体的な方法について紹介していきます。例えば、とあるOSSについて調べたいとします。その場合の検索方法は次のようになります。
まずOSSの場合、最も真実といえる情報はソースコードにほかなりません。もし、他になにも情報がなければ、ソースを読むほかないでしょう。
しかし、物事を早く理解したいときにソースコードを読むのは、さすがに支払う時間的コストが多すぎます。そこでまず当たるべきは、オフィシャルドキュメントになるのです。
最近では、普及を促進するためにもソフトウェアの公開に合わせて、かなり詳細なドキュメントを用意してくれていることが多いため、こちらを読めば、ソースコードを読むよりも圧倒的に早く回答にたどり着くことができるため、調査が非常に楽になってきています。
ただし、当然ですが、バージョン合わせてアップデートされているかを必ず確認する必要があります。開発中やリリース前のソフトウェアの場合は、仕様が変更されているケースがありますので、特に気をつけておきましょう。
なお、ドキュメントによっては日本語が用意されているものもあります。ただし、私の経験上、多くのドキュメントは残念ながらオリジナルの英語と比較した場合、古い情報となっているケースがほとんどです。そのため、有志の方には申し訳ありませんが、日本語の情報が間違っていた場合に払うコストを考えれば、最初から英語を読むべきであることは言うまでもありません。
もし、日本語と英語のドキュメントがあれば、私の場合は英語が真であり、日本語は偽と捉えています。つまり、日本語で得た情報は、英語による証明が得られなければ、偽であるという逆説的証明になるわけです。
ドキュメントを見ても欲しい情報が得られなければ、スピードを考えた場合、次はGitHubのイシューから調べます。ここで当たりをつけた上で、ソースコードを読めば、やみくもにソースコードを読むのに比べて、効率よく調査できます。
それでも調べられない情報は、覚悟を決めてソースコードを読むことにしています。

おわりに

最後にこの記事を書いたモチベーションについて述べて締めたいと思います。
本文でも似たようなことを書きましたが、最近、何かを調べものをしているとき、次のことを強く感じました。

  • 技術の更新頻度が年々加速しており、日本語によるキャッチアップに限界を感じた
  • 日本語で信頼性の高い情報を発信できる人は限りなく少ない
  • そんな一握りの日本人もキャッチアップに忙しく、情報のアップデートは困難を極めている

これらは、総じて技術書の書き手が依然として不足しているということにほかなりません。
私は正確で質の高い情報を日本語で伝えることは、金銭では代えられない価値があると信じています。また、日本人エンジニアの総量として、情報の量だけ見れば、以前より確実に増えていると思います。
しかし、量が増えた結果、エビデンスのある情報の割合は、相対的に減少傾向にあると感じています。その結果、情報ノイズの割合が増加し、日本語で正確な情報を掴むことが困難になってしまいました。
情報は無いよりも、有るにこしたことはありません。しかし、ある一定水準を越えると、そうした情報の中から確実に正確な情報を見つけられる技術が必要となってきます。ただ、そういった技術について語られた文章はあまり多くないと思ったので、今回、自分の方法についてまとめてみた次第です。
確かに英語で情報を調べるのは、最初のうちは辛いかもしれませんが、個人的にやってみた経験から言えば、やれば慣れるものなので、覚悟を決めることが大事だと言えるでしょう。