この記事では、前半で論理的思考とプログラミング能力が互いのどのような関係にあるかをご紹介します。
論理的思考はプログラミング能力に深くかかわっており、それゆえにプログラミングを通して論理的思考力を磨くことができます。後半では、実際にプログラミングを通して論理的思考力を磨く場合の方法についてご紹介します。
なお、
- 論理的思考とはどのようなものか?
- エンジニアになぜ論理的思考が求められるのか?
- 一般論としてどのように身に付ければよいのか?
については、以下の記事を参考にしてください。
目次
プログラミングと論理的思考の関係は?
効率的なプログラミングに論理的思考が必要
ある程度大きなプログラムを作成する場合、ただ漫然とコーディングしていくと、何回も手戻りが生じ、その結果としてバグも頻発することがよくあります。そのため、論理的思考を用いて目標や必要な処理といった情報を事前に整理し、計画的にプログラミングに取り組むことがよく行われています。
プログラミングを通して論理的思考のトレーニングも可能
そのため、プログラミングを通して論理的思考のトレーニングが可能です。論理的思考のトレーニングというと、
- 仕事の中で実際に応用する
- 自分の意見を論理的思考で整理し文章にしてみる
などが挙げられます。しかし、仕事であれば論理的思考のトレーニングばかりにかまけている訳にも行きませんし、自分の意見を文章化したとしても、それが客観的に論理的かどうかを判定するためには誰かに読んでもらうという高いハードルを越える必要があります。
一方、趣味のプログラミングであれば、仕事と異なり存分にトレーニングの場として活用できます。また、論理的思考が十分使えているかを、作業時間といった客観的な指標で自己完結的に評価することがある程度可能です。そのため、1人でも論理的思考力を向上させたいのであればプログラミングは良い手段になります。
プログラミングを通して論理的思考を鍛えるには?
コーディング前の準備やデバッグ作業が論理的思考力の良いトレーニングになる
プログラミングにより論理的思考力を鍛えることはできますが、ただプログラミングに取り組めば論理的思考力向上に繋がる訳ではありません。コーディング作業というよりも、その前の準備として行う設計が、論理的思考力の良いトレーニングになります。
最終的な目標を達成するために必要な処理を書き出してみる
実際にコーディングに移る前に、最終的な目標を達成するために必要な処理を書き出していきましょう。それぞれの処理について、
- 既にどのようにプログラミングすればよいか分かる
- ライブラリなどで既に存在している、あるいは探せばありそう
というレベルになるまで、更に具体的な幾つかの処理に分割していきます。
この作業は、論理的思考における目標から逆算して必要な要素を順番に求めていく過程そのものです。また、「この処理を実施するためにはこの処理が必要」という根拠を考える必要もあるため、必要な要素に妥当な根拠をつける訓練にもなります。
フローチャートを作成し、処理の流れを決める
必要な処理を書き出したら、フローチャートを作成して処理の流れを決めましょう。どのように処理を分岐させ、どの順で処理を実施するのが一番効率的かを考えながらフローチャートを作成します。
この作業は、目標を達成するために最適な処理の実施順を考える良い訓練となります。
どの機能を関数・クラスにするのかを意識して設計してみる
必要な処理を書き出すと、幾つかの処理は入力や出力が変わるだけで、実行内容そのものは同じであることに気付くはずです。コーディングに移る前に、そのような処理を関数やクラスとして設計しておきます。
これは論理的思考というよりも、ITエンジニアとしての良い訓練になります。予めどのような関数やクラスを準備するか決定することは、コーディングやデバッグといった作業の効率的な実施に繋がります。
デバッグ作業でも論理的思考力を使う
設計段階のほか、エラーが生じた際のデバッグ作業も論理的思考を適用する良いトレーニングの場になります。エラーメッセージからどの処理でエラーを吐いているのかを確認したら、そこからデバッガや標準出力機能を使い、想定していた挙動とは異なる挙動をしているサブルーチンや想定していない値が入っている変数などを順に調べていきます。
この作業も必要な処理の書き出しと同様、目標から逆算して必要な要素を順番に求め、その根拠を考える良い訓練となります。
簡単なプログラムを作成しても効果は薄い
ただし、前節の内容からも分かるように、事前の準備が無いと手戻りが生じてしまうようなある程度の規模があるプログラムを作成する必要があります。
実際、高々関数1つ2つから成るような簡単なプログラムであれば、思いついた内容から適当にコーディングに着手しても、人によってはすぐに成果物が得られてしまいます。これでは論理的思考のトレーニングとしての効果はあまり見込めません。
論理的思考のトレーニングとするためにはある程度プログラミングの知識が必要
従って、プログラミングで論理的思考力を鍛えるためには、それなりの規模のプログラムを作るためのプログラミングに関する基礎的な知識が必要になります。例えば、コーディングに使うプログラミング言語ではどのようなライブラリが提供されているのかが把握できていなければ、必要な処理をどのレベルまで具体的に書けばよいのかも分かりません。
プログラミングを通して論理的思考を鍛えるためには、コーディングに用いる言語で出来る処理について予め知識を持っていることが要求されます。そのため、わざわざ論理的思考を身に付けるためにプログラミングに取り組むことが最適かと言われると難しい部分はあります。
まとめ
プログラミングは論理的思考のトレーニングとしても活用できますが、そのためには基礎的な知識が要求されます。他分野の場合は一長一短がありますが、ITエンジニアとして活躍したいのであれば、技術と論理的思考の両方を身に付けることができ一石二鳥です。ITエンジニアとして今後働いていきたいと考えている方は、ぜひ取り組んでみましょう。
もう一度「論理的思考はプログラミング能力にどのように関係する?プログラミングを通して身に付く?」を読む ↑
論理的思考力を活かしてエンジニア転職するなら
エンジニア転職における面接の場では、応募者の論理的思考力を見極める質問をされる事も多くあります。
その場で慌てず的確な受け答えをするためにも事前準備が大事になりますが、そこで活用したいのが、転職エージェントです。このような支援サービスであれば、企業ごとに質問されやすい内容や適切な回答の仕方についてアドバイスしてくれるので、利用しない手はありませんよ!
IT・Web業界に強い転職サイト・転職エージェントを比較するなら、「エンジニアにおすすめ!IT/Web系に強い転職サイト11選|現役プロが比較・ランキング」を参考にしてください。スキル・経験に合わせた求人や未経験OKの求人、女性の働き方に理解のある企業の求人など、自分”ぴったり”の職場を見つけることができますよ!
いきなりの転職が不安な方はプログラミングスクールという選択も
いきなり転職活動を開始する前に、「まずはプログラミング言語のスキルを身につけておきたい」。そう考える方には、プログラミングスクールの受講をおすすめします。
未経験・社会人でも安心して学習できるスクール、そして転職付き(転職保証型)のスクールなど、条件や目的によって選ぶ基準も様々だと思います。まずはじっくりと比較して、少しでも気になる教室があれば無料相談・体験会に申し込んでみると良いでしょう。
未経験・社会人、学生におすすめなプログラミングスクールを比較するなら、「おすすめプログラミングスクール比較11選!社会人・未経験の転職・就職にも有利!」という記事を参考にしてください。
転職付き(転職保証型)のプログラミングスクールの詳細を知りたいかたは、「【無料あり】転職支援・保証型プログラミングスクール比較11選!社会人・学生さんの就職に強い!」をご覧いただき、自分の目標や目的にぴったりのスクールを見つけてくださいね。