見出し画像

あの人優秀だけど説明下手だから質問しに行くのめんどくさいなぁ現象

軽く自己紹介

・大学生
・情報系

質問したら関係ない答えが返ってきた

プログラミングの課題を大学の同級生と一緒に取り組んでいた時の話です。わからないことを同級生に質問してみたのですが、わからない部分がうまく伝わっておらず、欲していたものとは若干違う部分の回答が返ってきました。「あ、そこはわかるんだけど、ここがわからないんだ」と再度質問してみて、ようやく解決に至りました。

こんなことはこれまで何度か発生してきました。どんな時かというと、
・課題のわからないところを友達に聞いた時
・塾バイトで生徒に質問された時
が多かったと思います。この2つの状況の共通点は、質問者と回答者の間のレベル差が大きい時のような気がします。

友達と一緒に課題をする、複数人でサービスを開発する、塾バイトで生徒に教える、などのシーンで僕は質問者や回答者になる場面があります。こんな場面では質問と回答の整合性は高くあるべきです。見当違いの回答はどちらにとってもメリットはないと思います。では、どうすれば欲しい回答を得られ、求められている回答を返せるのでしょうか。質問者と回答者に分けて考えてみました。

心得 ~質問者編~

塾で中学生に数学を教えている時、「ここわかりません!」といきなり問題集を指差した生徒がいました。その時点では僕はその問題の計算のどの段階がわからないのか、あるいはそもそも計算に必要な概念がわかっていないのか全く予想できません。そんな時はわからないところを探ることから始めることになります。これはなかなか時間がかかってしまいます。

またある生徒は「せんせー」と僕を呼びつけ、問題集を見ながら計算プロセスをゆっくり喋った後「ここからがわかりません」と言いました。これはすぐ解決できそうです。喋ってもらった過程の続きから、ヒントを織り交ぜながら解説していきます。3割ほど教えたら勝手に理解してくれました。

後者の生徒は、おそらく無意識だと思いますがわからないことがとても明瞭になっています。「ここまではわかっているがここからがわからない」ということさえわかればあとはこちら(塾講師)の腕の見せ所になるので、とてもやりやすいというわけです。「わからないことを明瞭にしそれを伝える」というのが回答者としては非常に助かる質問者のあり方ではないかと考えます。

心得 ~回答者編~

    //もし一桁の数字だったら、受け取った文字番目のアスキーコードの文字を表示
	if (0 <= n && n < 10)
		write(n + '0');
        //もし二桁の数だったら、1の位の数だけを参照し、アスキーコードのアルファベットを表示
	else if (10 <= n)
		write(n + 'a' - 10);

だいぶ簡略化しましたが、これは10進数の文字を16進数に変換するコードです。これについて友達に「最後の行の-10って何?」と質問されました。

10進数の11〜16の数字は16進数ではa~fで表すので、10進数で表した数の1の位番目のアルファベットを返すようにしています。1の位の数字が知りたいので、10だけ引き算しているという処理になっています。

実はこれを実際に質問されたときは、めちゃくちゃ遠回りな回答をしてしまいました。理想的な回答としては、
・16進数に変換する過程で1~10と11~16で異なる処理をしている
・11〜16の場合は1の位の数を知る必要があるため、-10する
・アルファベットを表示する
という点だけ伝えれば良かったのかなと思います。

理想の回答者というのは、質問者の状況をいち早く理解し、必要最低限の回答を導き出すことではないでしょうか。日常生活では余計なおしゃべりが楽しいですよね。しかしおしゃべりではない質問と回答のコミュニケーションでは、それは蛇足であることが多いと思います。質問者を混乱させるだけかもしれませんですね。自戒の念も込めて…

そこに特化した人間の落とし穴

質問と回答のコミュニケーションが活性化すると、そのやりとり以上の信頼関係が生まれると思います。デメリットとしては、わからないことを明瞭に伝えること・必要最低限の回答にとどめることに気を遣って話していると、それ以外の会話が不毛に感じてしまうことです。しかし大人になると会話をはぐらかしたり、直接的な表現を避ける技術も必要なのだなと最近知りました。

社会人になる前にいろんな人に会っておくべきと言われるのは、そんな場数を踏んでおけという意味なのかもしれないですね。

( 著者: 田中)

この記事が気に入ったらサポートをしてみませんか?