英語でGoogle検索なんて無理！なんて思っているエンジニアのための英語スキル（少しずつ）向上法

個人的に、エンジニアは英語できた方が楽だよね[^1]と常々思っているので、それに関する記事をさっくり書いてみる。

結論、質問を文で書けるように(最低でも理解てきるように)なると、英語での検索ははかどりますよ。そのために、Interview Questionというのを活用してみるといいんじゃないかなというお話。

# 日本語での検索と英語での検索の違い

これ、ずばり、日本語は単語の羅列で検索されることが多いのに対し、英語だと文で検索することの方が多い（ということに、このまとめ記事を見て初めて気づいた）。

https://togetter.com/li/1943242

この記事でも紹介されているけど、[実際に検索屋さんの日本法人は、そういう日本特有の検索方法への最適化をほどこしているそうだ](https://www.nikkei.com/article/DGKKZO64224640Q2A910C2MM8000/)。そう、我々のやり方は、ユニークでオリジナルなのである。逆に言えば、メインストリームなやり方は、別のところにあるようなのだ。

振り返ってみれば、私自身も英語で検索する際、文での検索がメインだ。というか、サジェスチョンで勝手に文が提案されてくるので、打ち込むのは単語でも、結果として文で検索していることも多い。

例えば、Javaでの抽象クラス(abstract class)とインターフェース(interface)の違いを調べてみよう。

```
// 日本語での検索ワード
Java　抽象クラス　インターフェース　違い
// 英語での検索ワード
what is difference between abstract class and interface
```
で、日本語の結果はこんな感じ。

![Screenshot 2022-10-14 at 08-48-49 Java 抽象クラス インターフェース 違い - Google Search.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2782225/bba0de9b-f8a6-b5fb-f802-4b1d718cb606.png)

に対し、英語での結果はこんな感じ。

![Screenshot 2022-10-14 at 08-47-55 what is difference between abstract class and interface - Google Search.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2782225/df5584a2-33dd-5928-81ee-0217e2ef6c3b.png)

ちなみに、英単語の羅列で検索した結果はこんな感じ。

![Screenshot 2022-10-14 at 09-06-01 Java abstract class interface difference - Google Search.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2782225/88185463-9ffc-b377-5aed-15954851aea8.png)

英語での検索結果に関してはこれを見ただけでは、正直、大差ないようにもみえる。今回の例のような、一般的で、こみいってないことについて知りたいという場合は、その違いは致命的なものではなさそうだ。一見。

でも、"People also ask"の部分を見てもらうと違いがある。
英単語で検索した場合は、Javaのバージョンへの言及を除いて、ほぼほぼどれも同じようなことを言っている。それに対し、英文で検索した場合は「どちらがよいか」という、一歩踏み込んだアプローチの紹介がある。つまり、英文検索結果の方が、少しだけではあるが、深い世界に誘ってくださってるのだ。

これが本領発揮するのは、もっと詳細なことを検索したい時だ。エラーの原因とか解消法を知りたい時などは、文で調べないと、いい記事は出てこないと思う。少なくとも、私の経験上。

---

Googleのサジェスチョンの手助けもあるので、自分で完全な文を書ける必要はない。それでも最低限、提案されている文が正しいモノなのかを判断できる必要はあるだろう。

ただ、いきなり英語の文と言われても、困惑する人も多いのだろう。英単語知らぬ分らぬ存ぜぬ！オブジェクト指向はObject-Shikoジャダメナノカー！？[^2]

分かるよ、気持ちは分かる。でもちょっとだけ、落ち着こう。

# Intervew Question + 技術名 なんかで、ググってみることから始めるといいかもしれない

ここで行いたい提案としては、手始めとして、エンジニアの面接練習用のコンテンツとして用意されている問答集をのぞいてみるといいかもしれない、ということ。Interview quesitonというやつである。

検索キーワードは
```
interview question Java abstruction
```
とか。これくらいは単語検索でおっけー。

https://www.techgeeknext.com/java/java-abstraction-interview-questions

出てくるのは、基本的には「面接用のカンペ」のようなもの。面接練習用に使われるものだ。

このように面接できちんと答えられるように、ということ前提で書いてあるので、本当にコアな部分だけを、簡潔に書かれているものが多い。アメリカンによるアメリカンのためのアメリカンな例の羅列[^3]とかもなくて、シンプルな表現が多い印象。

逆に言えば、深く知りたい！という場合には全然適していない。その場合は、この質問で出てきた用語なり単語なりを軸に、ちゃんとドキュメント読むなり、検索してみたりした方がいいと思う。

でも既に技術的知識がある人であれば、あーだいたいこういうこと言っているんだなと、なんとなくの見当はつくはず。その中でちょくちょく見たことのない単語・なんか違和感を感じる単語を見つけることもあるだろう。implement?ああ、実装か。design?ああ、設計か。

こういう単語や、それにまつわる言い回しを少しずつ目に入れて、頭に慣れさせることで、英文に親しんでみるのだ。

---

結局はこうやって地道に積み重ねていくのみなんでしょう。私自身、暗記苦手の語学苦手人間なのですが、ちょっとずつ身に着けていくしかないんだなーと日々己に言い聞かせていますよ。

[^1]: 何事もまずは一次情報にあたるのがベストだと思っている人間なので余計。プログラミング言語やツールに関しても、まずはドキュメント見て、分からなければ追加で検索して、とやるのがいいと思っている。そしてこのドキュメント、日本語だと1.5次情報くらいになってしまう可能性がゼロではないので、やっぱり本家本元の言語、すなわちたいていの場合は英語、で読むのがいいのでは、と思っている。
そもそも、スキルと経験不足で、イマイチかどうかの判断もつかないから、こうしている部分もあって。したがって万人がそうすべき、とかそういう話がしたいわけではない！更に日本語版がイマイチとかそういう話でもない！
[^3]: 偏見かもしれない自覚はある！
[^2]: ダメですね。Object-orientedですね。