詰まったときどうするか

今 Vue CLI で SPA(シングルページアプリケーション)を作る課題をやっていて、絶賛詰まり中。

勉強していると、「どこから手をつけたらいいかわからない」、「どんなプログラムを書いたらいいのか見当もつかない」ということがよくある。ググろうにも、どんな検索ワードが適当なのかわからない。

それで、自分よりもっと初心者の人に質問されたという状況を想像して「詰まったときどうするか?」を客観的に考えてみた。

そういう状況の脱出方法は人によってさまざまだと思うが、今の自分が手探りでやっていることを書き記しておく。数ヶ月前の自分が読んだら参考になると思う。そして数ヶ月後か数年後の自分が読み返したら面白いと思う。

大きい問題は小さく分割

とにかくまずはこれ。プログラマを目指して勉強を始めてから何度かそういう話を耳にしながらも、自分事として考えるようになったのは「角谷トーク」を聞いてから。今はこれを常に自分に言い聞かせている。

大きい問題をできる限り小さく分割して一つひとつクリアしていく

  • 紙のノートにわかっていること、わからないことを書き出す
    • わからないことを小さく小さく分割して、どこがどうわからないか人に説明できるように考えてみる
    • 考えたら、調べてみる
    • 調べてもわからなかったりできなかったりしたら、人に聞く

違う視点から考えてみる

人に聞くことの効果の一つは、「違う視点」を得られることかもしれない。独学しているのだとしたら、以下のように考えてみるのもいいかも。

  • 自分以外の他人になりきって問題を考えてみる
  • 困っている自分にアドバイスする側になりきってみる
  • 問題に対する知識を一旦リセットしてみる
    • 余計な知識が邪魔をしていることがある
    • 前提を勘違いしていることがある(自分の経験上、これが多い)
    • できていないと思い込んでいるだけで実はできていることがある

ベテランでも「何がわからないのかわからない」状況になることはあるので、それほど深刻に考えない。寝て起きたら前進することも。

「はいはい、わからないわからない、ワロスワロス
わからないときの心持ちについて - komagataのブログ

komagata さんのブログに書いてあるが、「何がわからないのかわからない」ぐらいの状況だったら、「まず人に聞く」という選択肢を取れるなら取るべきかも。

ただ、質問するハードルが高かったりもする。質問できる時点で、「問題は半分解けている」。まさに今日、「できない人ほど聞けない」という話を聞いた

今回の自分の場合は、昨日今日、頭をリセットしてゼロから考えるつもりで紙のノートに設計案やプログラムの流れを書いてみたら、できる気がしてきたので頑張ろう〜