プログラミング教育は論理的思考を育てるために役立つと言われていますが、私はだいぶ前に、ブログ:「ITプロジェクト管理」の投稿「ソフトウェア開発のキャリヤパス」の中で、全く逆のことを書きました。「論理的な思考ができない人はソフトウェア開発に向いていない」。長年多くの人と仕事をしてきた経験からこのような結論に到ったわけです。
論理的思考能力とプログラミング能力とどのような関係になっているのか、今のところはっきりしませんが、面白いので先の「ソフトウェア開発のキャリヤパス」から関係する個所をここに引用しておきます。
以下は引用です。
1.ソフトウェア開発技術者として必要な潜在能力
ソフトウェア開発に必要な能力は多岐に亘り、沢山の事項が挙げられます。その全てに通じていなければならないということはありません。例えば、プログラミングの経験は必要ですが、プログラミングが苦手な人でも、コミュニケーション力がある人はソフトウェア開発に貢献できます。全能な個人を求めること自体に無理があります。得意領域が異なる複数の人が集まってプロジェクトを構成すれば、組織として強力な開発能力を持つことができます。
1つだけ確かなことは、論理的な思考ができない人はソフトウェア開発に向いていないということです。ソフトウェアは論理から成り立つ表現物だからです。適当につじつま合わせをする性質の人は事故の元になりますので、この領域に携わることは控えるべきです。
多くのソフトウェア開発企業では、新入社員の採用に際し、適性検査、一般教養テスト、面接を行っています。小論文を採用している企業もあります。中でも小論文は非常に有効です。
『どのようなテーマでも良いので、自分の主張をA4用紙2枚にまとめて、1週間後に提出してください』という課題を与えて見ます。このとき、1週間後にその小論文について質問すると予め伝えておきます。小論文は論理的な考え方ができるかどうかを見極めるのに役立ちます。ソフトウェア開発と論文執筆は似たところがあります。ソフトウェア開発はトップダウン手法で行います。まず、全体構成を設計し、次第に詳細化するのが一般的手法となっています。論文についても同様です。まず、論点を明らかにし、全体構成を考えて、執筆するのが一般的です。私自身、この方法を使って、適性を見極めたことがあります。論理的な文章が書けない人はソフトウェア開発に適していなかったと記憶しています。ソフトウェア開発に向いているか否かを判断するのに小論文は大変有効であると考えられます。上記はあくまでも仮説です。情報処理を教える人で、論文執筆能力とソフトウェア開発能力の相関を調べてもらえると大変あり難いのですが、そのような方はおられないでしょうか。
ソフトウェア開発では、帰納法的能力も要求されます。帰納法とは、具体的な事実から一般論を導くことですが、ソフトウェア開発では、この能力が特に重要です。ソフトウェアの設計は正にこのような思考の積み重ねで行われるからです。複数の事実をよく観察・分析し、一般化してプログラムという形に組み上げる作業がソフトウェア開発の核となる作業です。
ソフトウェア開発で要求される能力として、プログラミング能力、ドキュメンテーション能力、コミュニケーション能力などがあります。もっと即物的な能力として、JAVA言語、C言語、ORACLE、UNIX、Windows、.NET、J2EE、・・・などの知識・利用経験などがありますが、こうした能力は論理的思考ができる人ならば、数ヶ月でマスターできるはずです。現在知らないということが、ソフトウェア開発に向かないと判断する材料とはなりません。