Programming

プログラミングで論理的思考が本当に身に付くの?【ロジカルシンキング】

投稿日:

プログラミングを通して「論理的思考・ロジカルシンキング」が身に付く、あるいは身に付けたい、と考えていらっしゃるあなたに、プログラミングと論理的思考がどういった結びつきをするのか、私の体験をもってお話ししたいと思います。

論理的思考とはなんなのか、なぜ論理的思考が良いとされているのか、理解を深めましょう。

プログラミングで論理的思考が本当に身に付くの?

私もプログラミングを通じて論理的思考を習得したいと考えていました。そこで、数冊の解説本を読み、非常にわかりやすく論理思考を解説している本に出会い、やっと肚落ちすることができました。

おすすめ
【書評】世界一わかりやすいロジカルシンキングの授業【確かにわかる】

私はプログラミングを通してロジカルシンキング(いわゆる論理思考)力の向上を図り、日々の業務や生活に活かしたいと考えています。 先日、とある報告会で「プログラミングでロジカルシンキング力を養いたい」と話 ...

続きを見る

こちらで紹介している本によると、論理的思考とは、より良いアイデアをモレ無く引き出す思考方法と解説されています。プログラミングにおいて、よりよいアイデアとは何でしょう?そしてモレ無くアイデアを引き出す必要があるのでしょうか?この部分に焦点を当て、プログラミングと論理的思考の関係を紐解いてみます。

プログラミングにおける「より良いアイデアをモレ無く」とは?

まず、論理思考においてもプログラミングにおいても「唯一の正解」はありません。より良いアイデアとは、自分の考えうるアイデアの中の最上級のもののことです。そのために論理思考という手法を用いてアイデアを引き出すのですね。

プログラムにおけるより良いアイデアとは

  • 速い
  • 見やすい
  • コードが少ない

この3点を指すことが多いです。速く動作し、見やすく、少ないコードでプログラミングすることで、論理思考は身に付くのでしょうか?

結論:プログラミングで論理思考が身に付くのではなく、論理思考でプログラミングをすべし

私は、プログラミングを学ぶことで、論理思考が身に付くものと考えていました。しかし、上記で述べたように、「速く動作し、見やすく、少ないコードでプログラミングする」時点で、論理思考が必要であることに気づきました。

論理思考をもって、より速いコードが無いか考え、より見やすく少ない行数で書けるコードを模索するわけです。順序が違っているのでは?と思うのです。

プログラムは、ネット上でサンプルコードを拾ってくれば、ある程度動かすことが出来る場合が多いです。「動いたからいいや」でプログラミングを終えてしまうと、そもそも思考力は高まりません。論理思考の目的「より良い」が抜けてしまっているからです。

「より速く動くプログラムにしたい」「より見やすく書きたい」といった意志なくプログラミングをしていても、論理的思考は身に付きません。論理的思考をみにつけてから、「より良いアイデアを引き出す」ために論理的思考をします。

論理思考とプログラミング思考

厳密に考えると、プログラミングにおける論理思考とは、「プログラミング思考」と言われる思考法だということにもたどり着きました。プログラミング思考と、論理思考は少し趣がちがっています。論理思考の考え方をよりプログラミングに特化しか考え方が、プログラミング思考と言えます。

下記記事でわかりやすく解説されています。

なぜ論理的思考:プログラミング思考が必要なのかよく考えないといけない

引用:文科省「小学校プログラミング教育の手引(第二版)」

小学校で始まるプログラミング授業についての資料「小学校プログラミング教育の手引(第二版)」によれば、プログラミング授業を通して、論理思考(プログラミング思考)を醸成する狙いがあると記されています。

小学生ならなおのこと、「なぜ論理思考で考えなくてはいけないのか」「論理思考で考えるとどんなメリットがあるのか」といった部分にフォーカスして教えて欲しいと思います。これはプログラミングを始める大人でも同じです。

なぜ論理的思考なのか

非常に重要なポイントだと思います。プログラミングと論理的思考がセットで語られ、プログラミングを学ぶことで、自然と論理思考ができるような雰囲気で語られることが多い気がしています。

そこには、本人の論理思考で考える意志と、なぜ論理思考で考えるのかという根本的な目的があって、初めて論理思考が役立ちます。

また、論理思考を使うまでも無い事柄も世の中にはたくさんあります。論理思考=最強 ではないこともしっかり理解しておきたいですね。

プログラミング思考を養うためにはどうしたらよいか

私の考えるプログラミング思考の学習方法は以下の通りです。

  1. プログラミングの基礎をしっかり覚える
  2. プログラミングにおける基準や規則を学ぶ
  3. 繰り返しトレーニングする
  4. 常に新しい情報を手に入れる

プログラミングの基礎をしっかり覚える

現代は、プログラミングが始めやすい環境が整っています。インターネットにつながったパソコンがあればプログラミングは始められます。独習しやすいのですね。ただ、独習で始めると基礎をすっ飛ばしてしまいやすく、ネットで拾ったコードをコピペして「動いた~パチパチパチパチ」で終わってしまうこともあるでしょう。

やはり「なぜそう書くのか」というコードの意味を知るには基礎知識は欠かせません。基礎を覚えてからプログラミングに入る必要はありません。プログラミングを学習する中で基礎を覚えて行けば良いのです。基礎を覚える意志が大切です。

プログラミングにおける基準や規則を学ぶ

プログラミングする中で、基礎に続いて大切になってくるのがプログラミングの基準や規則です。例えば変数の命名規則などは知らなくてもプログラムが動くため、人によって理解がまちまちです。

これでは「誰が読んでもわかる」といったより良いコードが欠けないばかりか、自分のコードを数か月後に見た時に何が書いてあるのかわかりません。自分の為、そしてこれから読む誰かの為にも、規則に則ったプログラミングを意識したいものです。

他人のコードを読むため、そしてより読みやすいコードを書くためにも以下の本を読むことをおすすめします。たくさんのプログラマーに愛読されているバイブルです。初心者がいきなり手に取っても理解できない内容が多いですが、少しプログラミングに慣れてきたころに目を通すと肚落ちできる部分が多いです。

繰り返しトレーニングする

基礎も規則も繰り返すことでしか身に付きません。しかし、すべて覚える必要はありません。「そういえばあんな規則があったな~」程度で思い出せるほどには繰り返しトレーニングしておきます。

プロのプログラマーだって、調べながらプログラミングしますから、すべて頭に入っている必要は無いんですね。肝心なことは「知っていること」です。どんな基礎がある、どんな規則がある、といったことが頭の片隅にでも入っていれば、詳細はわからなくとも引き出すことができます。

常に新しい情報を手に入れる

プログラミング言語は生きています。特にPythonなどの人気言語は開発も活発です。新しい機能が頻繁にリリースされるため、自分の使っている言語で「何ができるようになったのか」「何ができなくなったのか」は追い続ける必要があります。

今まで、長いコードを書いて実装してきたことが、新しいバージョンでは1行で書けるようになっているかもしれません。短いコードはそれだけで読みやすく速く動作しますから、プログラミング思考を使うまでも無くなります。どんな場合でもプログラミング思考を使わなければならないということはありません。

効率化の為にも、プログラミング思考で考えている時間を短縮できる技術があれば、それを積極的につかうべきですね。

まとめ

論理思考のまとめ

  • 漠然とプログラミングしても論理思考は身に付かない
  • 論理思考をもってプログラミングする
  • 論理思考のひとつにプログラミング思考がある
  • 論理思考を絶対つかわなければならないわけではない

プログラミングを志す者であれば、論理思考について考える・問われる場面があるでしょう。そんなときに自分の考えを述べられるように「プログラミングと論理思考の関係性」を今一度理解し直しておくと良いでしょう。

私も勉強中の身ではありますが、整理しておくとスッキリできます。「なんだかわからないけど、プログラミングを覚えると論理的思考ができるらしい・・・」という状態は脱しました。

タグ

カテゴリー

  • この記事を書いた人
アバター

from-age35

中小企業エンジニアです。35歳で急遽プログラミングを覚えることになり、PythonやJavaScriptなどをゆっくりマイペースに覚えています。先端スキルには疎いですが、楽しくコーディングしてます♪最近の興味は【WEB開発】です

-Programming
-, ,

Copyright© 35からのプログラミング , 2019 All Rights Reserved Powered by AFFINGER5.