Quora回答シリーズです。
質問
ほとんどの人にとってプログラミングは難しいのはなぜでしょうか?
※質問ページ
学生時代、プログラミングの授業で印象深かったのは「自転車に乗れるようになると、乗れなかったころの気持ちが分からなくなる」という言葉でした。他の方の回答に「え、難しいの??」という言葉があるのはそのせいかもしれないですね。
ここでは2つの視点から回答してみました。
回答
退屈に耐えらない
単純に最初に覚えることが多いからですね。
人間は興味のないことを延々と学習すると、苦痛を感じる生き物のようです。学校の授業で興味のない教科は眠くなりませんでしたかw? 強い動機付けがされており、明確な目標や目的があれば途中経過が退屈だったとしても耐えることができますが、それすらないと最早生き地獄です。
プログラムはある程度のレベルの物が書けるようになるまで、基本的な文法や実行方法など最初に覚えなくてはならない「作法」が大量にあります。この退屈な時間を乗り越えられるかがマスター出来るかどうかの別れ目ではないでしょうか。
中にはこの作法を覚える過程ですら楽しいと思える人がいますが、そういった人は吸収も早いです。私がこのタイプで今も昔もプログラムはオモチャだと思っています。中学生の頃ちょっと動かしただけで当時は興奮していたのをよく覚えていますw
脳内でイメージできない
プログラムは予め脳内で様々な事をイメージし、そのイメージをキーボードを通して出力する作業です。このイメージが非常に重要で、まず最初に全体像や構造がどうなっているか頭の中でパズルや積み木を組み上げるように作っていきます。そのあとで積み木の角度はどうなっているか、どんな色や形をしてどう組み合わさっているか細部をひたすらコードという形で表現します。もちろん途中で行き詰まったり問題が起きたら組み直す作業も生じます。
さらにこのイメージは処理が進むにつれ変化を遂げます。プログラムの実行当初と終了時では形が変わっていることがほとんどです。
このように目に見えない、形の無いものをイメージし状況に応じて柔軟に変化させることが出来ないと非常に難しい行為と言えます。もちろん目に見えるようにノートなどに落書きしても良いのですけどねw (実際に落書きする人は多いですし、打合せではホワイトボードが大活躍します)
例えるなら小説を書いているような物でしょうか。小説もまずは全体の構造が分かるようあらすじや登場人物をまとめたプロットを作成します。これをもとに脳内で登場人物を動かし、シーンに合わせて舞台装置を用意、その有様を言葉にするわけですがプログラムはもそれと似ています。
ですので、昔から頭の中で色々な事を空想するのが好きだった人や明確なイメージを脳内で生み出せる人は習得が早く向いているといえます。もう少し身近な例だと地図を読める人も才能がありそうですね。逆にこれらが苦手な人にとってプログラミングは『重労働』だと思います。