『アルゴリズム図鑑 絵で見てわかる26のアルゴリズム』は同名の人気アプリを書籍化したもので、2017年6月の発売以降、たいへん好評を博してきました。
2018年2月にはITエンジニアが選ぶITエンジニアのための「ITエンジニアに読んでほしい! 技術書・ビジネス書大賞 2018」にノミネート。惜しくも大賞を逃しましたが、一般投票では技術書部門のトップ3に輝きました。
そして先日、アプリが100万ダウンロードを達成しました。翔泳社ではこの機会により多くの方に本書を楽しんでいただきたいという思いから、期間限定で全文を無料公開します。本日6月22日(金)から6月28日(木)までですので、お見逃しなく!
また、今回はアプリの開発者であり、本書の著者の1人でもある石田保輝さんにインタビューをお願いしました。100万ダウンロード達成の感想や、アプリと本の違いなどをうかがっていますので、こちらもぜひお楽しみください。
100万ダウンロードの大台達成!! アプリ開発のきっかけは?
――アプリ100万ダウンロード、おめでとうございます。大台に乗ったと言えますが、どんな感想を抱かれましたか?
石田:「100万」がどのような数なのかすぐにはイメージできないのですが、昔、CDがよく売れた頃は100万枚の売り上げを達成すると大きな話題になっていました。それと同じ数字なんですよね。かつてのB'zやMr.ChildrenのCDが売れた枚数と同じだけDLされていると考えると、すごいことなのかなと実感が湧いてきます。
もともと、開発時は50万ダウンロードを目標にしていたのですが、これは現実感がないというか、どのような難易度なのかイメージできていませんでした。実際には「10万ダウンロードくらいいけばいいかな」くらいで思っていたので、50万ダウンロードのときも達成感は大きかったです。
ただ、ここに至るまでまったくマーケティングというものをしていません。Appleが発表した2016年の「今年のベストApp10選」で取り上げていただいたことはありますが、宣伝なしでダウンロード数が増えているのは不思議でもあります。正直、どういう経由でダウンロードされているのかもよくわかっていません(笑)。
なので、今後はマーケティングやプロモーションにもう少し時間を使って、ダウンロード数をより伸ばしていくように頑張りたいと考えています。
――そもそもなぜこのアプリを開発しようとしたのでしょうか。
石田:アルゴリズムは数学的な概念なんですが、視覚化するとわかりやすいということを大学の授業で学びました。いつかアルゴリズムを視覚化したものを集めたコンテンツを作りたいと考えていて、アプリのアイデア自体は学生の頃から持っていたと思います。
その後、社会人として働き始めて3年くらい経ってアプリを作れる技術が身についたので、開発を始めました。デザインが重要だと思っていたので大学時代の先輩に協力をお願いしたのですが、二つ返事で承諾してくれたのは本当に助かりました。
楽なプロジェクトではなくて、しかも利益がどれくらい出るかわからないものなのに、完璧な仕事をしてくださって感謝しています。ただ、お互い働きながら開発するのはやはり大変で、リリースまで3年くらいかかりました。
――アプリも本も楽しく学べるということがコンセプトかと思いますが、IT開発者にとってアルゴリズムを学ぶことにはどんな価値があるとお考えですか?
石田:アルゴリズムはプログラマーにとっての道具だと思います。道具がなくても仕事はできますが、それだと効率が悪い場合がよくあります。ですが、道具の正しい使い方を数多く知っていれば、それだけ場面にあった最適なものを選ぶことができ、効率も高まります。
コードを書くとき、スピードが重視されるなら速度重視のアルゴリズムを選択し、そうでない場面では可読性の高いものを選択する。このように場面場面で正しい選択ができることが重要です。ですので、よいプログラマーになるためにアルゴリズムの知識は必須なものであると考えています。
アプリに負けないくらいわかりやすい本になった
――アプリはもちろん、本のほうも好評です。どこに本という形のよさを感じていますか?
石田:本のよさは、解説の全体をすぐに俯瞰できることだと思います。途中の解説でもすぐに確認できますし、読みたいページにもすぐに移動できます。また、紙の質感も本のよさです。スマートフォンでボタンをタップするより、本を実際に手に持って、その感触を感じながらページをめくっていくほうが好きだという方もいらっしゃいました。
――本書の狙いを教えてください。
石田:本書はアルゴリズムを勉強中の学生や、エンジニア歴がまだ長くない方を対象としています。技術書は数式や厳密な記述が多く、そのような記法に慣れていない方にとって読みこなすのは簡単ではありません。そこで、本書は図と簡潔な文章で、初学者にも直感的にアルゴリズムを理解できるように工夫しています。
読者にはアルゴリズムの仕組みを知って「なるほど」と納得や理解をしてもらい、その仕組みのすばらしさに感動していただければ嬉しいですね。
――アプリを本にする際、どんな苦労がありましたか? 工夫した点についても教えていただきたいです。
石田:アプリはアニメーションがあるので、それを静的な紙面でどのように表現するかが最も苦労しました。ただ図を羅列するだけではなくて、矢印や動きを表すような図を利用することで、アニメーションに負けないくらいわかりやすいものができたと思っています。
先ほども言いましたが、解説の全体像が見れることが本の特徴です。実はアプリに対して「全体像がわかりにくい」という意見をいただくこともあり、そのように感じる方は本を利用していただければと思います。
また、京都大学でアルゴリズムを研究されている宮崎修一さんに執筆に加わっていただいたことで、内容もレベルアップしています。アプリだと概念の説明だけで厳密な記述がまったくないのですが、本は厳密さが補強されています。
アプリや本を「気づき」のきっかけに
――アプリと本、それぞれどんな感想を耳にしますか? 違いはありますか?
石田:アプリは「わかりやすい」「見ていて楽しい」、本は「子供に見せたい」「読みやすい」という感想をいただいています。両者に大きな違いは感じないのですが、本は子供に関する感想が多いので、より子供に見せやすいのかなと思います。
一方で否定的な意見としては、「内容が薄い」といったものや、「本来されているべき説明がない」といったものをいただくこともあります。多くの意見をいただくのは嬉しいことで、いい意見は励みになりますし、否定的な意見は改善の参考になります。
――ありがとうございます。では最後に、まだ本書を読んだことのない人に向けてメッセージをいただけますか?
石田:人工知能やブロックチェーンなどの先端技術が世の中をはっきり変えつつあるのは、皆さん感じていると思います。その大きな影響力の一方で、なんだかよくわからない仕組みに人が支配されてゆく不安も世の中に広がっているように感じています。「わからなくても便利になればそれでいい」という考え方もあるかもしれませんが、それは大変危ないことではないでしょうか。
どんな高度な技術も、アルゴリズムのような小さな部品やちょっとしたひらめきの積み重ねに過ぎません。本書を読むことで楽しみながらそのことに気づき、情報科学に興味を持ってもらうことができれば嬉しいです。