khurata’s blog

khurata’s blog

★★★回答を寄せ付けない質問の仕方★★★

(もともと「Yahoo!知恵袋」の「知恵ノート」だったものを転載しています)
(最終更新日時:2017/4/20)投稿日:2013/7/31

はじめに

 「知恵袋」という、誰でも無料で使える質問の機会と仕組みが、せっかく有るにもかかわらず、「コンピュータテクノロジー」カテゴリでは、まるで回答して欲しくないかのような「質問」を、しばしば見かけます。 

 せっかく、時間を使って質問を投稿したのに、有効な回答を得られなければ、人生の無駄遣いですし、そうした人がたくさんいるのならば、これは社会全体の、壮大な無駄です。

 この「知恵ノート」では、やや厳しい口調で、そうした「質問」の何がまずいのかを書き下していきます。 口調は本当に厳しいですが、それは人生を、命を無駄にして欲しくない、との一心からです。 ご容赦ください。

 

誤字脱字が目立つ・文意が読み取れない

 「知恵袋」の質問一覧をざっと見ただけでも、「プラグラミング」、「無線RAN」、「C原語」、「コマンドプロント」、「Peal」、「アクションスプリクト」、「swith文」、……誤字脱字が大量に見つかる。 また、質問本文を見ても、「てにをは」の使い方がおかしかったり、何を質問したいのかが読み取れない投稿文がたくさんある。

 落ち着いて自分の投稿を見直す事すら出来ない人が、一字一句の間違いも許さない言語を使ってプログラムを満足に書くことなど、出来るわけがない。 早めにあきらめて、時間を他の事に使うほうが良い。 人生は有限なのだから。

 出来る見込みが薄い事にコストを少しずつ費やすのは、競馬やパチンコの大当たりを目指して時間とカネを注ぎ込むのと大して変わらない、馬鹿げた賭けである。

 質問を投稿する前に、いったん画面から目を離して、そしてもう1度、見直しましょう。 近くに友人や同僚、ご家族がいれば、読んでもらって指摘を受けるのも良いでしょう。
 また、投稿文をいったんローカルに保存して、数時間~1日経ってから読み直してみるのも良い手段です。 しかも、時間を置くだけで、解決してしまう・分かってしまう事も、案外、多いものです。
(実は、このやり方は、プログラムを作る際にも有効です……人は、自分の書いた文章を客観的に見るという事が、なかなか出来ないものですから)

 

言葉の誤用が目立つ

 「こういうプログラミングを作りたい」とか「ディスクトップ」とか、(コンピュータテクノロジーとは直接関係無い言葉だが)「一応」を「一様」と書いたり、「うる憶え」と書いたり、「延々と」を「永遠と」と誤用している例もよく見かける。

 初心者のうちは、用語の誤用については仕方ないところも有るが、自信の無い言葉は使わない方が良い。 カッコよさそうな言葉を使って、自分を良く見せようとしても、恥をかくだけだ。 どうしても使いたいなら、事前に調べてから使え。
 誤用の多い質問者に何かを教えても、自分で調べる事もせず誤用に誤用を積み重ねるだろう……そう思うと、回答する気も失せる

 

いくつかの質問を1回の質問投稿にまとめている

 しかも、こういう質問者に限って、大抵、質問項目毎に番号を振る事すら満足に出来ていない。 番号が振ってあっても重複していたりして、回答者を混乱させたいだけではないかと思う質問がしばしば有る。
 回答者が使える枠は、最大でもたった4千字しかない。 複数の回答を書けば、その分、1つの回答は薄くなる。 まともな回答が欲しければ、なるべく1投稿1質問にしろ。

 

「プログラムを作ってください」「わかる方、よろしくお願いします」「教えてください」「助けてください」

 これは質問ではなくて命令や依頼であり、違反投稿。 質問 question と命令 order と依頼 request の区別も出来ない人が、プログラムを作る事など出来るわけがない

 そもそも、他人様に命令したり依頼したりするからには、相応の対価を支払うべきだし、支払える金額を明示すべきだ。 見知らぬ他人が歩き回る街頭で、「タダ働きしてください」と大書した看板を持ってたたずんでいれば、親切な誰かがタダ働きしてくれる……そう思っているのだとしたら、質問者は相当な世間知らずであるか、頭がおかしいか、どちらかである。

 「質問になっていない投稿」は、「知恵袋」における違反投稿です。 質問を投稿する際は、内容が命令や依頼になっていないか、もう1度、よく確かめましょう。 「~してください」「~していただけませんか」という文章は、ていねいではありますが命令形です。
 どうしても、命令や依頼の形にしかならない投稿内容は、「知恵袋」ではなく、別の場所で「依頼」として投稿するか、パソコン教室やソフトハウスなどにちゃんとお金を払ってやってもらうのが良いでしょう。

 

「C言語に詳しい人にお聞きします」「プロの方に質問です」

 こういう質問をする人は、高級料亭や一流ホテルの厨房に行って「これは私の作った手料理なんですが、どこがおかしいのか教えてください」と、平気で言うのだろう。 よほど料理に自信が有ったって、こんな事は普通出来ない。
 このような失礼かつ異常な言動は、門前払いされるのが当然であって、それに付き合って回答を書く人は、相当なヒマ人か、聖人である。 そして、そんな回答を信じられる質問者は、やはり異常な思考回路の持ち主だ。 関わらないほうが良い。

 こういう質問の場合、質問者様の「ランク」「格付け」は、回答者よりも下でありましょう。 自分が「選り好み」など出来る立場ではないことを、きちんとわきまえて、謙虚に質問するのが良いでしょう。
 また、この世間では、「出来る人」ほど謙虚であり、ろくに実力の無い人ほど自分を大きく立派に見せたがる傾向があります。 ですから、「詳しい人」「プロの人」と「名指し」して集まってくるのは、虚栄心に満ちた、実力の乏しい人ばかりになってしまうおそれがあります。 回答の内容も、それなりのものになるでしょう。 つまり、そんな前置きに、害は有っても利は有りません。 書くだけ無駄です。

 

「当方、初心者です」「分かりやすくお願いします」「難しい言葉は使わないでください」

 初心者であることは単なる言い訳に過ぎない。 素晴らしい回答を書く達人だって、最初は初心者だった。 言い訳をする事は、何も生み出さない。 言い訳をする時間があるなら、その時間を他の事に使え。

 分かりやすく説明出来る事だったら、とっくに誰もが分かっている。 従って、質問する者も現れないだろう。 ある事物について質問している人間が存在するという事は、分かりやすく説明するのがそもそも難しいのだという証明である。
 つまり、そのような事を分かりやすく説明した文は、はっきり言って嘘である。

 たとえば、オブジェクト指向の説明で、「人間は哺乳類クラスに属し、イヌも哺乳類クラスに属し……」という類の文言がありますが、これは確かにクラスの説明にはなっているものの、「オブジェクトを設計する事によりプログラムを作っていく」という事は説明出来ていません。 生物の分類が出来るだけでは、造物主にはなれないのです。

「分かりやすい話」を求めているうちは、「嘘」しか手に入らない。 従って、「分かった気分」になる事は出来ても、分かる事は出来ない。 その姿勢を持つ限り、質問者はいつまで経っても初心者のままだ。

 難しい言葉・知らない言葉・自信の無い言葉が出てきたら、自分で辞書をひくか、ネットで検索して調べろ。 他人は質問者の辞書ではないし、質問者は他人様を辞書代わりに使えるほど偉い人間でもないだろう。 難しい言葉を敬遠する質問者は、見知らぬ他人を自分の手足のようにこき使って当然だと思っているのかもしれないが、そんな考えは世間では通用しない。

 なぜ難しい言葉を使う必要が有るのかは https://khurata.hatenablog.com/entry/2019/04/04/024909 を読め。

 

「プログラムはまだ全然分かりませんがゲームを作りたいです」

 見知らぬ誰かから、「ロシア語は全然喋れませんが、ロシアの裁判所で裁判官をやりたいです」と言われたら、どう返せば良いだろうか。

 「ふーん、すごいですね」で終わるか、あるいは親切な人であれば「ロシア語の教室で評判が良いのはここ、司法についてはこの大学が良い、留学にあたって気をつける事は……、ロシア国籍を取るには……」など、色々調べて教えてくれるかもしれないが、前者は質問者の期待には沿えないだろうし、後者は質問者が消化し切れないだろう。

 初心者は、壁の高さを知らない・分からないからこそ初心者なので、初心者が言う・考える事は、本当に夢見がちである。 それを否定はしないが、その夢に至る道のりを、回答者が使える、わずか4千字の枠で説明出来るとは思わないほうがいい。 実際に「使えるモノ」を作るプログラミングは、多くの初心者が予想しているほど、簡単なものではない。

 

「分かりません」「エラーになってしまいます」「こういう課題が出たのですが」「~という処理がしたいです」

 これは質問ではなくて事実の叙述。 違反投稿であるし、回答のしようがない。 あえて何か書くなら「ああそうですか」くらいしかないが、そんな回答は「回答になっていない投稿」として違反投稿になってしまうので、それも書けない。

 課題の問題文だけ書かれた「質問」投稿や、「分からないのですが」「探しています」で終わっている「質問」投稿は、けっこう多く見かけます。 しかし、それはそもそも違反投稿なのです。 質問になっていないのですから。
 「知恵袋」は質問をする場であって、他人の同情を買ったり、自分の置かれた状況を説明する場所ではありません(雑談など、一部のカテゴリーを除いては)。
 何を知りたいのか、何を聞きたいのか、はっきりと「質問」を書きましょう。

 

コンパイルエラーが直らないのですが原因は何でしょうか」

 答えはエラー・メッセージを読めば書いてあるし、そんな質問に付く回答は、エラーメッセージの直訳に過ぎない。 こういう「質問」をしてくる人間は、他人様を「自分専用の翻訳機」としか思っていないのだろう。

 他人の書いた回答を読めるならばエラーメッセージも読めるはずだし、そもそも、そのエラーメッセージは、質問者のプログラムから導き出されたものだ。 質問する時間が有るなら、その時間を使ってエラーメッセージと自分のプログラムを読め

 プログラミングを続けていれば、エラーメッセージは嫌というほど大量に目にする事になるが、その都度「質問」していたら、一生かかってもプログラムなど作れない

 

「英語が苦手です」「英語が分からないので困っています」

 こういう「質問」をしてくる人は、大抵、エラーメッセージの意味が分からない、と訴える(似た例では、Windowsブルースクリーンなどが有る)。 しかし、ほとんどのプログラミング言語は英語で出来ている。 それを書く事は出来るのに、読む事が出来ないというのは、大変不思議な話である。

 もし、「私が言う事は理解してほしい、でも他人が言った事は理解しません・できません」と言っている人がいたら、それは異常な人間だ。 私なら、関わり合いたくない。

 エラーメッセージから目を背けるのは、「コンピュータにプログラムを実行して欲しいけど、コンピュータが訴えている事は理解できない・しない」と言っているのと同じである。 そんな事をしている間は、いつまで経ってもプログラムは作れない

 そこで悩む人は、プログラムを学ぶよりも先に、義務教育を終えるべきである。 もし義務教育中であるならば、英語を学ぶべきである。

 多くの日本人にとっては残念な事ですが、コンピュータは主に米国で発達してきたという歴史的経緯が有るため、コンピュータやプログラミングについて知りたい人は、英語から逃れられません。
 たとえば Linux創始者リーナス・トーバルズフィンランド人であり、スウェーデン語で育ちましたが、Linux をめぐる複雑な技術的議論やソースコードのコメントには、全て英語を使っています。

 

「大至急お願いします」「急いでいます」

 知人・友人・家族ならともかく、お礼の金額すら提示しない他人からそんな事を言われても「知ったことか」で終わりである。
 目の前で倒れている人がいたら、それが誰であっても助けるだろうが、全然知らない人から「急いでいます!助けてください!」というメールやチャットメッセージを受信しても、私だったら、そんなものは単なるスパムとして、一切取り合わず、見ないで捨てる。 こういう質問をする人達は、その差出人を助けに行くかも知れないが

 回答者は、質問者の事情について、何か出来る立場にはありません。 単なる他人なのですから。 いくら切迫した事情を書かれても、何も出来ないのです。 もし、何かをして欲しいなら、代価の支払いを明確にすべきです。 赤の他人であっても、おカネが絡むなら、動いてくれる人はたくさんいます。
 質問者は、事情を書くのではなく、質問を書くべきです。

 

「単位がかかっています」

 学校の建物の外に出て、道行く知らない人に向かって「このままでは単位が取れないので助けて欲しいです」と言う学生がいたら、それは異常者だ。 それをネットで平然とやれる質問者も、同様に異常な人間であり、関わり合うべきではない。

 取れない単位は落とせ。 この世界は、何の才能も資本も無い「ただの人」が、無償で何かを取れるようには出来ていない。 不正を働いてまで取りたいなら、以後、泥棒や詐欺を見ても自分と同類だと思え。
 不正をせずに、どうしても落としたくないなら、学友か教員にすがりつけ。 教員から断られたら、その教員の怠慢を上部に訴えろ。 その結果、「怠慢なのはあなたです」と言われたら、受け入れて単位を落とせ。 それがいやなら自力でやれ。

 学校とはそういう所であって、それが出来ない者・それをやりたくない者は学生である資格が無い。 学校を去って他の生き方を探せ。 出来もしない・やりもしない事にかかわっている間、質問者は人生と時間を無駄にしているのだ。

 

コンパイルは通るのですが」

 コンパイルが通るのは「文法的な間違いが見つからなかった」という事に過ぎない。

 「青色の速度が暑かったら、外側の電波を食べなさい」という文章は、命令文として文法的には間違っていないが、こんな命令をされた人は、どうすれば良いと言うのか。

 コンピュータは人間と違って、どんな命令でも忠実に実行するので、意味の分からない命令をされると、意味の分からない動作をする。 そして、そんな意味の分からない命令文章(プログラム)を見せて「動きません」とか「何がおかしいのでしょうか」と質問されても、それに回答する事は非常に難しい。 回答できるのは、超能力者か、神しかいないだろう。

 

「うまく行きません」「正しく動きません」「思った通りに動かないのですが」

 ある人が絵を描いて、「うまく描けませんでしたが、どうすれば良いでしょうか」と、その絵を見せて質問してきたとする。 しかし、何がどううまく描けなかったのかは、描いた人にしか分からない。 一見してド下手な絵であっても、わざと狙って下手に描いたのかも知れない。

 また、別のある人が料理を持ってきて、「うまく味付けできませんでしたが、どうすれば良いでしょうか」と聞いてきたとしても、聞かれた人にとってはすでに充分美味しい料理かも知れないし、そもそもどういう味付けを目指しているのかが分からなければ、答えようが無い。

 プログラムも同様で、ある人が作ったプログラムを他の人が見ると、「何をするプログラムか」は分かるが、「何をしたいプログラムか」は分からない。 「うまく行かない」と言うだけでは何も伝わらない。 やりたい事が伝わらなければ回答のしようがない。

 プログラムは、書いた通りに動くものであって、思った通りに動くものではない。 そのプログラムが、そのようにしか動かないのは、そのように動くプログラムを質問者が作ったからである。 プログラムの動作と、プログラマの意図には、全く関連は無いのだ。

 だから、質問者は、何をしたいのか、どうなって欲しいのか、それに対して現状どうなっているのかを、説明し尽くさなければならない。 やり過ぎなくらいていねいに説明して、やっと回答らしい回答が得られると思え。
やり過ぎなくらい説明できれば、自分で気付いてしまうという事も案外多い

 

「そんな事は聞いていません」「~という回答は要りません」

 落ち着いて考えてみてほしい。 「そんな回答しか付かない」のは、「そんな質問をしているから」だ。 人は、美味しい食べ物があれば食べたいし、楽な方法が有ればそれをやりたい。 人の言動には理由があるのだ。

 その質問文が存在したからこそ、その(期待外れな)回答は生まれたのである。 期待外れの回答の原因は、その質問なのだ

 他人様に原因を押しつける前に、そうなった原因がどこに有るか考えろ。 それすら出来ない人が、プログラミングなど出来るわけがない

 こういう事を平然と書ける人は、自分が作ったプログラムに対して、コンピュータがエラーメッセージを出した時、コンピュータに向かって「そんなエラーは要りませんよ」などと言うのだろう。 そんな人間がなぜプログラミングをしたがるのか、不思議でならないが。

 「どうすれば、期待通りの回答が付くか」を考えるのは、自分の書く文章について客観的に考えるという事でもある。 より詳しく言えば、「自分の書いた文章が、他者からはどう解釈されて、どういう結果をもたらすか」を考える事である。

 このような考え方はプログラミングにも必要だ。 プログラミングとは、「どうすれば、コンピュータ(他者)が、期待通りの動作をするか」を考えることだからである。 上記が出来ない人はこれも出来ないだろうし、どちらかが出来る人は、もう一方も出来る見込みが高い。

 つまり、他人様に向かって章題のような事を書いている人は、プログラミング出来るようになる可能性が低いのだ(母国語で出来ない人が、他の言語で出来るとは、私には思えない)。

 「自分の文章が、他人からどう読み取られるか」、それすら分からない人が、「自分のプログラムが、コンピュータからどう解釈されるか」など、分かるはずがない。 そんな人に対して、わざわざ時間を割いて回答を書きたくなる道理も無い。

 相手が人間ならば、多少は融通を利かせて解釈してくれる事もあるが、コンピュータはきわめて厳格だ。 こんな事すら分からない人が、プログラミングを習得しようとしても無理であり無駄である。

 

おわりに

 多くの回答者様が思っている事だと思うのですが、プログラミングが出来る(ようになる)人は、上記のような質問をしないものです。
 逆に言えば、プログラミングが出来るようになりたい人は、上記のような質問を、どうやったらしないで済むかを考えると、良い方向に進める公算が大きいです。 参考になれば幸いです。

 

付録

・質問についての違反項目

投稿内容が重複している
質問になっていない投稿
カテゴリ違いの投稿
不適切な投稿
悪質なリンク
プロフィール内で不適切な内容を記載
個人情報の掲載
宣伝、広告的な利用
不適切な画像の掲載

・回答についての違反項目

投稿内容が重複している
回答になっていない投稿
カテゴリ違いの投稿
不適切な投稿
悪質なリンク
プロフィール内で不適切な内容を記載
個人情報の掲載
宣伝、広告的な利用
不適切な画像の掲載

 投稿の際には、上記に当てはまっていないか、自分で良く吟味しましょう。

(以上)
(転載以上)