海外の英語でのプログラミングの質問に使えるサイトをまとめましたので紹介します。 以下では、最も代表的なスタックオーバーフロー(stackoverflow; SO)とスタックエクスチェンジ、一般フォーラムサイトのReddit、質問サイトのQuora、プログラミングフォーラムのCodeProject、有料での質問やメンタープラットフォームのcodementorについて紹介していきます。
例えば、stackoverflowとstackexchangeの違いをご存知でしょうか。stackoverflowはstackexchangeのサービスのうちの一つです。 ubuntuやるひとなら見たことくらいはあるであろう、askubuntuも、stackexchangeのグループに属します。
とはいってもジャンルは違うしサイトも違うので、stackexchangeだけ、という説明にもいきませんので、stackexchangeの各サービスは別々のモノして扱います。
stackoverflow
おなじみですね。 プログラミングといえばスタックオーバーフローです。 垢バンされやすいのが玉に瑕。
stackexchange
参考: All Sites - Stack Exchange
ビットコインやブロックチェーンの質問。 サイト規模は小さめ。
数学に関する質問。ディープラーニングなんかやってる人は使えるかもしれません。あとRとか統計方面とか。 サイト規模は大きめ。
Web Applications Stack Exchange
ウェブアプリケーションに関する質問。 Railsとか多いのかなーって思って覗いてみましたが、全然ありませんでしたorz stackoverflowのほうがいいっぽいですね。 サイト規模は小さめ。
WordPress Development Stack Exchange
wordpress専門質問サイト。 サイト規模は小さめ。
ハード系の質問や、エクセルなどのミドルウェア、windows,mac,ubuntuなどOSに関する全般的な質問があります。 サイト規模は大きめ。
English Language & Usage Stack Exchange
こちらはプログラミングとは関係ありませんが一応紹介。 英語の使い方などの質問ですね。decideとdetermineの違いはなんですか、みたいなのがあったきがします。エラーなどの問題解決の際やgoogleに必要になる英語とは別に、プログラミング特有の変数やファイルの命名などで参考になることもあるかもしれません。 サイト規模は大きめ。
Spanish Language Stack Exchange
こちらはプログラミング関係ないですが一応。(私の趣味です) スペイン語の質問。 サイト規模は小さめ。
ちなみに言語系だったら、redditやquoraでもいいですが、hinativeの質問フォーラムとかwordreferenceのフォーラムとかが使えると思います。SEでの質問はなんだかんだでシステム、コーディングが関係してる要素のある言語系の質問が多い傾向のある気がしますね。
LinuxのUbuntuディストリビューションに関する質問。unixのスタックエクスチェンジと同様、コマンドライン関連の質問も多い。 サイト規模は大きめ。
codementor
15分15ドル(1500円ほど)程度から1:1、マンツーマンのプログラミングヘルプを求めることができるサイト。 例えばテキストチャットなりボイスチャットなりリモートデスクトップなりでサポートが受けられます。
英語力とお金が必要ですが、本当に困った時には使えそうです。
Railsなど複雑なプロジェクトを制作している際に、そのRailsのコードを部分部分で見せながらエラーを解決していきます。
例えば自分のメインプロジェクトのソースコードをgithubにのせて、stackoverflowなんかでこれのどこが間違ってるか教えてくれ、と訊くなんて無理ですよね。 ビジネスに関わるソースコードなり、プライバシーに関わるソースコードだったり、どちらにせよ大事なソースコードをオープンにシェアするのは明らかに良くないです。それにスタックオーバーフローに投稿された質問、回答、コンテンツは自動的にクリエイティブ・コモンズ・ライセンスになりますので(CC BY-SA 3.0)、なおさら企業秘密的なコードは載せられません。 そしてまず、それに答えてくれる人も少ないかと思います。
こういうサイトは日本にはないですからね。 あるいは、タイムチケットみたいなサービスもありますが、こちらはプログラミング専門ってわけじゃないので、本当に簡単な質問しかできない傾向にあるかと思います。、例えば、wordpressサイトの作り方を教えて下さい、のような。
やはり英語がいけるなら、英語で勝負したほうが圧倒的にいいかとは思います。
CodeProject
質問サイトというよりフォーラムサイトという感じのところ。 質問サイトとしても一応機能しているけどちょっと少ないかなぁ。
ユーザー数でいえばstackoverflowより上。
Quoraなどの質問サイト
yahoo知恵袋みたいなサイトです。yahoo知恵袋に負けないくらいどうでもいい質問やアホな質問があります。一方で真面目な質問、回答、学術的なものも多くありますので、投稿するカテゴリや文章の質に気をつければそれなりの回答が見込めるかと思います。
ただし回答率は低めだと思ってください。
Redditなどのフォーラムサイト
redditは海外のフォーラムサイトです。国内ではよく海外版の2ちゃんねる(2ch)などと喩えられますが、個人的には2chよりもyahoo知恵袋の上位互換みたいなサイトに思います。とりあえず英語を話すネチズン(ネット民)なら98%の人が知ってるか使ったことのあるような規模のサイトです。
ちなみにredditはオープンソースで公開されており…と、残念ながらこれは少し昔の話ですね。redditの原型ならどこかでソースコードが公開されているのではないでしょうか。
redditにはサブレディットと呼ばれるサブカテゴリが星の数ほど存在し、プログラミングの質問系のサブレディットもそれなりにあります。
例えば以下はJavaScript全般系
以下はプログラミング全般系
サブレディットによっては新規ユーザーやユーザーのスコア(カルマ)の低いユーザーの投稿をフィルタしているところもあるので注意しておくといいかと思います。
回答率はquoraより高めだけどスタックオーバーフローよりは低め、という感じです。 ただ使い分けとして、スタックオーバーフローはお固めの質問、クオリティのそれなりの質問が要求される傾向がありますが、redditはアホみたいな質問や疑問でもダウンボート、低評価はあまりされずに答えてもらえる傾向にあります。
質問したい質問がわからない、何がわからないのかわからない、自分の質問のクオリティに自信が持てない、などのケースにはおすすめです。
まとめ
私的なプログラミングの問題解決ワークフローを紹介すると、以下のようになります。
- エラーや問題をgoogleで調べる。redditやSOなどを読む
- 自分の環境を見直す
周りの大勢がやっているであろう”前提”の環境を想像し、その上でやり直してみると案外問題の原因が見えたりします。
- スタックオーバーフローやSE(スタックエクスチェンジ)で質問する
だいたいの問題はこの時点で解決されるはずです。
- Githubにissueをオープンする
Githubがある場合はバグ報告、issue、イシューの投稿を検討すると良いです。
あるいはGithubがない場合は、それなりに大きいプロジェクトであれば何かフォーラムなりあると思うので、そこのバグ報告カテゴリなどがないか探し、そこに投稿するようなことを検討します。
- redditやquoraに質問する
ダメ元、というやつですが、案外回答が役に立ってくれることもあるので、あまり追加コストもかからないのでやると良いです。
- お金を払って解決する
あるいは、自分であと10時間頑張っても解決できそうか不安なら、10時間を無駄にするよりも3万円(例えば時間あたり3000円単位として)を出してヘルプを求めるのも良いアイデアだと捉えることもできます。
- 諦める
冗談ではなく、一度問題を忘れて離れることは、実際に一つの非常に有効な解決法の一つです。 確率的に言えば、非常にまれな確率で、しかし確実に、どうしても解決できない、ほぼ不可能である問題というのは、プログラミングを続けていればいずれ出くわしてしまうものです。
こういうたぐいに出会ったら、無視して一度忘れるのが吉です。そのときに闇雲に絶対的に解決を図ろうとするのは、時間効率が悪すぎます。(メンタルヘルスにも悪いです)
3ヶ月後、あるいは1年後など、もう一度問題に出会い、あるいはふと思い出し、少し頭を使って考えてみたら、あるいはGoogle検索しただけで、あっけなく苦労していた問題が解決できてしまうことは多々あります。
参考にどうぞ。