前提・実現したいこと
先日から回答をしていて悩んでいることがあります
「回答で書くコードは質問者の理解度に合わせるべきか」
です。
発生している問題・エラーメッセージ
このサービスを利用されている皆さんであれば
質問の内容を見ていればおおよそのスキルのレベルはわかると思います。
質問を受けて「あ、この人基本的なことからわかってないな」というとき
(1)その人のレベルに合わせて平易な、もしくは質問のコードに近い形で動くように書く
(2)目的を考え理解し、それに合わせて適切なコードを書く
どちらがいいか迷っています
該当のソースコード
もちろん(2)を書いてそのまま質問者が使って問題なければよいのですが、質問した内容のどこが悪いかわかるようにしないと応用が効かないし、スキルアップにならない気がしています。
試したこと
- まずは質問者のコードから動かない要因を探し、なるべく元の形に近い動くコードを記載。
- 回答にどこがどう違うか、考え方はこうだという解説をつける
補足情報(FW/ツールのバージョンなど)
このやり方が最終的にはベスト、にはなりえないので難しいですが、
このサービスの利用者として、より良い形になってほしいし
利用しやすくしたいのでご協力頂けますと助かります。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
下記のような質問は推奨されていません。
- 質問になっていない投稿
- スパムや攻撃的な表現を用いた投稿
適切な質問に修正を依頼しましょう。
また依頼した内容が修正された場合は、修正依頼を取り消すようにしましょう。
2018/07/30 08:12
2018/07/30 08:17
2018/07/30 09:04

回答10件
14
「わかっていない」にもいろいろあって、
0. 日本語読解能力に問題があり、課題が何なのか理解できていない
0. そもそもコンピュータとは何か、プログラムが何かがわかってない
0. 当該言語の文法の基本がわかっていない
0. とりあえずHello worldをだすぐらいのプログラムは書けるがアルゴリズムの構築とかアルゴリズムをコードに落とし込むスキルが足りていない
0. 自分なりにデバッグを試みているのだが、本当の問題点とは違うところに着目してしまってハマっている
もっと自分で勉強してもらわねばというとき、上記例の1,2,3あたりについては、あえて詳しい説明はせずコードも提示せず突き放すだろうし、いろいろ苦労して「あと一歩」ができていないというような場合はどこができていないのか丁寧に説明して差し上げようとなります。また、回答するにあたって自分でも色々調べて自身の勉強ができそうだという場合は結果として回答も詳しいものになると思います。
「解説」が必要かどうかも一概には言えないように思います。私は1行2行のコードをポンとおいて何の説明をしないことが結構あります。あとは自分で考えて、という感じです。逆に解説しか書かないこともあります。両方そろっているから役に立つとも、逆に自助努力の機会をそぐとも、一概には言い切れないと思います。どのパターンが質問者の為になるかは、結局のところわかりません。
煎じ詰めれば、一番スムーズにキャッチボールできそうだというところをその都度見極めて方向性を決めるしかないように思います。ROMしているに人にも初級者・中級者いろいろおられるでしょうから、どの方向でも誰かの役には立つのではないかと考えています。
投稿2018/07/30 08:50
総合スコア13615
下記のような回答は推奨されていません。
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
このような回答には修正を依頼しましょう。
また依頼した内容が修正された場合は、修正依頼を取り消すようにしましょう。
11
ベストアンサー
質問内容や気分によって変わりますが、私の場合「基本(1)→時々(2)」という感じです。
大体以下のような感じにしてます。
- 問題箇所の指摘とその理由(この段階で終わる時もある)
- 質問のコードを修正 or 新規作成(修正箇所が軽微&文章だけじゃ伝えづらい場合)
- もっと良い別案あるならそちらを提示(上記をすっ飛ばしてこれをやることもある)
- 必要に応じて「調べ方」を提示(ググったワードとかリファレンスとか「質問するときのヒント」とか)
その時だけ使えるコードを書いても意味無いと思ってるので
なるべく理解しやすい、改変しやすいコードにしているつもりです。
(なので回答時はLinqとかは使わないようにしています)
「なぜそうなるのか」が分かれば応用や、少なくとも「どう調べればいいのか分かる」ところまでは進む……と信じたいので。
なお、過去の質問ですがこちらも参考になるかもしれません。
teratail が目指す回答は、魚か、釣り方か、それとも ...(39089)|teratail
投稿2018/07/30 08:27
総合スコア11423
下記のような回答は推奨されていません。
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
このような回答には修正を依頼しましょう。
また依頼した内容が修正された場合は、修正依頼を取り消すようにしましょう。
回答へのコメント
2018/07/30 13:41

7
teratailは開発代行サービスではないので、問題点と解決策を示せればコードはなんでもいいです。
基本的なことからわかっていない人には、回答者から手助けできることはほとんどありません。その人が自分で乗り越えないといけない壁なので。
何かするとしたら、伝わる範囲で基本的な考え方とかを示してあげて、その人の「よくわからない」が少しでも晴れるような回答にしていくだけです。
投稿2018/07/30 11:23
編集2018/07/30 11:23総合スコア30929
下記のような回答は推奨されていません。
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
このような回答には修正を依頼しましょう。
また依頼した内容が修正された場合は、修正依頼を取り消すようにしましょう。
7
質問を見て明らかに学校か何かでの課題の回答を欲しがっているときは、敢えてコードは書かず、考え方だけを示すことはよくあります。(回答を示すのは本人のためにならないと思うので)
業務などで困っておられるような場合は、自分でコードを示すか、ネットで検索したリンクを提示することもよくあります。
投稿2018/07/30 08:44
総合スコア3579
下記のような回答は推奨されていません。
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
このような回答には修正を依頼しましょう。
また依頼した内容が修正された場合は、修正依頼を取り消すようにしましょう。
4
目標の違い
(1)その人のレベルに合わせて平易な、もしくは質問のコードに近い形で動くように書く
(2)目的を考え理解し、それに合わせて適切なコードを書く
両者は、目指している目標が異なるように思います。
(1) 質問者一人が満足する回答を目指す
(2) 閲覧者全体が満足する回答を目指す
私は基本的に (2) を目指しますが、あまりにも基本的な質問の場合は情報の再利用価値が低いと判断し、(1) に切り替えることもあります。
問題を切り分けられない質問者たち
(1) になりやすい典型的にダメな質問者は、次のいずれかの性質を持ちます。
- 「自分が理解している範囲」が分かっていない
- 「自分が理解している範囲」が曖昧模糊としていて、漠然とイメージだけで考える
- 問題を切り分けることが出来ない
- 経過(解説)よりも、結果(コード)を求める
- 最良は何ですか?(絶対的な一つの答えを求める、ケースバイケースとは考えない)
(2) で回答しても、連鎖的に質問が増えていくので、継続して回答すると、(1) の回答に近づいてしまいます。
分割統治法を勧めた事もありましたが、ほとんどの質問者が途中で挫折します。
Re: i_sugiyama_tomo さん
投稿2018/07/31 13:37
総合スコア18138
下記のような回答は推奨されていません。
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
このような回答には修正を依頼しましょう。
また依頼した内容が修正された場合は、修正依頼を取り消すようにしましょう。
4
これはケースバイケースですが、少なくともコードを書くだけにはしないようにしています。
どこが問題だったのか、をきちんと書かなければ、完成形のコードだけ見ても片手落ちになるからです。
コードを書くことよりコードを組み立てること(アルゴリズム・手順を構築すること)がはるかに重要なので、それが可能なような回答、例えば考え方や手順を提示するだけに留めるとかを心がけるようにしています。そうでないと質問者のスキルアップに繋がらないですから。
投稿2018/07/30 08:40
総合スコア13703
下記のような回答は推奨されていません。
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
このような回答には修正を依頼しましょう。
また依頼した内容が修正された場合は、修正依頼を取り消すようにしましょう。
回答へのコメント

3
質問が解決するのを前提と考えていますので、
「回答で書くコードは質問者の理解度に合わせるべきか」
については、Yesです。
その際に、元のコードが冗長であるなら、別解も付け加えたりします。
それは、後学者にとって有用になるようにというのも含んでいます。
ただ、質問者のレベルが追いつかないような場合には、結論のコードだけ書いて、解説します。
それは解決するためのコードであり、それを糧にするかどうかは質問者に預ける事にしています。
投稿2018/07/30 09:07
総合スコア24913
下記のような回答は推奨されていません。
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
このような回答には修正を依頼しましょう。
また依頼した内容が修正された場合は、修正依頼を取り消すようにしましょう。
3
初心者の方が対象でも、質問の内容にもよりますし、その時々で回答の書き方は変わるはずです。
いずれにしても、何でこういう書き方をする必要があるのかという根拠をきちんと説明してあげるのは、対象が初心者でもベテランでも必要なことだと思います。
その説明がやたら難解な専門用語を並べ立てると、例えベテランでも読むの面倒だなと思うのはわかると思うので、誰もが読みやすいなと思える説明になればいいのでは。
自分がそんな回答が出来ているかはわかりませんが・・・。
投稿2018/07/30 09:06
総合スコア16994
下記のような回答は推奨されていません。
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
このような回答には修正を依頼しましょう。
また依頼した内容が修正された場合は、修正依頼を取り消すようにしましょう。
2
ベストアンサーを望むなら、質問者のレベルに合わせた回答をするとよいと思います。
質問者以外の方が類似質問の検索でおとずれた時のことを考えれば、
解決コードと、解説、類似問題への取り組み方... などを記載するとよいと思います。
でも 質問者以外のことを考慮した回答を書くにはそれなりの手間・時間がかかります。
現状の teratail の仕組みで、そういった回答を蓄積していくのは困難と思われます。(まして、その回答をより良いものへ、皆で改善していくことも...)
だからこそ、そういった回答を蓄積・更新できるようにすれば、他の QA システムとおおきな差別化ができるはずなのですが。
投稿2018/07/30 12:29
総合スコア22322
下記のような回答は推奨されていません。
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
このような回答には修正を依頼しましょう。
また依頼した内容が修正された場合は、修正依頼を取り消すようにしましょう。
1
中締めとして、現在一番高評価の方の回答をベストアンサーにさせていただきました。
みなさまご回答有り難うございました。
結局
・「teratail」は「教育の場じゃない」という認識
・上と相反する「スキルが伸びてほしい」という優しさ
のコンフリクトは多くの皆さんお持ちという感じかと思います。
紹介いただいたリンク先( teratail が目指す回答は、魚か、釣り方か、それとも ... )にもあったように、
基本的には**「正解をドン」**が割と求められている形なんでしょうね。
投稿2018/07/31 05:05
総合スコア85
下記のような回答は推奨されていません。
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
このような回答には修正を依頼しましょう。
また依頼した内容が修正された場合は、修正依頼を取り消すようにしましょう。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
同じタグがついた質問を見る
teratail(テラテイル)は、プログラミングに特化した日本語Q&Aサイトです。