数学とプログラミングには深い結びつきがあります。どちらも論理的思考、問題解決、抽象的推論の上に成り立ち、片方で得たスキルはそのままもう片方にも使えます。より良いコードを書くために必要な数学の知識を1冊にまとめたのが新刊『 プログラミングのための数学大全 』です。その読みどころをBloom&Co. 取締役 CTOの増井雄一郎氏が解説します。

コーディングエージェントの登場によって、プログラマーの役割は大きく変わり始めています。その価値の中心が、コードを書くことから、生成されたコードを理解して判断することへ移りつつあります。そのため、コードの背後にある原理を理解する力が、以前より重要になっています。
私はいわゆる文系出身で、大学で数学を履修したことはありません。しかし、ひょんなことから音声認識や補聴器に興味を持った際、その基礎に数学があり、自分の知識だけでは作りたいものを実現できないことに気がつきました。そこで、フーリエ変換や行列など、音声処理に使われる技術用語の意味を調べ、つまみ食い的に勉強するところから始めました。その途中でChatGPTがリリースされ、自分の理解を言葉にして伝えることで、間違いを指摘してもらったり解説してもらったりできるようになりました。分からないことを何度でも繰り返して質問できるので、勉強がとてもはかどりました。
その一方で、必要な部分だけを断片的に学ぶことは、知らないプログラミング言語のサンプルコードを切り貼りして「とりあえず動きました」と言っているプログラマーと変わらないとも感じていました。本当の意味では理解できていないのではないか――そうした思いをずっと抱えていたのです。
本書『プログラミングのための数学大全』は、そんな断片的な知識をつなぎ、プログラマーが必要とする数学の全体像をつかむのに、私にとって最適な本でした。数の表現、集合、ブール代数から、再帰、グラフと木、確率・統計、線形代数、微積分、微分方程式まで、1冊で広い領域を見渡せます。なじみのない数式だけでなく、PythonやCのコードを通して、数学的な概念が実際の処理としてどう動くかを確認でき、プログラマーにも理解しやすい形で説明されています。私にとって、動くコードを足場に抽象的な数学へ入っていけることは、理解の大きな助けになりました。
500ページを超える本書は、決して手軽な入門書とは言えません。「数学の知識は高校で習う代数程度で十分」とされていますが、私のように大学で数学を履修してこなかった人や、数学から長らく離れていた人にとっては、読み解くのにかなりの時間がかかります。まずは各章末のまとめを読んで、各章のポイントを頭に入れてから読み進めるのがお勧めです。著者は前から順番に読むことを勧めていますが、興味のあるところから読み始め、必要に応じて前の章に戻り、最後に全体を通して読むのでもよいと思います(読者のみなさんの数学に対する得手不得手には差があるでしょうから)。通読することで、知識の断片が1つの体系としてつながっていくことでしょう。
コーディングエージェントを使いこなすには、AI(人工知能)に意図を正確に伝え、生成されたコードの前提や正しさを検証し、より良い方向へ導く力が重要になります。そのとき、数学は単なる教養でも、学生時代の学び直しでもありません。数学をAIと対話するための共通言語として使えることは、大きな力になるはずです。数学に苦手意識があり、これまで必要な部分に「パッチを当てる」だけで済ませてきた現役プログラマーにこそ、本書を手に取ってほしいと思います。AIと対等に話すための、頼れる地図になるはずです。