前回の記事では少なくともプログラマーの初期キャリアにおいて、高度な数学の知識が不要であることを示した。
しかし、まだ次のような疑問が残る。
直接的に数学を必要としなかったとしても、数学的思考能力のようなものが存在するのではないか。やや乱暴な表現かもしれないが、数学を習得できないような知的能力の人間、もしくは数学的センスにかけた人間はプログラミングに不向きなのではないのか。
本記事では数学の能力とプログラミングのスキルにはどのような関係があるのか論文を元に調査してゆく。
プログラミングには数学力よりも外国語学習適性、流動性知性の方が関係する
まずは、プログラミングと数学力、外国語学習適性、流動性知性の関係を調査してゆきたい。

上記の論文によると、プログラミング能力は数学力よりも外国語学習適性や流動性知性に関係しているようだ。
具体的な数字を調べると、下記のとおりだ。
一般的な認知能力 | 外国語学習適性 | 計算能力 | その他+神経心理測定 | |
学習率 | 12.8% | 43.1% | 6.1% | 38% |
プログラミングの正確さ | 57.9% | 8.7% | – | 33.4% |
宣言的知識 | 30.9% | – | – | 69.1% |
このことから、計算能力よりも、プログラミングの習得には外国語学習適性や一般的な認知能力が重要であることがわかる。
各項目の説明は以下のとおりである。
学習率: CodecademyのPython学習コースで45分間の学習セッションを10回行った際に、それだけコースを進めることができたかを示す。
宣言的知識: Codecademyの最初の14レッスンに関する50項目の多肢選択テストの結果。Pythonの関数の意味を問う質問や、どの行のコードが正しい文法であるかを問う質問が出題される。
プログラミングの正確さ: ユーザーがコンピュータとじゃんけんゲームを行えるプログラムを作成し、その正確さを評価する。
この結果を見るに、数学的能力よりも外国語学習的性や一般的な認知能力の方がプログラミングの習得に関連していることがわかる。
考えてみると、新しいプログラミング言語を学んでゆく過程は外国語を学習してゆくプロセスに近いように思える。単語の意味を覚えたり、正しい文法でプログラムを書けるようになる過程がまさにそうだ。
また、じゃんけんゲームを作成する課題についても数学的能力が必要とされる要素はほとんどないので、これも納得できる結果だ。
唯一、学習率だけ数学的能力が関係している。この理由について論文は、Codecademyのレッスンには算術演算やブール値など数学的概念を扱うものが一部存在していることによることを示唆している。それでも外国語学習適性の方が大きく関連していることがわかる。
まとめ
ここで注意しなければならない点は、この論文ではあくまでプログラミング言語学習のみしか調査対象としていないことだ。IT企業に開発職として勤めるには、覚えるべきことはプログラミング言語だけではない。そこで、次はプログラミング言語学習以外の分野について、数学的能力や他の能力はどのように関連しているか見てゆく。

