抽象化
洗い出したパターンを抽象化して考えます。複数の問題に共通するパターンの因果関係について考えたり、一見別々の問題だと思っていたものが同じ問題に起因するものではないか考えたりします。ここでいかに情報を落とすことなく簡単な問題へ抽象化できるかによって、問題解決に必要なコストが変わってきます。
手順化
最後に、抽象化した問題を解決するための方法、順番などについて考えます。料理のレシピや作業マニュアルのように誰でも実行できる状態まで手順化してあると、非常に再現性の高い解決方法だと言えます。はじめは一部属人的な部分があっても構いませんが、最終的には属人的な部分がすべてなくなることが望ましいでしょう。
まとめ
プログラミング的思考は目的達成のための一連のプロセスを設計・選択するために必要な力です。プログラミング的思考はコーディングだけで使われるものではなく、日常生活で発生するさまざまな問題解決に役立ちます。同時に論理的思考力も鍛えられるので、小さいうちからプログラミング教育を受けることはやはり有意義だと言えそうです。