はじめに
「詰まったら、すぐに質問してください!」
こう上司やPM、先輩エンジニアの方から言われたことありませんか?
これを言われるのはおそらく初学者の方だと思いますが、以下のような経験はありませんか?
- わからないことが発生した!
- 「すぐに」質問してと言っていたので、文意のまま即座に質問した・・・
- ( ゚д゚) <「少しは自分で調べたのか!」1 と一蹴!!!チーン(´・ω・`)
(すぐ質問してって言ってたのに・・・(´;ω;`))
自分で調べれば良いのか、ふむふむ。。。
- わからないことが発生した!
- 自分で限界まで考えて調べてみても、まだわからない・・・
- (数時間経過後)恐る恐る質問した・・・
- ( ゚д゚) <**「最初のうちは考えても仕方ないこともあるから、すぐに質問して!」**と一蹴!!!チーン(´・ω・`)
「いったいどうしたらいいんだぁぁぁぁぁぁぁぁああああああああ!!!!!!!!」
この記事では、私がその際に感じたジレンマを克服する方法の一つを記します。
正しい導きは無数にあると思うので、他の克服法を体現してる方はシェアしてほしいです!
克服法
私が考える克服法は3ステップです。(逆算的)
- 質問テンプレートを作成し、それを埋めてから質問する
- 言語化を意識する
- アウトプット前提のインプットを心がける
質問テンプレートを作成し、それを埋めてから質問する
まずはじめに、私は「質問テンプレート」なるものを作成し、それを埋めてから質問するようにしました。
「質問テンプレート」とは、質問をしたいときに考えなければならない事柄の雛形です。
なぜこれを作成しようと思ったかというと、入社したての私は質問したいことがあってもほとんどの場合はぼんやりとして考えがまとまっておらず、具体化できていませんでした。
であれば、その質問したこととそれに付随する自分の考えを可視化するためのテンプレートを作成すれば良いのではと考えたからです。
「質問テンプレート」と言ってもとても簡単なものです。
1. 〜がわかりません。
2. 具体的には、〜です。
3. 私は〜と考えました。
4. なぜなら〜です。
簡単!
1.
最初に結論を書きます。
コレがわからん!!!と。書き手も読み手もスッキリ!
2.
その後に、詳しい説明やその現象に遭遇した経緯などを具体的に示しましょう。
自分にとっては自明なコードや操作だと思い込んでいても、相手にとっては初めて見ることになるかもしれないので、できる限り詳しく書くことをオススメします。
自分が思っている以上に詳しく長く書いても、読み手にとっては一瞬で読めてしまうので。
3.
そして、自分の考えを述べましょう。間違っててもいいのです。
重要なのは、「私は考えましたよ」と相手に伝えることです。
わからないなら、わからないなりにひねり出して書くのです。
4.
最後にその見解を築く客観的根拠を述べます。
これがないと、ただの予想や憶測になってしまいます。
プログラマの方は特にこれがハッキリしない考えは嫌いなイメージ。。。(憶測)
以上の4点を言語化できたら質問する!というように自分ルールを決めています。
質問するまでにゴールができたので、わからないことを迷うことなく最速で訊くことができるようになります。
これで、
( ゚д゚) <「少しは自分で調べたのか!」
( ゚д゚) <「最初のうちは考えても仕方ないこともあるから、すぐに質問して!」
と板挟みの過去から脱却できました!!!
.
.
.
とはいっても、頭の中だけで自分の考えを巡らすことができても、実際に文章に起こして相手に伝わるように言語化することは容易ではありません。(私はそうでした)
言語化を意識する
私の中での言語化の定義は、「頭の中の思考を文書化すること」です。
(正確には文書化以外にも、口頭などの言葉も含まれるみたいですが、ここでは意味を限定的します。)
かくいう私も最初は「言語化」なんて単語を耳にすることすらありませんでした。
昔からメールより電話派の人です。
直接言えばいいし、もしSlackなどのコミュニケーションツールで齟齬が生じたら通話すればいいのではと思っていました。
そうする方が時間の短縮にもなるし、インタラクティブなやり取りなので認識の相違は起きづらいと考えるからです。
しかし、日常的に多用するのはSlack等の文章でのやり取りになると思います。
例えば、取引先の方やリモートで作業してる方とのやり取りや、議事録、タスク管理ツールなどです。
実際、私が言語化について意識するようになったのは、リモートの先輩エンジニアの方や取引先の方に仕様や技術的な面について質問をするようになってからです。
ある日、リモートのエンジニアの方に技術的な質問を投げかけたことがあります。
もちろん、質問テンプレートに則ってです。
しかし、返ってきた回答は「どういうことかわからない」でした。
あ、これちゃんと伝わってないや。
相手方の理解が不十分だという可能性は0%で、完全に私の説明不足でした。
「頭で考えてることを文章にするのって難しい」と初めてブチ当たりました。
現在、以前よりも言語化できるようになって思うことは、
直接口で伝えるよりも時間がかかることはあるけど、それ以上にメリットがある!ということです。
具体的には、
- より深い理解が、得られる
- 自信と確信が深まる
- FBがもらえる
- 自身の変化量が見られる
- 記録として残る
じゃあ、どうしたら言語化が上達するのか。
それはもちろん思考の仕方もあると思いますが、インプットの質を高めることです。
アウトプット前提のインプットを心がける
インプットの質を高めるとはどういうことかというと、
ちゃんと定義がわかってますか?基礎の基礎がわかってますか?ということに尽きます。
言語化する際に「用語」で詰まる、ということが私は頻発します。
A'という単語の抽象的な単語はAだったかな?Bだったかな?といった具合に。
では、どうしたらインプットの質を高めることができるのか。
それは次の例で理解できるでしょう。
-
業務である技術の知識が必要だとわかったら、それに関する技術書やサイトを読んで得られるインプットはものすごく高いですよね?
-
あるカンファレンスでスピーカーとして登壇することになったら、考えただけでもインプットの質が上がりそうですよね?
-
こういったqiitaや技術ブログを書くと決めたら、誤った知識は書きたくないという思考のもと、情報はくまなく調査しますよね?
なぜか?
アウトプットするからです。
インプットの質を高めるにはアウトプットを前提にインプットをすることが不可欠です!
独学でプログラミングを勉強するよりも、就職して実務経験を積みながら学んだ方が効率がいいということもこの例からもわかると思います。
まとめ
詰まったら、質問テンプレートを埋めて質問すべし!!!
インプットの質が高まれば、言語化能力が向上し、より高速に質問できるようになる!
そのためには常にアウトプットを前提とすべし!
おわりに
ハウツーなのは最初だけで、後は自己啓発もどきみたいになってしまった。。。
ポエムだから気にしない。
追記(2019.10.03)
たくさんの方からFBをいただけて、Qiitaのスゴさを実感しております\(^o^)/ありがとうございます!
-
弊社ではそのようなことは言った or 言われたことはありません。社の方針のひとつとして、「初心者は調べる方法と共に学んでいくべき」ということ掲げております。 ↩