30歳からのプログラミング

30歳無職から独学でプログラミングを開始した人間の記録。

『白と黒のとびら オートマトンと形式言語をめぐる冒険』を読んだ

オートマトンの世界に触れることが出来る技術書、ではなくて、ファンタジー小説。
今年はいろいろとよい本を読めたが、これも非常によかった。
本当によく出来ていて、物語と学習が高度に融合している。
以下の出版社のサイトで、プロローグと1章が無料で公開されている。

www.utp.or.jp

本書を知ったキッカケは、『基礎からわかるTCP/IP』のときと同じで、鹿野さんのツイート。

twitter.com

技術書を選ぶときは、鹿野さんvoluntas さんの意見を参考にしている。こういう方々の意見を参考にすれば、まあ間違いがない。もちろん人によって合う合わないはあるにせよ。

今もそうだが「コンピュータサイエンスの基礎を学びたい」と漠然と思っているのだが、どうしたらいいのか分からない。
いきなり重厚な本を読むと間違いなく挫折するので、とにかく軽くて、それでいてちゃんとした内容の本を読みたい。
本書はその条件を満たしているように感じた。結果として、大正解だった。

妖精や魔法が出てくるファンタジー小説を読みながら、オートマトン理論や形式言語理論の世界に触れることが出来る。
そういう「設定」だけを借りてきたのではなく、本当に、ファンタジー小説として成り立っている。

妖精たちの「言語」と、妖精たちが作った「遺跡」が、物語の中心にある。
魔術師に弟子入りした主人公は、「遺跡」にまつわる問題を解決しながら、「言語」に対する理解を深めていく。
それがそのまま、オートマトン理論や形式言語理論の初歩の内容を表現している。

各章の構成はほとんど同じで、序盤で示される知識や情報を使って、その章の内容の問題を解決していくことになる。
そのため、主人公だけでなく読者も、どうすれば解決できるのか考えながら読み進めることができ、自然と物語に入り込める。

後半になるにつれ問題が複雑になっていくのだが、「主人公が自分の考えを整理するために図を描く」という形で随時図解されるので、それを見て考えながら読み進めることが出来る。

注意点として、本書は入門書ではない。だから、オートマトンや形式言語に関する、何か具体的な知識を得られるわけではない。
入門書よりももっと前の、手引きや序論のようなもの。巻末に解説が載っているが、それも含めて、雰囲気を知り、興味を喚起するものに過ぎない。
実際に私は本書を読んで、こういった分野に対して面白そうだと思えたし、「オートマトンや言語理論の入門書を読んでみようか」「こういう理論や考え方を身に付けてみたい」という気持ちになった。
だが、本書自体から理論を学べるわけではない。

それと、ロジカルに、あるいはパズル的に物事を考えるのが好きな人じゃないと、楽しめないかもしれない。
プログラミングの知識は一切不要だが、プログラミングのように、「与えられた法則や制約のなかで解決策を考えること」を楽しめないと、厳しいと思う。
逆にそういうことが好きな人なら、かなり楽しめると思う。
既に書いたようにプロローグと第一章を無料公開してくれているので、これを試し読みして面白いと思えれば、買って損はないはず。