最近、ある疑問が浮かんできた。
競技プログラミングで赤になる人を見てきたが、不思議だったのは、高IQが失敗していることはあるが、それよりもIQの低い人がずっと成長すること。
例えば思考パターンの差は関係するだろうか。BFS思考の人は可能なアルゴリズムやアイデアをたくさんブレーンストーミングして問題を解決しようとするが、DFS思考の人はアルゴリズムを選び、それをより深くより複雑にして、最終的に問題を解決しようとするかもしれない。もっと良いのはA*思考の人。
人間がなぜ「知能」という広い概念を「符号なしchar」に詰め込もうとするのかよくわからない。確かにIQは何かを表していて、それが特定のスキルとうまく相関している可能性もあるが「競技プログラマーは競技プログラマーとして特殊な能力を持っている」と言ったほうが近いのではないか。
問題を早く解決できればできるほど、より多くの問題を解決でき、より多くを学ぶことができるので、コーディングは一種の自己改善能力とも言える。
一方で残念なのは、paizaレーティングをツイートしているような人たちで、明らかに努力の痕跡が見られる人を馬鹿にするように、たった数回でトップレーティングに上り詰めるような人がいることである。これは「IQが高かったから」なのか、それとも別の要因が背後にあったのか。
もしIQとはあまり関係がなく、継続的に努力することが成功要因であれば、年齢ができるだけ若いときに参入した者の勝利である。そういうわけで、プログラマーが子育てをすると躍起になる傾向にある。