teratailの推奨していない質問に「プログラミングに関係のない質問」があります。例として、
- 『開発仲間を見つける目的』
- 『友人同士でのクローズドなディスカッション』
- 『人生のお悩み相談』
があげれていますが、よくわかりません。どちらかというとこれらの例は「一般化できない私的な質問」というのが妥当のような気もしますが、まずは置いておきます。
さて、実際に多くの質問で「プログラミングに関係がない質問」であると指摘され、評価が下げられています。中には、関係あるように私には見えるものまでまで指摘されています。となると、「プログラミングに関係がない質問」ではない質問、つまり、「プログラミングに関係する質問」とは一体何なのでしょうか?関係のあるなしはどこで判断すべきなのでしょうか?
自分で質問するとき、または、質問に対して評価するとき、プログラミングに関係があるかどうか、teratailで質問すべきなのか、評価を下げるべきなのか、そういった所をどういった基準で判断すべきなのか?その基準を示していただきたいと思います。
ひとまず考えられるような指針を下記にあげてみますが、これ以外の判断基準でもかまいません。
- コード原理主義(過激派)
質問または(想定される)回答のどちらかに、プログラミングする対象である具体的なコードが現れる質問のみが該当する。それ以外は全て関係が無い。なお、プログラミングそのものを語るために、擬似コードが現れるような場合も可とする。
2. 言語環境(急進派)
プログラミングしたコードが直接関与する言語の環境(それ無しではプログラムは動作し得ないかどうかが基準)、例えば、コンパイラやインタプリンタ、ライブラリ、ライブラリ管理ツール(pipやgem等)等についての質問は有りとする。言語自体の話題も可とする。
3. 開発環境(穏健派)
エディタやIDE、バージョン管理ソフト等、プログラミングを行う環境についての質問も有りとする。
4. インフラ環境(保守派)
サーバやクライアント設定、ネットワーク、クラウドサービス等、プログラミングを行った(またはこれから行う)アプリが動作する環境についての質問も有りとする。
5. コンピュータ全般(和平派)
全てのコンピュータはプログラミングされたソフトウェアで動作しているのだから、プログラミングに何らかしら関わりがありそうなコンピュータに関する質問であれば基本的に有りとする。ただし、2.や3.に該当しないアプリの一般的な使い方や、OSや機器の一般的な使い方等は除外する。
6. 何でもあり(楽観派)
プログラミングに関係がないアプリの使い方とかも良いんじゃ無いかな。プラグインを使っているわけでも、PHPやJavaScriptをカスタマイズしているわけでも何でも無いWordPressの使い方とかさ。
7. お悩み相談(浪漫派)
Q:「プログラミングをすると彼女ができると聞きました。本当ですか?」
A:「本当です。プログラミングで彼女をつくる事ができます。」
という質問と回答も有り。
なお、teratail
タグの質問は、Stack OverflowにおけるMeta Stack Overflowのような位置づけであると私は解釈しています。ですので、teratail
タグの質問については除外していただくようお願いします。それについての是非を問いたいのであれば、別途ご自分で質問してください。
最後に、この質問は「基準は人それぞれ」と言ってしまえば終わりです。ですので、ベストアンサーは決めないと思います。ですが、他の方が何を考え、何を基準にし、何を良しとしているのかを知ることは大事だと思います。何もわからないまま、ただ「プログラミングに関係がない質問」のレッテルを貼られて、どうすべきかを示されないことほど意味が無いものはないと思っています。
【追記2018/04/22】
特定言語によらない純粋な学問としての計算機科学(Computer Science)やその基礎となる数学については上のどこら当たりに含まれているのか、どこにも含まれていなければ、プログラミングに関係すると言えるのか言えないのかまたは場合による(その場合はどういう「場合」にになるのか)のかを追記いただければと思います。例えば「チューリングマシンが有限時間で停止するかを判断できるチューリングマシンが作れないのはなぜですか(停止性問題)」といった質問です。
紙テープに打ち込まれているプログラムが停止できるのか読み取っているチューリングマシンのイメージ
(画像はいらすとやさんのものを使わせていただきました)