プログラミングの勉強を進めていくと、誰しもが必ず壁にぶつかります。
なんの疑問も躓きもなく勉強が進む人などいません。
わからないことが出てきた時、自力で解決できればいいですが、誰かの力を借りないと解決できない場合もあります。
そんな時に便利なのが、「質問サイト」の存在です。
この記事では、
■プログラミングに関する質問に適したサイトはどこなのか
■質問する際の心構え
■回答してもらいやすい質問の仕方とは
といった点について解説していきます。
無料で利用できる質問サイト9選
無料で質問できるサイトは数多く存在します。
その中でも、プログラミング関連の質問をする際に利用価値が高いと思われる質問サイトを9個厳選して掲載します。
①teratail
teratail(テラテイル)は、ITエンジニアに特化した質問サイトです。
プログラミングに関する質問が毎分のように投稿され、すぐに回答も付く、というアクティブな利用者が多いサイトですので、是非とも登録しておくべきでしょう。
②Qiita
Qiita(キータ)は、エンジニアに関する情報や知識を共有するためのコミュニティサービスです。
2021年の時点で70万人の会員を擁し、Q&Aサイトとしてだけではなく、質の高い記事が多く掲載されているため学習サイトとして利用することもできます。
③stack overflow
stack overflow(スタック・オーバーフロー)は、コンピュータ関連やプログラミングスキルについて広範囲なトピックを扱っていることが特色のコミュニティサイトです。
世界的に利用されている質問サイトであり、ユーザー数は1,000万人を超えています。
④Quora
Quora(クオーラ)とは、ユーザーコミュニティによるQ&A作成や編集が行われているサイトで、ユーザーたちが質問と回答の収集をするというWikipediaに近い性質を持っています。
元フェイスブックの社員が立ち上げたサービスということで、実名登録が必要となっています。
⑤Code Project
Code Projectとは、数々のプログラミング言語に関する記事やQ&Aが掲載されている、プログラマのためのコミュニティです。
英語サイトですが、情報量の多さはかなりのものですので、英語に抵抗のない方は是非利用を検討すべきです。
⑥CodeRanch
Code Ranchとは、主にJavaを扱うエンジニア向けの質問サイトです。
こちらも英語サイトなのがネックですが、Javaの勉強をしていて、かつ英語にも強いという方は積極的に利用してみるとよいでしょう。
⑦マイクロソフトコミュニティ
マイクロソフトコミュニティは、マイクロソフト社が提供しているサービスで、製品情報や環境面などの情報を共有できるサイトです。
プログラミングは、コーディングだけでなく開発環境による問題によってエラーが発生することも少なくないため、そういった場合に質問サイトとして活用すると便利です。
⑧Yahoo!知恵袋
Yahoo!知恵袋は、言わずと知れた巨大Q&Aサイトで、あらゆるジャンルの質問を気軽に投稿することできます。
プログラミング関連の質問も多いです。
冷やかし目的の人から専門的な人まで幅広く利用しているため、正直回答内容は玉石混交ですが、アクティブなユーザー数が圧倒的ですので回答をもらえる確率はかなり高いと言えるでしょう。
⑨Peing -質問箱-
Peing -質問箱-は、Twitterと連携しているQ&Aサービスで、質問箱を設置した人がフォロワーから受けた質問に回答することができます。
質問箱を設置しているということは、質問に答える意思があるということなので、Twitterで質問箱を設置している現役エンジニアのアカウントを探して質問すれば、回答をもらえる可能性が高いです。
有料の質問サイト4選
利用するのに費用がかかる質問サイトも存在します。
お金はかかるものの、その分使い勝手がよく回答率も高いというメリットがあるため、
■精度の高い回答が欲しい
■早く回答してもらいたい
といった場合には有料質問サイトの利用も一考の価値ありです。
MENTA
MENTAは、「教えたい人」と「学びたい人」を結び付けるマッチングサイトです。例えば、「教えたい現役エンジニア」と「学びたいプログラミング初心者」を結び付ける、といったような形です。
トップページに、「1週間調べても分からないことが、相談すれば30秒で解決することもあります」と書かれている通り、良いメンター(教える人)と出会うことができれば学習スピードが大幅に上がります。
ただしメンターにも当たり外れがあるので、「せっかくお金を払ったのに成果が出なかった」などということにならないよう、メンターを選ぶ時は慎重に吟味しましょう。
ココナラ
ココナラは、自分の得意なことを販売することができるスキルマーケットです。テレビCMも盛んに放送されているので、名前をご存じの方も多いでしょう。
プログラミングに詳しい方が、自分の持つスキルを販売しているケースも多いので、求めるスキルが販売されている可能性も高いです。
上記は、「プログラミング」と検索した時に出てくる画面の一部です。
期間を区切ったコーチングや、質問回数に応じた料金設定など、様々な販売形態が存在するため用途に応じたフレキシブルな利用が可能となっています。
Tech Me
Tech Meは、プログラミングやWEB制作に関する質問を、Zoomを使ったビデオチャットで現役エンジニアに聞くことができるサービスです。
現役エンジニアが自分のスキルを販売するという形なので、平たく言うと「ココナラのエンジニア特化版」という感じです。
ビデオチャットを使って、教える側・学ぶ側が互いにソースコードを確認しながらリアルタイムでやりとりできるため、スムーズな疑問解消に期待できます。
Udemy
Udemyは、各分野に詳しい人が作成した解説動画が販売されている、世界最大級の動画学習サービスです。
購入した講座に関しては、講師に対して質問をすることができます。
■Udemy
質問する前にやるべきこと
勉強過程において、わからないことが出てくるのは当然です。
しかしその際、脊髄反射的に質問サイトを利用するような真似は避けましょう。
質問サイトを利用する場合は、まず以下の3点について問題がないかを確認してから質問するようにしてください。
プログラミングに関する最低限の基礎知識があるか
少し勉強すればすぐにわかるような基礎知識もない状態で質問しても、せっかく回答がもらえたところで意味を理解できず、質問者と回答者の双方にとって時間の無駄となってしまう、ということもあります。
従って何かを質問する前には、
■プログラミングとは何なのか
■どんなことができるのか
■どういう言語があるのか
■どうすればプログラムは動くのか
といった最低限必要となる基礎的な知識は頭に入れておきましょう。
参考書を数冊読んだり、実際にエディタを使ってコードを写経してみたりしてみるといいでしょう。基礎的な知識について身に付くでしょう。
過去ログを確認したか
質問サイトをあまり利用したことがない人にありがちなミスが、「過去ログを確認しないこと」です。
何かわからないことが出てきた時は、必ずGoogleや各Q&Aサイトで「過去に同じような質問をしている人がいないか」を検索してください。
エンジニアを目指してプログラミングの勉強を開始した先人たちも、同じような疑問にぶつかって立ち往生していた可能性があるのですから、すでにログとして残っていることも充分にあり得るのです。
すでに答えが示されているのに、それを知らずに質問してしまっていては、質問する側も、そんな質問に対して真摯に回答する側も、どちらも時間をロスします。
有限である時間を無駄にしないためにも、質問しようとする前には必ず「似たようなQ&Aがないか」を徹底的に探してください。
多くの場合、過去ログの検索で解決するか、解決のヒントを掴めます。
マナー違反に気を付けているか
質問サイトは、対面ではないとはいえ「人と人とが交流するコミュニティ」です。
当然そこにはマナーが存在し、マナーが悪い人間は相手にされません。
例えば、タメ口で質問してくるような人がいたらどう思われるでしょうか?
「そんな問題なら、この方法で簡単に解決できる」とわかっている人がいたとしても、回答しようとは思わないでしょう。
その他、情報量がスカスカの質問だったり、質問文の推敲が足りず何を知りたいのかがよくわからない質問になっていたりすると、誰も答えようという気にはなりません。
自分の疑問に対して無償で回答していただくわけですから、質問者はそれ相応の言葉遣いや心配りをする必要があります。
書いた質問を読み返しもせずに投稿するような真似は避けましょう。
そしてもう一つ大事なのは、問題が解決したらきちんとお礼を述べることです。
「家に帰るまでが遠足」と同じく、「お礼をするところまでが質問」です。
解決したからといって、回答してくれた方に一言もなく質問サイトから立ち去るようなことは絶対にしないでください。
回答をもらいやすい質問の仕方
質問サイトを効率的に利用するためには、質問する側が「回答しやすい質問」をする必要があります。
では、どういった質問の仕方が「回答しやすい質問」に該当するのでしょうか?
以下にて解説していきます。
質問タイトルだけで概要が伝わるようにする
タイトルは、質問内容の顔です。
人の第一印象が見た目によって大きく左右されるのと同様に、質問も、タイトルによって大きく印象が分かれます。
従って、タイトルを適当に付けるといった行為はNGとなります。
質問内容を端的に表現できているタイトルかどうかを、じっくりと確認するようにしてください。
①わからないことがあります
②Rubyについて
③PHPって難しいですよね
上記のような質問タイトルは論外となります。
まず、①について。
何がわからないのかが全くわかりません。
こんなタイトルの質問をわざわざ開いて確認しようとする人は少ないでしょう。
②について。
質問したいのが「Ruby関連」ということまではわかるので、Rubyに詳しい人が閲覧してくれる可能性はあります。
しかし、Rubyの何を聞きたいのか、どこで躓いているのかが分かる方が、より閲覧率が高まるはずです。
③について。
意味不明な問いかけとなってしまっており、人によっては嫌悪感すら抱くでしょう。
質問ではなく、ただ共感を得たいだけとも受け取れてしまいます。
それでは、良い質問タイトルというのはどういったものでしょうか。
以下に、例を掲載します。
railsコンソールのコマンドで ‘ruby’: No such file or directory と出て困っております
どういう環境でどういったエラーが出ているのかを端的に表しています。
ここまで具体的なタイトルですと、タイトルを見ただけで「自分も同じエラーに遭遇して困った経験がある!」と共感し、思わず答えたくなるという人もいるはずです。
同じエラーを経験していなくとも、詳しい人ならば、タイトルを見ただけで解決策が頭に浮かぶでしょうし、頭に浮かべば、回答したくなるのが人の性です。
開発環境や言語を記す
回答しようとする人たちは、質問者がどんな環境で困っているのかを知りたがっています。
ですので、出来る限り詳しく自分の開発環境について記すようにしてください。
例えば、以下のような情報です。
開発環境 | 記載例 |
OSとバージョン | Windows10 |
ブラウザ | Internet Explore |
言語 | PHP 7.4 |
その他、サーバー情報などについても詳細に書くと回答者としては助かります。
実現したいことを明確にする
ただ「困っている」「わからない」「上手く動かない」とアピールするのではなく、「どういう動作を実現したいのか」を明記するようにしてください。
プログラムが動かなくて困っている場合に、どういう動きを求めているかによって回答も変わってきます。
問題解決のために自分が試したことを書く
トラブルを解決するために自分が行なった処理については、すべて列記してください。
これを怠ると、せっかく回答者さんが「こうしたらどうですか?」と提案してくれたとしても、「それはすでに試しました」という無駄なやりとりが1ターン発生してしまいます。
場合によっては、この時点でうんざりして回答者さんが去ってしまうこともあります。
二度手間を避けるため、そして回答者さんの離脱を避けるためにも、問題解決に向けて自分が実行したことはすべて伝えるようにしましょう。
どういうエラーが出るのかを具体的に示す
自分がどこで躓き、何で悩んでいるかを正確に伝えつつ、エラーが出ている場合はエラーメッセージやエラーコードについて一言一句間違わずに掲載してください。
同じエラーに苦しんだ人ならば、エラーメッセージやエラーコードを見ただけでピンとくる人もいるはずです。
エラーの原因を解析する上で、メッセージとコードは非常に重要な情報となってきます。
ソースコードを記載する
質問する際は、自分が躓いている部分のソースコードを掲載するようにしてください。
いくら言葉で説明されても、実際のソースコードを見ないと判断できないケースは多々あります。
なお、外部に漏れてはまずいソースコードについては、それを説明した上で重要箇所を適宜変更してから掲載するようにしてください。
質問はマークダウン記法で書く
質問サイトで質問をする時は、できるだけ「マークダウン記法」を用いるようにしてください。
マークダウン記法とは、簡単にドキュメントを装飾できるフォーマットのことで、タグを使うことなくHTMLの装飾を施すことができるため、可読性が上がり回答を得やすくなる効果が期待できます。
マークダウン記法の詳細については、以下のリンクを参照してください。
画像を貼る場合は「gyazo」を使う
画像を貼り付ける場合は、「gyazo」というサービスを使うのがお勧めです。
gyazoとは、オープンソースのスクリーンショットソフトウェアで、スクリーンキャプチャーを簡単に撮影・保存・共有できる上、撮影と同時にアップロードとURLのコピーが完了し、すぐに共有できます。
質問したのになかなか答えてもらえない!そんな時は…
「マナーにも気を付けているし、回答しやすい質問の仕方をしているはずなのに、なかなか回答してもらえない・・・
回答がつくかどうかは時の運でもあるため、こういったケースも少なくありません。
その問題が解決しなければ先に進まない、という場合、ただ回答を待っているという時間は非常にもったいないものです。
こうした無駄な待ち時間を減らすためには、プログラミングスクールを利用するという手もあります。
スクールの場合、プログラミングを体系的に学べる上、わからないことも講師や仲間にすぐ質問することができるため、一つの躓きに時間が割かれてしまうといったことが激減します。
時間を無駄にしたくないという場合は、是非検討してみてください。
【Web系特化オンラインプログラミングスクール】
RUNTEQ