エンジニアでフリーのカバチャンタ

エンジニアとして働くカバチャンタが書く、フリーランスについてやその他趣味についてのブログです。

【MENTAのナレッジ記事】分からないことを質問するという技術

私は最近、プログラミングの学習でつまづいた時に直接現役のプログラマーの方に質問できるサービスMENTAで活動しております。そのサービス内でのブログ記事「ナレッジ」で書いてある内容は評判が良いので、個人のブログにも同じ内容を転載させていただきます。少しでも興味を持っていただけたら、私と直接やりとりができるMENTAをご利用ください^^

kabachantaの月1,000円で始められる学習プランたち kabachanta|メンターに教えてもらおう

分からないことが分からない問題

分からなかったら質問して

と言われた経験は誰しも1度はあると思うのですが、実は質問をするというのはすごく難しくて、本当に何も分からない人は質問することが出来ないと思います。

なぜ質問できないかというと、それは質問が出来るだけの知識を身につけていないからです。つまりある程度の知識がないと質問が出来ないのです。

分からないことが1つだけだったら、簡単に質問できます。
なぜ、2月だけは1ヶ月に28日しかないのですか?
なぜ、新年度は4月から始まるのですか?
日本で生活して来た方なら、日本のカレンダーや行事などは身に染みていると思いますので、上記のような質問でしたら、何も意識しなくても出来ると思います。なぜなら、疑問点は1つだけで、前提となっている知識はすでに備わっているからです。

プログラミングを学びだした方というのは、謂わば文化も言語も全く違う国に移住をしに来た状態になってしまうので、まさに右も左も分からない状態に陥ってしまいます。
その環境で学習するというのは困難な作業ですし、独学をしようとすると、まず何から学習していいかも分からないですし、今後どう役立つかも、見えにくいですし、目標にきちんと向かっているのかも見えないので不安でしかないと思います…

この状態は分からないことが分からないという状態です。まずはこの分からないことが分からない状態から抜け出す必要があります。

まずは圧倒的なインプットが必要

何が分からないかが分かるようになるためには、基本となる知識をインプットする必要があります。
これは日本で学習するにはひらがな片仮名漢字をインプットする必要があり、英語を学ぶにはまず単語を覚える必要があることと一緒です。

英語の学習で一番効率がいいのは単語数を必要数分インプットしてしまうことだと思うのですが、同じようにプログラミングなど新しい分野の勉強を始めるときには、まずは単語の意味を1つでも多く覚えてしまうことだと思います。

意味を理解するまでは難しいので、まず1通り単語を聞いたことがあり調べたこともある、という状態まで持っていくと、見馴れた単語がどんどん増えていきます。分からない単語は今はgoogleで検索すればヒットするので、まずはググるという癖をつければ、どんどん知っている単語が分かるようになります。

それでも分からない場合には、単語レベルで何が分からないかが分かるようになったということなので、このタイミングで良い質問が出来ると思います。

ゲシュタルト崩壊という単語を調べたのですが、意味が分からなかったので、具体例を交えて説明していただけますか?
パーキンソンの法則という法則を調べたのですが、本棚に本が埋まるというのもパーキンソンの法則なのですか?

こういった質問を受けると、回答者は質問者が何を知りたいのかが明確なので、安心して回答することが出来ます。

分からないことが分かる、状態までたどり着くには

さて、基本的な知識が身に付き、単語の意味を理解できるようになったら、単語同士の関係などを体系的に理解をすることが必要になります。最初は独立していた情報が、関係性が分かるようになってようやく全体として何を言っているかが分かるようになります。

この最終段階まで行くためには、自分は何が分かっていて何が分かっていないのかを整理して、この部分がピンポイントで分かりませんと言えるようにならないといけないのです。

もし今したい質問がうまくまとめられなかったとしたら、まだその質問が出来るほど理解が深まっていないということになります。その場合には、もう少し質問の段階を戻して、そもそもこれはどういう意味なのか?といったインプット作業に戻す必要があります。

良い質問が出来る人は、自走できるようになる

ピンポイントで分からないことが分かるようになると、質問は具体的で長文になるはずです。

現在Laravel8の環境をhomesteadで作成し、livewireにて予定帳アプリを作成しようと思っているのですが、DBに保存処理をした後ポップアップを表示した要素の中に処理した日付を表示する方法が分からないので、教えていただけますでしょうか?
Vue.jsについては一通り学習サイトで学んでおり、大まかな概念は理解しております。
なお、使用しているPCはwindowsです。

この質問は僕が実際に分からなかった内容なので、もしも誰かに相談しようと思った場合にはこの質問を投げていると思います。実際には分からないことをネットで調べて理解し、自分で解決することが出来ました。

分からないことが分かるようになったら、あとはそれを自分で解決出来るかどうかという分岐になるのですが、ここで自分で解決できない場合に初めて言い質問が出来るようになります。

もしも自分で解決できる場合には、自走力が身に付いたので、自分でどんどん問題を解決できるようになり、晴れて一人前のエンジニアになれたということになります。

一人前のエンジニアになるために、MENTAをどのように使うのか?

良い質問が出来るようになるまでには、実は自走が出来るようになる1個前段階まで来なくてはいけない、ということは、ここまで読んでくださった方には伝わったと思います。

初学者の方がいきなり言い質問が出来るようになるまでには基礎知識をつける必用がありますから、そういった基礎知識についての相談は、月額1000円で質問し放題の僕のプランを是非利用してください。こちらのプランは、いわゆる分からないことが分からない方向けのプランとなっているので、そもそも知っておかないといけないことや、初歩中の初歩といった質問まで何でもお答えするつもりです。

次に、PHPWordPressなど、やりたいことが分かっている方向けのプランとして、月額5000円で質問し放題のプランがありますので、こちらは具体的にやりたいことが決まっており、分からないことが何かを分かっている方向けのプランとなります。今具体的なサポートはこの2軸を用意しているのですが、需要がありそうでしたらサーバー周りのプランやJavascriptなどフロントの技術のサポートもしていければと思っています。

今の自分の状態に合わせて適切なプランを選び、いつか自走できるようになるまでお付き合いしていただければ幸いです^^
どうぞよろしくお願いいたしますm(_ _)m

ここまで読んでいただき、ありがとうございました!( ̄- ̄)ゞ