勉強会

RUNTEQ勉強会レポート vol.6 質問の仕方講座

みなさんこんにちは、RUNTEQです。

RUNTEQでは毎週、講師陣による勉強会が開かれています。
テーマは主に「初学者のつまずきやすいポイント」です。

今週は、講師のだいそんによる「質問の仕方講座」と題してイベントが開催されました。

よい答えを得るためにはよい質問が必要です。エラーが発生した環境や手順などを適切に伝えて、質問力を鍛えていきましょう。

本イベントでは、参考資料に目を通してから良くない質問例を参加者でディスカッションしながら改善していきました。

19時30分から約1時間、ZOOMにて開催された模様の一部を、イベントレポートという形で紹介します。

質問力を上げましょう

だいそん
だいそん
質問の仕方がわからないという声をSlackで見かけました。

適切な質問をすることは現場に入ってより一層求められるスキルです。

「技術系メーリングリストで質問するときのパターン・ランゲージ」を参考にして良くない質問例を改善していきましょう!

良くない質問例

ログインしようとしたらエラーがおきました。

その1. 手順は箇条書きで書きましょう

ログインしようとしたらエラーがおきました。


エラー発生までの具体的な手順は以下の通りです。
【手順】
ログインページに遷移する
メールアドレス, パスワードを入力する
ログインボタンを押す

その2. 期待した結果を書きましょう

ログインしようとしたらエラーがおきました。


エラー発生までの具体的な手順は以下の通りです。
【手順】
ログインページに遷移する
メールアドレス, パスワードを入力する
ログインボタンを押す


【期待した結果】
ログインボタンを押すとログイン処理が行われ、掲示板の一覧ページに遷移する

だいそん
だいそん
エラーを解決して何をしたいのかがわかると、アドバイスしやすいです

その3. 実際に起きたことを書きましょう

ログインしようとしたらエラーがおきました。


エラー発生までの具体的な手順は以下の通りです。
【手順】
ログインページに遷移する
メールアドレス, パスワードを入力する
ログインボタンを押す


【期待した結果】
ログインボタンを押すとログイン処理が行われ、掲示板の一覧ページに遷移する


【実際に起きているエラー】
NameError in UserSessionsController#create
undefined local variable or method `param’ for #

だいそん
だいそん
客観的な事実がとても重要です。

エラー文はスクショではなく、テキストで教えてください。テキストをコピーしてエラー対処したいからです。また、コードブロックをしようするなど見やすくしましょう。

そしてタイポの可能性があるので、コードやエラー文は必ずコピー&ペーストしてください! エラーログは全てみたいです。100行くらいでも大丈夫です

その4. どこからうまく行かなくなったかを書きましょう

ログインしようとしたらエラーがおきました。


エラー発生までの具体的な手順は以下の通りです。
【手順】
ログインページに遷移する
メールアドレス, パスワードを入力する
ログインボタンを押す


【期待した結果】
ログインボタンを押すとログイン処理が行われ、掲示板の一覧ページに遷移する


【実際に起きているエラー】
NameError in UserSessionsController#create
undefined local variable or method `param’ for #


【どこまでうまくいった/どこからうまくいかなかった】
createアクション自体は動いています。
その中の@user = login(param[:email], params[:password])でエラーが発生しています。

だいそん
だいそん
どのステップまで適切に動いているかを意識して質問しましょう!

その5. そのように考えた理由を書きましょう

ログインしようとしたらエラーがおきました。


エラー発生までの具体的な手順は以下の通りです。
【手順】
ログインページに遷移する
メールアドレス, パスワードを入力する
ログインボタンを押す


【期待した結果】
ログインボタンを押すとログイン処理が行われ、掲示板の一覧ページに遷移する


【実際に起きているエラー】
NameError in UserSessionsController#create
undefined local variable or method `param’ for #


【どこまでうまくいった/どこからうまくいかなかった】
pryを使って処理を1行1行追ってみました。

def create
 binding.pry
 @user = login(param[:email], params[:password])
 if @user
  redirect_back_or_to boards_path, success: t(‘.success’)
 else
  flash.now[:danger] = t(‘.fail’)
  render :new
 end
end

すると処理が止まったのでcreateアクションは動いているということはわかりました。
その中の@user = login(param[:email], params[:password])でエラーが発生しています。

だいそん
だいそん
「createアクション自体は動いています」と判断した根拠を教えてください。

もしかしたらその判断が間違っているかもしれないからです! ログの情報やrails consoleの結果などもよいでしょう

最後に

だいそん
だいそん
いきなり完璧な質問をできなくても大丈夫です。まずはできるところからやりましょう。

講師にさらに詳細情報を聞かれたら、次の質問の際には前もって準備しておきましょう。少しずつ質問力を鍛えましょう!

あなたの質問を待っています!

RUNTEQに入っていろんな勉強会に参加しよう

RUNTEQでは、ただカリキュラムを進めるだけではなく、さまざまなテーマで勉強会を実施しています。

勉強会に参加することには多くのメリットがあります。

✔ カリキュラムで学習した知識が深まる
✔ 講師や受講生と顔を合わせることで、モチベーションの維持ができる
✔ 講師の共有画面で実際の挙動をその場で確認できる
✔ 講師による関連情報の紹介

また、勉強会はほぼすべて録画されているので、都合が合わず勉強会に参加することができなくても大丈夫です。
時間のあるときにゆっくり学習をすることができます。

RUNTEQにご興味のある方は、下記リンクより、お気軽に説明会へご参加ください。 https://runteq.jp/