もうやってられないよ。
エンジニアには、問題解決力が大切です。
今回はその問題解決力について解説していきます。
目次
問題解決の基礎
問題解決の基礎となるものは「思考=考える」です。
論理的思考・多面的思考などの手法を用いるとき、思考がどういうものか分かっていなければ、根本的な解決が出来ません。
人は感情で動く動物であるため、100%合理的な行動はできません。
そこで重要になるのが、パラダイムシフトです。
パラダイムシフトとは、理想を実現するために必要最低限の合理的な思考に変えることです。
ちなみにパラダイムとは、思考の枠組みのことです、
問題解決のプロセス
問題解決のプロセスには、以下の7つの工程があります。
- 問題の定義・・・考える対象を定める
- 問題の分析・・・細分化する(考えられる問題の原因)
- 問題の統合・・・カテゴリー(分類)毎にまとめる
- 解決策の提示
- 解決策の実施
- 確認
また、問題を定義する上で大切な3本の柱があります。
- ポイントはずれていないか
- 論点(イシュー)がずれていないか
- 漠然としていないか
問題・解決・能力とは
- 問題・・・理想と現実のギャップにより、理想への到達を妨げているもの
- 解決・・・理想を現実にすること
- 能力・・・理想に到達するための力
プログラミングにおける問題解決力
- 常に計画を持つ
- 前提条件を疑う(開発環境、バージョンなど)
- 問題を分割する(複数のエラーが絡む)
- 問題を言い換える(違う角度から問題を見る)
- 問題の簡略化する(いきなり完璧を求めない)
- できる事から始める(出来ない事は出来ない。出来るようになって行く。自走力)
- 目的を忘れない(なぜtech boostに入ったのか?今やっている事が目的に近づけるのか?)
- 確認をこまめに行う(動作確認。エラーの解決が楽になる)
- 類似点を探す(経験から応用する)
- 感情的にならない(冷静沈着に)
どこでエラーが起きているか考える
command
RoutingError
クライアントのリクエスト(URL)を受けるrootsがない
command
uninitialized constant SessionController
リクエストに対応するコントローラーが見つけられない(スペルミスがほとんど)
command
Unknown action
リクエストに対応するアクションがない
command
Template Error
viewのファイル名、レンダリングなどが間違っている
command
uninitialized constant SessionController::Users
リクエストに対応するUsersが無い(::は階層)
command
NomethodError
methodが無い(スペルミスがほとんど)
エラーがM(Model)・V(View)・C(Conrol)のどこで発生しているか考えることが大切です。
どういう仕組みで動いているは、公式サイト(railsガイド や GitHubのREADME.md など)で調べられます。
最後に
冷静になって考えてみます。
すぐに諦めないで、感情的にならず落ち着いて、エラーが発生している場所を探してみてください。
実際に私もプログラミングスクールに通ってエンジニアになりました。
興味がある方は、こちらの記事をご覧ください。