問題解決手法

問題解決に対する手法について

最近、問題解決に係る本を読んでいるので覚えたことをメモ。

ある問題に対して向き合う場合は、どうしたら解決できるのか、どのように解決すべきかという計画を立てて取り組む必要があります。

1. 問題を言い換える

問題を前にすると複雑に考えがちですが、そういう時にこそその問題に係る要素を汎用的な言葉に置き換えたり
よりシンプルに考えることが重要です。問題を形式的に置き換えることで、自分がどこまで理解しているかの確認にもなります。
処理内容をシンプルに汎用的な言葉に置き換えてみるなど。

2. 問題を分割する

実際、一度に問題を解決しようとしがちです。ただ、問題を要素ごとに分割してみることで難易度が下がる場合もあります。
深いfor文内のif文の連続。
デバックする際に対象のプログラムを2分割してから、どこでエラーであるか探る。など

3. わかっている情報から推測する

問題を前にすると分からないことが多い時もあります。
ただ、いま分かっている情報や、スキル、制約から探ったり、行動していかなければいつまでも解決には結びつきません。
現段階で分かっている部分から進めて、徐々に解決すべきです。
実際、プログラミングでも分からない部分から書き始めることはないと思います。

4. 問題を簡略化する

問題を簡略化し、シンプルに考えてみることで、悩んでいた時には分からなかった観点が見えてきたりします。

5. 実際に試してみる

実際やってみると案外解決したりするものです。
ただ、闇雲にではなく、前述した方法を使って計画立ててが重要です。

6. 慌てない、焦らない、不安にならない、苛立たない

問題を解決できないと、様々な感情が湧いてきますが、一旦問題から離れて、時間を置いてみるのも一つの手です。

最後に

とは言いつつ実際、前述した方法で計画立てても問題が解決するとは限りません。

しかし、色々と考えを巡らせたり、いろんな手法を試すことで理解が深まったり、スキル向上に繋がるものです。
この案がダメなら次はどうすべきか、といった切り分けにも使えます。
先ずは、問題に対して向き合い、「どうしたら解決できるか」といった計画立てが重要ですね。

<るるるメモ>

僕自身、問題を前にすると「早く解決しなければ」と焦ったり、本当に「解決できるだろうか」と不安になったり、「分からない・・イライラ」と
苛立ったりしがちです。

問題に対する手法や考え方を知っていれば、正面から問題にも向き合えますし、解決すれば自信にも繋がると思うので
慌てず対処していこうと思います。