これまでたくさんの未経験者にプログラミングの講義をしてきました。何も知らない人に対してわかり易く説明する事は、相手にある程度の知識があるのを前提に教えるより数倍難しいのは想像できると思います。
これは私の持論ですが、プログラミングはそれを覚え始める最初の1年目が一番大事です。始めのとっかかりで勉強の仕方のベクトルを間違うと、その後の成長に大きく関わります。それが原因で潰れてしまって業界から去っていった人を過去に何人も見ています。本当にもったいないなあと思います。

多くの人達に教えているとすぐにわかってくる事ですが、つまづく箇所はみんなほぼ一緒です。疑問に思う点も同じです。他人とは違うところでつまづいたり疑問を持ったりする人はあまりいません。ただ違うのは、そこでつまづくか、あるいはそこに疑問を抱くかです。

まずはつまづく点について。多くの人がつまづく箇所を問題なく解決できる人がいます。そういう人は頭がいい。一度引っかかっても自分で考えて解決策を見付けてしまえる能力があります。そして似たような問題に遭遇した時には、もう引っかかりさえしません。自分で解決策を見出した体験が残っているので、それが染み付いていて忘れないからです。問題解決に他人の力を借りないといけなかった人は、類似の問題でまたハマる確率が高いです。

次に疑問に思う点の話。これは上記のハマる点とは逆です。多くの人が何の疑問も持たずにスルーしてしまう話に『ちょっと待って。なんで?』と疑問を持つ人がいます。実はこのように疑問を抱ける方が頭がいい人です。講師の話をそのまま知識として蓄えようという受身の姿勢しかない人は自分で考えて理解する能力に欠けています。自分で考えて納得したものしか受け入れないという性格は、プログラマにとっては実は大事な資質なのです。

これらの話はあくまで私の経験から感じた事でしかありません。しかし私は預かった新人を相手にプログラミングの講義を数日もやれば、その人が将来優秀なプログラマに育つか芽が出ないで終わるかが見えてしまいます。その勘は記憶の範囲では外れた事はありません。

自慢をしようというのではなく、言いたいのは、プログラマとしての資質というのはそれくらいハッキリしているという事です。正直に言います。未経験でもプログラマになれます。しかし誰でもプログラマになれる訳ではありません。大事なのは経験ではなく資質です。下手に経験だけがあってベクトルを間違えてしまっている人よりは、何も知らないまっさらな人の方が伸び白が大きいと思います。未経験者でもやる気さえあれば大歓迎、と私が言うのはそういった理由からです。