こんにちは、おかてんです。
エンジニア向けQ&Aサイト「teratail」はご存知ですか?
簡単に言うとエンジニア同士が相互に質問し合い、問題を解決できるサイトです。
Yahoo知恵袋のエンジニアバージョンですね。
実際に使ってみるとつまづいていたエラーがすぐに解決できました!
「teratail」とは具体的にどういうものなのか?を含めて実際に使ってみた感想を含めて紹介します!
プログラミングにエラーはつきもの
プログラミングをしていると必ずエラーが出ます。
その時にどう解決すべきかわからない時ってありますよね。
とりあえずエラーメッセージをGoogleで検索してみたものの、英語ばっかりだし、自分と同じようなエラーが起きた人がいなかったりで、結局解決できない時がありませんか?
初心者だと特にエラーに悩まされ挫折する人が多いと思います。
そんな時にいつでもどこでもエラーについて質問できるサイトがあったら便利ですよね。
それも無料で!
スクールやオンライン動画学習などでももちろん質問することがはできますが、まずスクールに通ったりするのにお金がかかります。
しかもスクールなら現在学習している範囲内でしか質問できません。
「teratail」なら言語関係なく、プログラミング学習でエラーに悩まされているすべての人が無料で質問できます。
teratailの仕組み
最初にも述べましたが、teratailは全国のユーザーが質問者であり、回答者でもあります。
そのため、回答してくれるユーザーが非常に多いので、回答時間が早くかつ解答率も高いんですよね。
現在(2017年8月)の回答率は91.77%です。
回答時間も非常に早く、僕が使用した時は数時間で問題解決に導く回答をいただきました。
また、自分で質問しなくてもあらゆる人がすでに質問・回答により解決しているので、そこから探すこともできます。
超質問しやすいマークダウン記法
teratailの大きな特徴の一つとして注目してたいのはマークダウン記法です!
質問する時って、回答者にどう伝わるかをあれこれ考えて文章を考えたり、問題が起こっているソースコードを見やすく工夫必要があり、思っている以上に時間がかかったり、伝わらなかったりすることが多いと思います。
マークダウン記法にはテンプレートも付いているのでこれに沿って入力するだけでOKです。
項目としては
- 前提・実現したいこと
- 発生しているエラーのメッセージ
- 該当のソースコード
- 試したこと
このようなものがあり、テキストで書き込むと自動的に横にある質問用フォーマットに変更してくれます。
自分が書いている質問を箇条書きの質問で綺麗に整えてくれて、かつ他の人からどのように見られるかを可視化できるのはいいですね。
ソースコードを記載する項目もあるのでより具体的な情報も盛り込めるので解決しやすくなりそうです。
言語により機能ごとに色が変わってくれるので見やすくなります。
また、質問には言語や分野のタグが指定できるので、絞り込むことにより他のユーザーにも見つけてもらいやすくなります。
質問の仕方がよくわからない初心者のためにも、質問のテンプレートを用意し、初心者マークをつけることで自分が初心者だと伝えることができます。
動画で雰囲気を確認できます↓
使ってみた感想(英語のエラーメッセージも大丈夫!)
では、実際に使ってみました。
僕が困っていたエラーはPythonで使用したいライブラリがインストールできないという問題です。
cv2というPythonで扱うライブラリをインストールしようとすると
1 |
$ pip install cv2 |
なんかエラーが出ていますね。
プログラミングには英語のエラーメッセージがつきものなので、エラーメッセージ自体が全くわからないこともあります。
少しググりましたが同じような問題に遭遇している人に出会わず、解決策が見つからなかったので、teratailでこのエラーを投稿してみました。
投稿した内容はこんな感じです。
記入する質問事項は
- タイトル
- カテゴリ
- 前提・実現したいこと
- 発生しているエラーのメッセージ
- 該当のソースコード
- 試したこと
などです。
タイトル
「pip installでcv2をインストールできない」
タイトルは検索画面のトップに出るので分かりやすいタイトルにしましょう。
タグ
Python、pip、OpenCVと、とりあえず関連がありそうなタグを載せておくと回答者が見つけやすくなります。
前提・実現したいこと
タイトルとかぶりますが、pip installでcv2をインストールすることで、最終的にPython上でcv2のインポートしようとしています。
発生しているエラー内容
ターミナルで発生しているエラー内容を、そのまま貼ってみました。
該当のソースコード
1 |
import cv2 |
今回はターミナルで発生したエラーですが、ソースコード上で該当するのはここの部分です。
本来は、もっと多くのソースコードを貼り付けた方が良いですね。
プログラムも言語によっては機能ごとに色が変わるので投稿した時に回答者に見やすくなります。
マークダウン記法なので、左で記入した内容が右のようなフォーマットに自動的に変換されるので、書きやすかったです。
投稿してから数時間後に回答が来ました。思っていた以上に早い!
なるほど、importする時のライブラリ名と、installする時のライブラリ名が違うのですね。ややこしい。
あと、OSや使っているバージョン等は常に載せておかないとダメですね。その方が回答を得やすいかと思います。
早速実行してみました。
1 |
$ pip install opencv-python |
すると
installに成功したようです。
これで無事Pythonでcv2というライブラリを使うことができました。
素早く的確な回答のおかげですね。
英語のエラーメッセージをそのまま貼り付けただけでしたが、親切に回答してくれました。
多少、質問の内容がおかしかったり抜けていたりすると指摘してくれるので、それに沿って回答するとおのずと誰かしらが答えてくれます。
なぜ回答してくれるのか?
teratailでは回答しても特に報酬のようなものはありませんが、質問・回答するごとに自分のレベルが上がり、ランキング形式で自分の順位が出ます。
おそらく、自分の回答レベルの順位がどれくらいか?で自分の知識量を確認し、それを繰り返すことで自分自身のスキルアップにもつながり、どんどん順位を上げていきたいからだと思います。
スマホゲームなどもランキング形式になっており、やりこむことにより自分の順位を上げようとしますよね。おそらくその感覚と同じだと思います。
最後に
プログラミングをしているとエラーはつきものです。
まずは簡単なエラーでもいいので、質問をしてみてはいかがでしょうか?