執筆のレビューに参加した"問題解決のための「アルゴリズム×数学」が基礎からしっかり身につく本"をダイマする
こちらの本の執筆中のレビュワーの一人として参加させていただきました。
自分が手伝ったからというのももちろんあるのですが、内容がかなり自分好みなものになってオススメしたい気持ちがかなりあるので、勝手にダイマ記事(not 案件)を書きます。
どういう本か(概要)
タイトルどおりなのですが、数学とアルゴリズムについて解説している技術書です。
他のアルゴリズム関連の本に比べると、どちらかといえば数学に比重を置いた内容になっています。
扱う範囲としてはまず中学レベルの数学、具体的には「文字式」「指数関数」「最大公約数・最小公倍数」「期待値・平均」などです。
その後、競技プログラミングでよく使用する実戦的なアルゴリズムの解説をしながら高校、場合によっては大学レベルの数学まで解説しています。
この本の1番の特徴を挙げるとしたら、それはなんと言っても「読みやすく分かりやすい」ということです。
そりゃはどの本だってそれを目指しているだろうと言われればそうなんですが、この本は本当にそこが大きく差別化出来ている部分だと思っています。
どこが「読みやすく分かりやすい」のか
一つずつ説明していきます。
フルカラーで図がとても多い
まず、この本はフルカラーです。技術書でフルカラーというのはあまりセールスポイントにならないでのはと思うかもしれませんが、この本はとても多く図を使用しています。
例えばアルゴリズムの解説であれば、多くの本は実際のコードとその説明に多くの紙面を使っていると思いますが、この本の場合はまず多くの図を使い、アルゴリズムのステップごとに状態がどう変化していくのかを丁寧に説明しています。
コードを多く載せるスタイルの解説は人によっては一番明瞭で分かりやすいかもしれませんが、自分のようにあまり脳のメモリが多くない人にとってはなかなかしんどいです。それが難しいアルゴリズムの説明なら尚更です。
それがフルカラーで載っているため、とても視覚的に理解しやすくなっています。
正直、すでに理解している人には過剰に思えるほど丁寧に解説していると思います。
一つひとつの文章が簡潔で見やすい
これも実際に読んでみると分かると思うのですが、文章が分かりやすく見やすくなっています。1ページ全て文字で埋め尽くされていたり文章の中にいくつも数式が出てくるような部分はほとんどありません。
>まず簡潔な説明→分かりやすい数式と図→次の説明
のように、長く複雑な文章を読んでいると混乱してしまう人でも読みやすい構成になっています。
数学が苦手な人(私です)がレビューに参加している
なぜこの本は読みやすく分かりやすいのか、それはもちろん著者の努力の賜物であるのですが、執筆の上で多くの人がレビューに参加しているというのがあります。
一般的な技術書がどういう執筆スタイルなのか詳しくは知りませんが、この本の場合は初稿が完成してからの査読という形ではなく、数ページ単位で書かれた内容が多くの人にレビューされ、理解できたか、どこが分からなかったか、どちらが適切だと思うかなどの意見を求めています。
さて、自分きりみんちゃんもこのレビューに誘われ参加した一人なのですが、おそらく自分はレビュワーの中で一番数学が苦手だったと思います。
きりみんちゃんはVTuberとして競技プログラミングに2年以上取り組んでいますが、元々数学の基礎知識が全くなく、どのくらい苦手なのかはいつも見てくれている人ならよく知っていると思います。
この本のレビューをしている時はちょうど競技プログラミングのために問題集を買って小学校・中学校の数学を勉強している最中でした。
そんな自分がレビュワーに参加したため、他の人が問題なく理解出来る内容でも「すみません…全体的によくわかりませんでした…」「まずなんでこの数式が次の説明に繋がるのかがわかりません」「そもそもこの用語ってどういう意味ですか?」など基本的な部分で躓きまくり、その度に何度も書き直したり図を増やしたりして「これなら理解できますか?」と改善してもらいました。
「ここはどのくらい紙面を割いて丁寧に解説すべきだと思いますか」というようなアンケートの時も自分だけ「全て端折らず書いてほしいです」と主張したりするような感じでした。
もちろん他のレビュワーの方の色々な意見も反映された結果、とても読みやすく分かりやすい内容になったと思っています。
どういう人にオススメの本か
基本的には競技プログラミング畑の方によって書かれた本なので、競技プログラミングやそれに近いプログラミングやアルゴリズムを学びたいという人に向けて書かれていると思います。
中学数学の説明から載っているので、競技プログラミングに関心がある小中学生などもターゲットとしてあるようです。
しかし、個人的にはこの本はもっと広く現役のプログラマーやプログラミングを学んでいる学生などにもオススメしたいと思います。
数学が得意な理系の学生などの界隈にいるとあまり想像出来ない人も多いと思いますが、世の中には数学が苦手という人がとても多く、それは現役プログラマーであっても同じです。
プログラマーだけど数学にコンプレックスがあるという人は多いんじゃないでしょうか。
最近ではそういう人をターゲットにした書籍も見られるようになってきましたが、やはり本当に数学が苦手な人には理解しにくかったり実戦的じゃなかったりする場合が多い気がします。
この本は「数学が苦手なプログラマー」が「アルゴリズムや数学を活用したプログラミング」に踏み出すための第一歩として最適だと思います。
ぜひ、そういう人に手にとってもらいたいと思います。
余談ですが動画(配信アーカイブ)もあります。