さまざまなQ&Aサイトや開発フォーラムで、認めたい以上の時間を費やしました。 そこで何千もの質問に答えました。 原則として、質問はそのようなフォーラムの境界内に留まります。 しかし、質問が個人の受信トレイに流れ始めた後、私はそれについて書くべきだと思いました。
これらの電子メールとメッセージは、通常、私が今まで話をしたことのない人からのものです。彼らはすべて、私が「質問に答えているか、問題を解決している」ことを知っています。 通常、次のようになります。
- {こちら}リンクに質問を書きました。 間違いを修正できますか?
- こんにちは、こちら{link}でお問い合わせください。
- 今日の締め切りは5日で、深刻な宿題があり、それに対処することはできません。 こちらからダウンロードして{link}、それまでに機能させていただけますか?
これらは、私がよく受け取る実際のメールの全文です。
私は助けを求める人々に対して何もありません。だからこそ、私はQ&Aコミュニティに参加しています。 事実、特に悪い質問など、多くの間違った方法で助けを求めることができます。
ここでは、そのような直接の要求が未回答のままであるいくつかの理由を示し、質問への回答を得るために進む方法を書き、問題が悪いことが判明しないように質問を送信する前にとらなければならないいくつかのステップを提示します。
回答を得る方法
Stack Overflowなどのさまざまなフォーラムやサイトには、 多くの未回答の質問があります。 主な理由:これらの質問のほとんどは単に悪いです。
質問したい場合は、次のリストを試して、あなたの質問が片付けられない存在にならないようにしてください。
- 質問をグーグルで検索しましたか? 真剣に。 エラーに関する正確なメッセージをコピーして、結果を読むのに数分かかります。 これにより、直面しているすべての問題の90%以上が解決されます。
- まあ、Googleは助けにはならなかった。 次は? 私はあなたを信じません。 さらに検索し、検索条件の一部を変更して、特定のケースに固有のすべて(たとえば、プロジェクトの名前など)を削除してください 。
- 同僚に聞いてみませんか? チームとして働く場合は、助けを求めてください。 多くの場合、2つの頭は1つよりも優れており、通常、インターネットを介してよりも誰かの隣に座って答えを見つける方が簡単です。
- 同僚はいませんか? アヒルの子はどうですか? これはばかげているように思えるかもしれませんが、多くの場合、アヒルの子の方法は問題を側面から見たり、さらには解決するのに役立ちます。 問題を誰か(または何か)に正確に表明し、何かがあなたの中でクリックされるかどうかを確認してください。 これは馬鹿げているように聞こえますが、結果がどれほど効果的であるかに驚くでしょう。
- 「ニッチ」ポイントで確認することを検討してください。 該当する場合は、GitHubリポジトリで特定の問題または質問を確認することを検討してください。 または、一部の「ニッチ」フォーラムまたはサイトで検索機能を使用します(たとえば、ASP.NETフォーラムの「MVCにメールを送信する」)。 ちなみに、これらのサイトはインデックスに登録されていない可能性があるため、検索エンジンの結果で見つけるのは困難です。
- まだ何もありません。 どうする まだ運が悪ければ、おそらくどこかで質問する時間です。 繰り返しますが、ほとんどの場合、同様の問題はあなたの前に解決されましたが、これは後で発見されるでしょう。
(正しい)質問をする方法
それで、あなたはネットワーク全体を見ました。 想像できる検索用語と同義語の組み合わせごとに無数の検索を実行しましたが、まだ何もありません。
おそらく質問する時が来たのでしょう。 このプロセスで覚えておくべきいくつかのことを見てみましょう。
- 見出しがすべてです! あなたの質問の説明的で有益なタイトルは最も重要です。 ヘッダーは主な問題を伝える必要があります(たとえば、「Help!GridViewが機能しません」ではなく、「ページング時のASP.NET Telerik GridViewでのnull参照例外」)。 あなたの見出しが十分に説明的であれば、彼らはそれを読みます、そして、より多くの人々がそれを読みます、それは答えを得る可能性が高いです。
- ネットワークを広すぎないでください。 アプリケーション全体とその一般的な目的を説明する必要はありません。 よりシンプルに、1つの問題または1つのユースケースのみに焦点を合わせます。 フォーカスが高いほど、結果が得られる可能性が高くなります。
- より具体的に。 できるだけ具体的にしてください。 「何かが機能していない」と言うだけではありません。 何を達成しようとしているか、何を試みたか、どのような結果を期待しているのかを正確に示してください。
- ...しかし、あまり多くはありません。 詳細を含めることは重要ですが、無理をしないでください。 HTML、CSS、Javascript、SQL、その他のコードの巨大なチャンクを挿入する必要はありません。スクロールして手根管症候群を獲得できます-これは怖いです。 繰り返します-簡単かつ必要な詳細のみ。
- 間違いで推測しないでください。 質問がエラーに関連している場合は、システムからの正確なエラーメッセージをオンにし、それを使用しないでください。「何かが発生または推測されたようです」。 特異性が重要です。 コンパイルエラーとランタイムエラーはまったく異なる場合があるため、読者に潜在的な読者に何がいつ起こるかを知らせてください。
- 再生中ですか? その後、問題を再現します。 問題を簡単に再現し、重要なこととして共有できる場合は、それを試してください。 問題を解決するために必要な手順を簡単に説明するか、オンラインのコード共有ツールの使用を検討してください。 たとえば、 JSBinまたはStack Overflowスニペットを試して、似たような例を作成してください。
- 質問を2回読んでください。 送信ボタンをクリックする前に、緑色になっている可能性が高いので、質問を読んでください。 その後、もう一度お読みください。 何かが正しく見えたり間違っていたりしない場合は、やり直してみてください。 主に、あなたの質問が理解できるかどうかを判断することに焦点を当て、完全に見知らぬ人にとっても理解できるべきであることを忘れないでください。
- すべてのステップが遅れていますが、問題はありますか? それからあなたの質問をして、最善を願ってください。 問題を議論するとき、あなたが正確に説明したことをすぐに発見しますが、これは十分ではありません。 答えに従い、必要に応じて編集してください。
常に数時間画面を更新しましたが、それでも何もありませんでしたか? 締め切りが迫っていると、次のセクションで焦点を当てていることに気付くことができます。あなたの問題は彼らの問題ではありません。
あなたの問題は私の問題ではありません
失礼に聞こえるかもしれませんが、そうです。
あまりにも頻繁に、質問やリクエストが緊急性に満ちています。数時間で締め切り、プロジェクトは近い将来に提供される必要があります。 私があなたをどのように助けたいとしても、一日に数時間しかありません。 私には独自の条件とプロジェクトがあります。 そして、私は開発以外の人生も持っています。
「HELP!」、「URGENT」、またはこの正規表現[A-Z-!]+
一致する他のフレーズなど、質問の緊急性に関連する表現は避けてください。
おそらく、教育システムは、「後のために」延期することは恐ろしいことであると教えてくれました。 プログラミングでも同じことが言えます。 そのため、タイムリーに作業を開始すれば、(自分で、または外部の助けを借りて)発生した深刻な問題を解決するのに十分な時間が得られます。
誰もがこのレッスンをある時点で学ぶ必要があります。通常、急いで問題の解決を加速することはありません。 十分な時間を明確に質問し、適切なセクションに配置して、読者が質問に慣れて回答できるようにします。
専門家になる(馬鹿じゃない)
締め切りと緊急性は深刻なストレスを引き起こす可能性があります。 専門的にソフトウェアを開発した人は誰でも、上記の声明が控えめな表現であることを知っています。
しかし、ストレスは馬鹿のように振る舞う言い訳にはなりません。 私は計り知れないほど探究し、助けようとした人を単に破壊するのを見ました。 大文字で「これはうまくいきませんでした」または「これは馬鹿げた答えです」と叫ぶことはあなたに何の利点ももたらさず、もちろん、見知らぬ人を助けるために戦場にいる人を誘いません。
あなたがこれを完全に自発的に行うのを助ける人々を覚えなさい。 彼らはあなたが困難な状況を克服するのを助けるために時間とエネルギーを費やします。 答えを大文字のキーボードに切り替えるときは忘れないでください。
人々はごく少数の疑わしいインターネットスコアであなたの質問に答えるのに時間を費やすので、プロセス全体を通してそれを念頭に置いてください。
質問者が誰かのメールアドレスを見つけて、フォーラムに尋ねるのではなく直接人々を襲撃することを決定するとき、それは特に悪いです。
(あまりにも)個人的なコミュニケーション
手始めに言います:誰かが助けを必要とするとき、私は私のメールへの手紙に反対ではありません。 私は喜んで私の事柄から自分自身を引き離し、あなたが連絡したらあなたに手紙を書きます-しかし丁寧に。
ほとんどの場合、すでにフォーラムまたはStack Overflowに投稿されている質問へのリンクを送信します。 通常、リンクをクリックすると、すでに解決策があります。 そうでない場合、私は時間がかかると私はできる限り助けようとします。
答えるのがそれほど楽しくなく、答えに値することはめったにない別の文字のファミリーがあります。 これは、上記で作成した規則に従っていないためです。
誰かに直接連絡するときの状況は少し異なります。 いくつかのアプローチは同じままですが、ここには独自のキーポイントがあります:
- もう一度-あなたは何をしましたか? 私の問題を解決しようとするあなたからのヒントがまったくない場合、それを解決する理由も見当たりません(上記の「あなたの問題は私の問題ではありません」を参照)。
- あの人は? あなたが連絡している人があなたを助けることができることを確認してください。
- 怒らないでください。 問題に遭遇することはがっかりする可能性があります、私を信じて、私はそれを理解しています。 私が問題を作成した人であるかのように、私に電子メールを送信して出口を与えることにした場合、困難が生じます。 だから答えを得られないのはとても簡単です。
- 我慢してください。 フォーラムの場合のように、もしあなたが私に質問を送ったとしても、それに答えるためにすべての仕事をやめません。 私がそれを見る機会を得たとき、私はそれをします-しかし、5分ごとに私のメールを更新しないでください。
私は誰かが直接助けを求めることを思いとどまらせたくありません。 ただし、最初に他のリソースを使い果たしていることを確認してください。 次の文字「jQueryが機能しない理由」を読みたくありません。
まとめ
この投稿があなたの質問についてのうなり声のように見えないことを願っています。 また、私たちが彼について具体的に話していると誰にも思わせたくない。 この投稿は、あなたが悪い質問をしないようにするのに役立ついくつかのアクションについてであり、その結果、間違った答えや不在につながります。
リソースフルネスは、開発者の最も重要な能力の1つです。 開発者が自分で答えを見つけて問題を解決できる場合、おそらくうまくいかないのではなく、タスクにもっと時間を費やすでしょう。
検索エンジンにない問題が何度も発生し、解決策があなたを逃れ続けている場合は、質問する必要があります。 あなたが十分に考えすぎていることを確認し、本当にあなたの質問を答えに値するようにしてください。
そして、質問は「なぜjQueryが機能しないのか」ではない方が良いです。