# 論理的思考 ## 論理的思考とは? ## なぜ必要なのか - IT系の仕事をする上で、そのサービスや仕組みが、なぜ必要なのか、得られる結果は何か、その結果の予想の根拠はなにか、など事細かに説明できないといけない - また説明できない以上は、本当に必要かが分からず、無駄なことをしてしまう可能性がある - 機械は命令に忠実な代わりに、事細かに命令しないと伝わらない、意図を察するという概念が一切ない。水をとってきてではないく、 1.グラスをつかんで 2.もちあげて 3.指定の位置まで移動して 4.グラスをおいて 5.1~3の動作を、グラスを水に置き換えて実行して 6.グラスに水を何秒間、どの角度で傾けて 7.1~3の水バージョンを逆に行って水を指定の位置に戻す という動作が必要で、これを全て伝えられないといけない。 その代わり、一度設定すれば、環境が同じ限り必ず同じ動作をしてくれます この動作を組む作業をこれからする、そのために必要 ## どう考えればよいか - いきなり上の手順を考えるのは不可能 - 抽象化してから具体化する - 水を取ってきてほしい(期待する結果) - グラスに水を注いでほしい(してほしい事) - グラスを用意するフェーズ、水を用意するフェーズ(必要な工程)、時系列も考慮する - 水を用意するフェーズは、水を用意、灌ぐ、戻すフェーズに分かれる - それぞれの工程の動作を細かく分ける(実行するために必要な情報、角度や量など) ## 朝自分が起きてから出勤/通学するまでに必要な動作と物や情報を考えてみよう - 必要なものの例 - 時間情報 - 歯ブラシ - 歯磨き粉 - 食事 - お皿 - 食事を置くスペース - 時間が足りない場合に、省くものの優先度 ## bookersで詰まってしまった方へ - 何をすればいいか分からない 初めにする事を決めるうえで、必要な情報が3つあります、少し考えてみましょう。 ... 必要な工程 各工程に必要なパーツの情報 優先順位 です ではお手本のサイトを見ながら、必要な工程を全てテキストや紙に書いてみましょう。 ヒントとして、2工程例を上げます topページを作成する 投稿機能を作る