論理を制するものはプログラミングを制す!?|初心者は論理的思考力を身につけよう

論理的思考力やアルゴリズムについて学ぼう

「プログラミングをやろう!」
そう思い、プログラミングの勉強を始める方が増えていますね。

プログラミングができたら仕事につながりそう…と、
なんとなく始められた方もいるのではないでしょうか。

ですが、実際に「なんとなく」でプログラミングを始めると、
途中で難しくなって挫折してしまうことも結構あるんです。。。

プログラミングはあくまで言語です。
何をどうやって作るのかを考える基礎ができていないと、
挫折したり、思ったような動作がしなくて困ることにつながります。

この記事では、現役のシステムエンジニアの私が、
どのプログラミング言語でも基本となる
「論理的思考力」「アルゴリズム」について、
どんなものか、どうやって身につけるのかを説明します。

論理的思考力、アルゴリズムって何?

そもそも「論理的思考力」「アルゴリズム」とはなにか、あなたは説明ができますか?
まずは言葉の定義から確認していきましょう。

  • 論理的思考力
  • :ものごとを順序立てて考える力のこと

  • アルゴリズム
  • :問題を解決するための手順のこと

    論理的思考力とは、ものごとを順序立てて考える力のこと

    論理的思考力とは「ものごとを順序立てて考える力」のことを言います。

    料理を例に考えてみます。

    例えば「今夜はカレーよ!」と思った時、あなたは何をするでしょうか。
    おそらく、以下のように考えるのではないかと思います。

      カレーを作るまでの手順

    1. 冷蔵庫の中身を確認する
    2. →材料があれば④材料を切る。なければ②食材を買う。

    3. 食材を買う
    4. 食器、調理器具を準備する
    5. 材料を切る
    6. お鍋に水と野菜を入れて火にかける
    7. カレーのルーを足して煮込む
    8. 盛り付ける

    このように、どんな手順でものごとを進めていけば、
    ムダなく対応を行うことができるのかを考えることを「論理的思考」といいます。

    もし食材の確認を行わずに材料を切ってしまったらどうなるでしょうか。
    こんな問題が発生する可能性があります。

    順番を間違えると起きる問題

  • 冷蔵庫の中身を確認せずに材料を切る
  • :あとでカレーのルーがないことに気づく

  • 調理器具の準備を忘れる
  • :材料を切ったタイミングで鍋が使用済みなことに気づく

    つまり、論理的思考力は問題を未然に防止する上でも、
    とても大切な考え方と言えます。

    料理の例だと「当たり前じゃん」と思われた方も多いと思いますが、
    コンピューターに対して何か指示を行う場合は、
    このように細かな手順についても、考えていく必要があります。

    順番を間違えてしまうと正しい動作ができなくなってしまうため、
    プログラミングを行う上で「論理的思考力」はとても大切です。

    アルゴリズムとは問題を解決するための手順

    アルゴリズムとは一言でいうと「問題を解決するのための手順」のことです。

    先程の例と同じように、カレーを作る例で考えてみます。

    材料を切る時、あなたはどのような手順で材料を切りますか?
    例えば以下のように考えると思います。

    じゃがいもの皮をピーラーでむく。
    じゃがいもを半分に切る(食べやすい大きさになるまで繰り返す)。
    にんじんの皮をピーラーでむく。
    にんじんを半分に切る(食べやすい大きさになるまで繰り返す)。

    このように実現したいことを達成するために、
    どのような手順で対応するのか考えることをアルゴリズムと言います。

    アルゴリズムは問題を解決するための手順のため、複数の答えがありえます。
    例えば、先程の野菜を切る例であれば、
    「先に材料を食べやすい大きさに切ってから、皮をむく」という手順などです。

    プログラミング言語は様々ありますが、どのような言語においても、
    この「アルゴリズム」によって、処理手順が構成されています。

    コンピューターを動かすにあたっては、
    具体的にどんな手順で実施するのかを指示することが必要となるからです。

    プログラミング言語は時代や求められる要件によっても変化してしまうため、
    今学んだことが将来もそのまま使えるとは限りませんが、
    アルゴリズムを考える基礎がしっかりとできていれば、
    どんな言語であっても、それほど難しくなく、
    新しい言語を理解することができるようになります。

    このため、特にプログラミング初心者においては、
    「論理的思考力」「アルゴリズム」をしっかりと身につけることが大切です。


    論理的思考力・アルゴリズムを身につける方法は?

    論理的思考力やアルゴリズムを身につけるにはどうすればよいでしょうか。

    インターネットや本、アプリなどのサービスがたくさんあって、
    迷う方もいらっしゃるのではないかと思います。

    今回は、実際に私が使ってみておすすめできるものにしぼって紹介します。

    ネット環境があればOK!おすすめのサイト

    ネット環境で気軽にアルゴリズムを学べるサイトを紹介します。

    アルゴリズムとは何か!?〜文系理系問わず楽しめる精選6問〜
    アルゴリズムの定義や実例について紹介しているサイト。
    最初の問題は、初心者でもとっつきやすいと思います。
    ぜひ何度も繰り返し解いてみて、勉強してみてほしいです。

    ネット環境がなくてもOK!おすすめの書籍

    本を読んで勉強したいという方におすすめの本を3冊紹介します。

    ①世界一やさしい「思考法」の本「考える2人」の物語


    ロジカルシンキング(=論理的思考力)、クリティカルシンキングなどの考え方のエッセンスを物語にしてわかりやすく説明している本です。
    「ロジカルシンキングって言葉がとっつきにくい」という方でもすらすら読めます。

    ②論理的思考力を鍛えるための50のパズル
    created by Rinker
    ¥1,080 (2018/11/19 17:40:47時点 Amazon調べ-詳細)

    論理的思考力を鍛えることができるパズルを50個分、解説つきで紹介している本です。
    1問ずつ、通勤時間やスキマ時間で気軽に解くことができます。
    時間がないけど勉強したいあなたにおすすめです。

    ③アルゴリズム図鑑 絵で見てわかる26のアルゴリズム

    アルゴリズムとは何か、図解してくれている本です。
    カラーで見やすい、分かりやすいのが特徴です。
    アルゴリズムって何?という方はもちろん、IT関連の資格を目指している方におすすめです。

    プログラミングも同時に勉強したい!おすすめアプリ

    「せっかくならプログラミングも勉強しながら論理的思考力を鍛えたい」という方におすすめのアプリを紹介します。

    Swift Playgrounds
    ※iPadのみ対応です。
    中学校のプログラミング学習などでも利用されている、
    Swift(iPhoneアプリ開発などで利用する言語)でアルゴリズムやプログラミングを学べるアプリです。
    初心者にも分かりやすい解説つきなので、はじめてプログラミングを勉強する方にもおすすめです。

    scratch
    小学校のプログラミング授業などでも利用されているプログラミング言語を学習できるソフトです。
    Web上で簡単にプログラミングを学ぶことができます。


    まとめ:まずは論理的思考力、アルゴリズムを学んで基礎固めをしよう

    手に職をつけるために、プログラミングを学ぶ方が増えていますが、
    基礎が十分でないまま言語の勉強ばかりをしていても、
    あとでつまずく要因になってしまいます。

    プログラミングスキルを本当に身につけたいのであれば、
    論理的思考力やアルゴリズムを学ぶことで、
    まずはしっかりと基礎固めをするところから始めてみてくださいね。

    最後に「論理的思考力」「アルゴリズム」について、もう1度おさらいします。

  • 論理的思考力
  • :ものごとを順序立てて考える力のこと

  • アルゴリズム
  • :問題を解決するための手順のこと

    この記事が、あなたのプログラミング学習の手助けになれば嬉しいです。

    ▼システムエンジニアを目指したくなった方への記事です。

    文系の私がシステムエンジニアを選んだ理由

    コメントを残す

    メールアドレスが公開されることはありません。

    CAPTCHA