とんちむ日記

RubyとJavaScriptと猫が好きです

初心者が質問サイトで安易に質問すべきではない理由

はじめに言うと自分自身、stack over flowの情報には助けられているので質問サイトをディスっているとかではないです。

質問サイトって便利ですよね、ググったら同じ悩みを抱えている人がすでにいて、それに対して詳しい人がすでに素晴らしい回答をしてくれている。無償で!そういうエンジニアって素晴らしいなぁと思います。

で、今まで助けられているぶん、僕も貢献できたらと思ってteratailに登録して答えられそうなものには回答してみているんですが。

質問の内容がひどい

まぁ・・ひどいです。ひどいと言ってもいくつかあるのでまずその特徴をあげてみますね。

まず日本語を勉強したほうがいい

コミュ障っていうのは何話していいかわからないとか、極度に緊張しちゃうとか、まぁそういうやつだと思うんですけど。そういうタイプではなくて、プログラミングよりも日本語の勉強をした方が良さそうな人もいます。

「てにをは」がおかしいとか(自分もたまに長文書くとやらかしますが)言いたいことがさっぱりわからない人たちがたくさんいます。

コミュ障というか、日本語できない人ですね。(母国語が日本語でないなら仕方ないですが・・それなら母国語で質問できるサービスあるのでは・・?)よくこんな説明で仕事できてんなってくらいに酷いものがあります・・。

回答者は質問のコードの前に質問者の意図を理解しないと行けなくなります。質問サイトの回答はボランティアなんであえて日本語もどきの暗号を解読しようとする人は少ないでしょう。

ググればわかる内容

「これ聞かなくてもググればすぐに出てくるよ?」と思うようなことを質問されている場合があります。でも優しい回答者の皆さんは「ググれカス」とは言わずに教えてくれます。(リンク貼り付けるだけの場合もあるけど)正直この場合はググれと言ってやった方が本人のためかもしれないですね・・。

デバッガー使えばすぐにわかる内容

デバッガー使うのは基本中の基本ですよね。ブレークポイント置いてコード実行して変数の中身や処理の流れを追って行けば自ずとわかるはずです。ツールの使い方を学べばすぐに解決するはずなのになぁ。

つーかエラーメッセージに書いてある

これはびっくりしますよ。「え、書いてるじゃん?」と思うんですが・・おそらくエラーメッセージを読む習慣がないのでしょう、英語に対して拒否反応を示してるんでしょうね。エラーメッセージをコピペしてググるか翻訳するだけでも違うのになぜそれをやらないかなぁと思います。

回答者をエスパーかなんかと勘違いしている

このパターンがすごく多いです。すごいエンジニアの皆さんはある程度の経験と勘で質問の意図を汲み取ってくれるんですが・・(すごく優しいですよね)情報が少なすぎる!

ベタベタとソースコードを貼り付けて、「うまく動きません。よろしくお願いします」

わかるかーっ! f:id:tonchix:20170505172319j:plain

↑酷い質問を見たときの僕の心境

teratail側が初心者にもわかりやすいようなテンプレートを用意してくれているにも関わらずどうしてこうなるんだろう・・。

エスパーじゃないんでからあなたの思考がわかるわけではないんです。まず、何がどう動かないのか明示してください。(5W1Hって聞いたことあるでしょ?ないならググって)

そしてあなたはどういう手法を試したのかとかもできるだけ書かないと回答者の時間を奪うだけです。(くどいですがボランティアなんですよ?善意でわざわざあなたのために貴重な時間を割いてくれてるんですよ?)

ソースコードも、できれば手元で動かせるだけのものがあればいいです。(かといって余計なものまで貼り付けられても困る)もちろん公開できるように加工した上でです。めんどくさいとか言うな、答える方もめんどくさいんだ。

的確な回答を早く欲しいのなら、回答者の身になってこちらもできる限りの情報を提供しましょう。それができないのなら自分で解決しないといけませんよ。

なぜ初心者は安易に質問すべきでないか

ここでやっとタイトルに戻ります。

僕は上記の質問を見てきて、安易に質問することで自分の問題解決能力を磨く機会を失っているのではないかと考えています。

「わからない」 => 「質問サイトで聞けばいいや」

こういう安易な発想になってしまっているのではないかと思います。

もちろん、質問しつつ自分で調査しているのなら良いと思いますが。そうでなければ効率的なデバッグ手法やググるためのキーワードのセンス(結構大事ですよこれ)、英語のサイトを頑張って読む経験などが得られないのでとっても勿体無いです。

一度はわかるまで自分でとことん調べてみると苦労しただけあって身につきますし、その過程で試した手法などは次回の調査で役にたちます。ベテランのエンジニアの方々がすぐに回答できるのはたくさんの知識とこのような苦労した経験をたくさんしているからに他なりません。

質問サイトを使うなとは言いません。どうしようもないときだってあります。諦めてしまうよりはずっといいでしょうし。周りに聞ける人がいないかもしれません。

ただ、ハマった時はチャンスなんです。自分でデバッグする、調査する、仮説を立てるなどの貴重な機会なんです。特に経験のないことならば新しい知見を得られる可能性があります。なんならそれがQiitaとかブログのネタになります(笑)

そういった折角の機会を無駄にしないためにもまずは自分で解決する努力をしましょう。