---
# System prepended metadata

title: 論理的思考

---

# 論理的思考
## 論理的思考とは？

## なぜ必要なのか
- IT系の仕事をする上で、そのサービスや仕組みが、なぜ必要なのか、得られる結果は何か、その結果の予想の根拠はなにか、など事細かに説明できないといけない
- また説明できない以上は、本当に必要かが分からず、無駄なことをしてしまう可能性がある
- 機械は命令に忠実な代わりに、事細かに命令しないと伝わらない、意図を察するという概念が一切ない。水をとってきてではないく、
1.グラスをつかんで
2.もちあげて
3.指定の位置まで移動して
4.グラスをおいて
5.1~3の動作を、グラスを水に置き換えて実行して
6.グラスに水を何秒間、どの角度で傾けて
7.1~3の水バージョンを逆に行って水を指定の位置に戻す

という動作が必要で、これを全て伝えられないといけない。
その代わり、一度設定すれば、環境が同じ限り必ず同じ動作をしてくれます
この動作を組む作業をこれからする、そのために必要

## どう考えればよいか
- いきなり上の手順を考えるのは不可能
- 抽象化してから具体化する
- 水を取ってきてほしい(期待する結果)
- グラスに水を注いでほしい(してほしい事)
- グラスを用意するフェーズ、水を用意するフェーズ(必要な工程)、時系列も考慮する
- 水を用意するフェーズは、水を用意、灌ぐ、戻すフェーズに分かれる
- それぞれの工程の動作を細かく分ける(実行するために必要な情報、角度や量など)

## 朝自分が起きてから出勤/通学するまでに必要な動作と物や情報を考えてみよう

- 必要なものの例
  - 時間情報
  - 歯ブラシ
  - 歯磨き粉
  - 食事
  - お皿
  - 食事を置くスペース
  - 時間が足りない場合に、省くものの優先度

## bookersで詰まってしまった方へ

- 何をすればいいか分からない
初めにする事を決めるうえで、必要な情報が3つあります、少し考えてみましょう。

...

必要な工程
各工程に必要なパーツの情報
優先順位
です

ではお手本のサイトを見ながら、必要な工程を全てテキストや紙に書いてみましょう。

ヒントとして、2工程例を上げます
topページを作成する
投稿機能を作る