Google 力とは何か?どうやって育てるか?

ある記事を見ていて、ふと Google 等の検索エンジンを使いこなす能力 (以降、これを「Google 力」と呼ぶ事とする)と言うキーワードが頭に浮かんだので、今回はこれについて検討してみます。

Google 力の定義

Google 力の定義についてもいろいろと議論の余地があると思いますが、今回は Google 力を以下のように定義します。

調べたい事柄を高々 5 個の単語で表現できる能力

実際には 5 個でもかなり多く(入力する単語数が多いほどノイズが増える傾向がある)、せいぜい 3 個程度かなと思います。検索エンジンで何らかの調べ物をする時には、いかに自分の調べたい事柄を 簡潔な文章ではなく単語で 言い表す事ができるかで、検索に要する時間が大きく異なってきます。

「ググれば一発」は本当か?

初心者(その領域に精通していない人)が何らかの質問をしたときに、しばしば「そんなのググれば一発だろう(ググレカス)」と言う反応を見かけますが、注意しなければならない事柄は 初心者にとっては、必ずしもググれば一発ではない と言うことです。(精通している側にいる場合の)私達が普段、ググれば一発で自分の欲している検索結果を得られるのは 検索に使用すべき単語を知っているから と言う要因が大きいように思います。そのため、調べる事柄を単語で言い表せない場合、検索に要する時間が劇的に増加してしまいます。

このような事は、以前に 10 なら 10、 11 なら 20 になる関数を作りたい - IT戦記 と言う記事を閲覧している際に感じた事があります。プログラミングの世界では(恐らく C の影響だと思う)、数字を切り上げる関数を ceil と名付ける習慣があります(切り下げは floor)。そのため、「10 なら 10、 11 なら 20 になる関数を作りたい」と言う要求があった際に、ceil と言う単語を知っているかどうかで解決するまでに要する時間はそれなりに変わってきます。

重要なのは、floor/ceil がプログラミングの世界独自(?)の習慣である事です。例えば、和英辞典で「切り上げ」を引いた としても ceil は候補に挙がりません。和英辞典の結果からでは ceil ではなく round と言う単語を検索単語に選ぶ可能性が高く、この場合、ceil を検索単語に選んだ場合よりも問題を解決するために要する時間は長くなります。

実際問題として、「切り上げ」問題に関しては round でググったとしてもそれなりに欲しい情報にヒットするのでそこまでの差にはなりません。しかし、扱う問題によってはこの 検索単語の選択の違い が解決に要する時間を大きく左右します。しかも、その適切な検索単語は調べる事柄が属している領域の習慣に依る所が大きいと言う事もこの問題を難しくします。

Google 力をどのように育てるか?

今回の記事を考える元となったものは、以下のコメントでした。尚、以下に記述する事は自分の Google 力を育てる方法ではなく 他人 の Google 力を育てる方法です。

あと、中間言語を介した自然言語処理については「ピボット」でググッてください。

http://d.hatena.ne.jp/akiradeveloper/20100203/1265164512#c1265188137

この助言の仕方は非常にうまいなと感じました。何らかの疑問を投げかけられた際に「それはググれば一発」と答える人は数多く見かけますが、先にも述べたように、疑問を投げた人にとっては必ずしも「ググレば一発」とは限らない為、問題が解決しない事が多々あります。そこで、質問者が疑問に感じている物事に対して 検索するのに適切な単語だけ を提示すると言う方法は、質問者が現時点で抱いている問題への解決方法に加えて Google 力(もっと言うと「自力で調べる力」)を育てられて良いように思います。

ググるな危険:プログラマで、生きている:エンジニアライフ で「ググるの禁止」と言う記事が書かれ、一時期大きな反響を呼びました。個人的には、これまでに書いた理由などから入社直後(≒初心者)においては、分からない事があればググるより先に上司・先輩に質問しろと言うのは一理あると思います。ただし、上司・先輩は受けた質問に対して愚直に答えるだけでは、なかなかその(分からない事を上司・先輩にまず聞く)段階を抜けさせる事ができません(そのような事は初心者が頑張るべき問題、と言う主張も理解はできるが人によっては無茶振りにもなりかねない)。そのため、質問を受けた際の(上司・先輩の)答え方に関しては工夫する余地が残っているように思いました。