プログラミングはセンスです。センスの無い人にはプログラミングはできないし、無理にやると他人に著しい迷惑をかけます。だから、センスの無い人は絶対にプログラマにならないで下さい。
ここで強調すべきことは、センスの無い人の問題は「知識が無いこと」ではないということです。多くの人は、「まずいやり方をしてしまうのは、良いやり方を知らないから」だと勘違いしていますが、実際には違います。センスの無い人の真の問題は、「頭がおかしいこと」なのです。つまり、明らかに自分たちの首を絞めるだけの行為を「良いやり方」だと勘違いする、著しい認識のズレが問題なのです。
たとえばポーカーの役の判定を実装するとしましょう。普通の人なら何も考えずに「ストレートフラッシュかどうか」「フルハウスかどうか」などの個々の役判定の関数を実装し、優先度の高い順に判定して最初にマッチした役を返すでしょう。しかし、センスの無い人は、
のような超複雑怪奇な判定ロジックを組もうとします。これがまずい理由は如何様にも説明できます。が、問題の本質はこの方法の瑕疵を論うことではなく、「こんなコードを書く奴は頭がおかしい」ってことなのです。
経験上、センスの無いプログラマはどんなに教育しても一向に良いコードが書けるようにはなりません。それは考えてみれば当然で、小学生や中学生に勉強の習慣などから教え込むならともかく、まともな思考ができないまま大人になってしまった人を教育するのは不可能なのです。
世の中には、こういうプログラミング以前の基礎的な思考能力が足りないのにプログラマになろうとする人が多いのですが、本当にやめて下さい。あなたがプログラマになると、あなた以外の全ての人が不幸になります。