42
38

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

筋肉エンジニアAdvent Calendar 2017

Day 14

まだ海外の質問サイトに英語で投稿してないの?

Last updated at Posted at 2017-12-14

ググっても人に聞いても全くわからない問題に出くわすことがあります。
そんな時は、海外の技術系サイト(例えばStackOverflowなど)に英語で聞いてみよう!というのがこの投稿のメインテーマです。
「海外の技術系サイト」に質問を投稿するメリットは明らかで、回答者の母数が明らかに違うからです。様々な視点からたくさん、時間的にも早く答えが返ってきます。昼間だろうと真夜中だろうと関係ありません。

ただ、周りの人に聞いてみると「英語はなんとか翻訳しながら読めるけど、書くのはちょっと。。」とためらっている人が多い印象です。
僕も別にそんなに得意なわけではないですが、積極的に質問して蓄積した「コツ」のようなものをまとめてみたいと思います。

一番大切なのは、「伝えたいことは明確か」ということ

英語で投稿しようと考えると、「今頭にある日本語をどうやって英語に直そうか」となります。
しかしこのやり方だと、泥沼にはまっていきます。何言ってるのかわからないし、何を伝えたいのかもわからなくなってくるのです。

だからまずは、質問したいことつまり疑問点を素直に整理してみることが大切です。
これは日本語で質問しようとした時も当たり前にするべきことですが、英語となるとその意識が綺麗に消えてしまうので(笑)あえて意識しましょうという話です。

疑問点をフォーマットに従って簡潔にまとめる

  1. 何をしようとしているのか(取り組むテーマ)
  2. 何が起こったのか(疑問点)
  3. 何を試してみたのか(経緯)
  4. 何を知りたいのか(質問の論点)
  5. 結びの言葉

「こういうプログラムを作っていて、次のようなコードを書きましたが、このようなエラーが起きます。こうしてみても同じでした。何が原因なのでしょうか?宜しくお願い致します。」

つまり、このくらい簡潔な文章になるようにします。

伝えたいことを英語に変える

英語の表現のパターンは色々ありますが、あえてそれぞれ1つずつを記します。大切なのは自分の伝えたいこと、つまり疑問点を明確に表現することであり、細かい英語の表現にそこまでこだわる必要がないからです。

1. 何をしようとしているのか

I'm trying to <しようとしていること>.
〜しようとしています。

2. 何が起こったのか

The problem is ~ <起こったこと>.
〜が問題です。

3. 何を試してみたのか

I tried <試して見たこと>.
〜を試して見ました。

4. 何を知りたいのか

I want to know <知りたいこと>.
〜を知りたいです。
How can I <やりたいこと>?
どうすれば〜できますか?

5. 結びの言葉(省略可)

Thanks.
よろしく!

例えば質問してみた

とても単純ですが、「RailsでUserクラスのインスタンスにインスタンスメソッドを当てたがエラーが出た」という例で質問を作って見ます。
(実はインスタンスメソッドではなくクラスメソッドを定義していたというオチですが、それは質問しているのでわかっていないという前提で)

以下質問

I'm trying to call a method for User instance in Rails.
(RailsでUserのインスタンスに対してメソッドを呼ぼうとしています)

class User < ActiveRecord::Base
  def self.get_full_name
    "#{first_name}#{last_name}"
  end
end
class UsersController < ApplicationController
  def show
    @user = User.find(params[:id])
    @name = @user.get_full_name
  end
end

The problem is I got this error.
(以下のエラーが起こったことが問題です)

undefined method `get_full_name' for #<User:0x007f8daae86388>

I tried to fix the method content like this, but I got the same error.
(メソッドの中身を変えるということを試しましたが、同じエラーが出ました)

def self.get_full_name
  first_name + last_name
end

I want to know the reason of this error.
How can I solve this error?
(このエラーの原因を知りたいです。どうしたら解決できますか?)

Thanks.
(よろしく!)

このようにシンプルに伝えれば、「定義しているのはクラスメソッドだよ」とか「クラスメソッドとインスタンスメソッドの違い」など詳しく教えてくれる人が現れます。

回答をもらうために工夫できること

コードとかエラーメッセージとかを確実に載せる

基本的にコードで会話できるのがプログラマーです。きちんとコードやエラーメッセージを載せられたら、英語(文章)は最低限で済みます。

なんでもかんでも書こうとしない

時折、出力されたログを全部ペースとしている質問を見ます。「なぜだめなのか」というのがわからないのでそれも仕方ないことかなとも思いますが、とても見にくいです。回答者は情報が足りないと感じたらきちんと質問をしてくれます。ログはどうか?ここの設定はどうなっているか?などです。その質問にきちんと答えることで、情報を補って行くようにしましょう。

最後に

こちらの記事を参考にさせていただきました。
海外の技術系掲示板に英語で質問する際の文例・定型文

自分が上手く質問できないなと感じていた時に参考にさせてもらった記事です。英語の例文なども多くあります。

海外の技術サイトへぜひ積極的に質問してみてください。
よいエンジニアライフを!

42
38
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
42
38

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?