はじめに
プログラマーとして働き始めて、技術の勉強は順調。
でも、上司から「もうちょっと案件の仕様を把握しようか。」と言われることが多い...そんな悩みありませんか?
もしかしたら、その悩みは技術の習得では解決できないかもしれません!
プログラミングスキルとは別に「思考法のスキル」が必要かもです。
この記事ではプログラマーに必要な思考フレームワーク3つのうち、ロジカルシンキングについて解説します。
【関連記事】
プログラマーに必要な思考フレームワーク3つ
プログラマーに必要なロジカルシンキングとは
プログラマーに必要なラテラルシンキングとは
プログラマーに必要なクリティカルシンキングとは
対象者
この記事は下記のような人を対象にしています。
- 駆け出しエンジニア
- プログラミング初学者
- 上司に「もうちょっと考えてみようか」と言われがち
- 複雑な問題にぶち当たると頭痛がする
結論
- ロジカルシンキングとは、論理的に物事を分解して考える思考法。
- 主に実装を担当する人が使う思考法。
- アプローチの方法は「演繹法」「帰納法」の2つ。
ロジカルシンキング(垂直思考)とは
ロジカルシンキングとは、論理的に物事を分解して考える思考法のことです。
複雑な課題を単純な課題に切り分けて、一つ一つ地道に考えていくやり方になります。
ざっくり言うと「AをやったらBになるはず」と言う考え方なので、とっつきやすいのが特徴。
プログラマーで言うと、主に実装を担当する人が使う思考法と言えます。
ロジカルシンキングでは、過去のデータや経験に基づいて判断します。
そのため、経験のない現象に関しては効果的に対処ができない場合があるので要注意です。
アプローチの方法は「演繹法」「帰納法」の2つです。
演繹法とは
演繹法は一般的には三段論法と呼ばれる思考法です。
「個別の事実」と「一般的なルール」を使って、「結論」を推測できるのが特徴です。
では、プログラマーが遭遇しそうな具体例で解説しましょう。
【前提条件】
- 楽天やYahooショッピングのようなECサイトの商品一覧ページを制作している。
- 「あるロジックに商品IDを渡せば、商品名、税込価格、商品写真を表示する」部分を実装している。
【解説】
その際に、商品の個数分、全部ベタ書きする...なんてことはしませんよね。
「1つの商品を表示できるようにする」
↓
「ループ処理で全商品分表示できるようにする」
と言うのが一般的なやり方かと思います。
これがまさに演繹法の考え方です。
- 個別の事実 → 1つの商品が表示できた。
- 一般的なルール → ループ処理は同じ処理を繰り返すもの。
- 結論 → 上記を組み合わせればすべての商品が表示できる(だろう)。
ここで言う「一般的なルール」とは、誰が見ても同じ認識になるような常識的な範囲にするのがキモです。
ここでオレオレ理論を主張してしまうと「奴の言ってることはわからん」「アイツはワガママ」などといわれてしまうので要注意です。
帰納法とは
帰納法とはいくつかの個別の事実を集め、結論を推測する思考法です。
少ないデータで結論が出せるので、効率が良いのが特徴です。
では、プログラマーが遭遇しそうな具体例で解説しましょう。
【前提条件】
- 楽天やYahooショッピングのようなECサイトの商品ページを制作している。
- 「商品ページに税込価格を表示する」部分を実装している。
【解説】
全ての商品で税込価格が表示されているか、1つずつ確認するのは効率が悪いですよね。
その際に活用するのが帰納法の考え方です。
「商品Aで正しく表示されている」
+
「商品Bでも正しく表示されている」
↓
「全ての商品で正しく表示されている(だろう)」
上記のように考えれば、2つ確認するだけで全部OKの判断が出せます。
- 個別の事実(1つ目) → 商品Aが正しく表示できている
- 個別の事実(2つ目) → 商品Bが正しく表示できている
- 結論 → 全ての商品が正しく表示できている(だろう)
ただし、個別の事実を適当に選んでしまうと、論理が破綻してしまうので要注意です。
例えば、「セール対象商品は10%割引して税込価格を表示する」というロジックが別途実装されていた場合、セール対象品/非対象商品の両方をチェックすれば完璧でしょう。
おわりに
「プログラマーに必要なロジカルシンキングとは」についてまとめました。
演繹法と帰納法を使い分けて、駆け出しエンジニアを卒業しましょう!
関連記事
プログラマーに必要な思考フレームワーク3つ
プログラマーに必要なロジカルシンキングとは
プログラマーに必要なラテラルシンキングとは
プログラマーに必要なクリティカルシンキングとは