320ページ、30万字、図165枚の技術書「はじめてのディープラーニング」をどのように執筆したのか？

こんにちは、@yuky_azです。
2018年8月28日に著書「[はじめてのディープラーニング -Pythonで学ぶニューラルネットワークとバックプロパゲーション- ](https://www.amazon.co.jp/dp/4797396814)」がSBクリエイティブより発売されました。
TensorFlowやChainerなどのフレームワークを使わずにPythonでディープラーニングを構築する、ディープラーニング初学者向けの本です。Pythonや数学の基礎から、丁寧に解説しています。

320ページ、文字だけで30万字、図は165枚に及びます。ご察しの通り、執筆には大変な労力を伴いました。
今回は、出版までに至る経緯と得られた知見をシェアしたいと思います。
技術本の執筆を考えている方、現在執筆中の方に何らかの形でお役に立てば嬉しく思います。
[![qiita_image.png](https://qiita-image-store.s3.amazonaws.com/0/35297/73fd2edf-7a8b-2e5a-ff00-0bb9df929318.png)](https://www.amazon.co.jp/dp/4797396814)

## 執筆のきっかけ
執筆のきっかけになったのは以下の2つです。
* Udemyの[AI関連コース](https://sai-lab.co.jp/products/)
* iOSDC2017での[登壇](https://qiita.com/yuky_az/items/1ca9041e894a1cc81cfc)

これらをきっかけに、私のことを知っていただいた編集者の方から声がかかりました。
何らかの技術で執筆を希望の方は、イベントへの登壇で知名度を高めるのは有効かと思います。
また、Udemyでのコースの公開は知名度が上がるだけではなく収益にもなるのでお勧めです。

## 執筆期間
トータルで半年程度です。そのうち3ヶ月半は他の仕事と並行してですが、残りの2ヶ月半は執筆に専念しました。
家庭持ちなのですが、このあたりは自分で会社をやっているので融通がききました。
執筆は長期に渡りますので、予め備える必要があります。

## 収益
多くの技術書の著者が指摘するように、収益は労力に見合うものではありません。
自身、もしくは会社のブランド力の向上のため、と割り切る必要があります。
フリーランスや自営の方は執筆に専念するとその間収入低下するので、ブランドをとるか、他の仕事による収益をとるか、戦略的に考える必要があります。

## 執筆の流れ
著者によって執筆の流れは異なるとは思うのですが、私は以下のような流れで書きました。

まずは、全体の構成を考えて目次を製作します。
目次を編集者の方に見せてOKがもらえたら、執筆に入ります。

まずは、全体をとりあえず書きます。各章ごとに、以下の順番で執筆します。
1. 文献の調査
→ Amazonで書籍を購入し、ウェブサイトやarXivなどで検索して必要な知識を補完しておきます。
2. 章で解説するコードを書き、動作を検証する
→ 章で最終的に出来上がるコードが章の骨格になります。なので、文章を書く前にコードを書いておきます。
3. 文章と数式を書く
→ ひたすら文章と数式を書きます。図を挿入する箇所には目印を入れておきます。書くべき内容が思いつき次第、ファイルの先頭にメモっておくと書きやすいです。
4. 図を書く
→ ひたすら図を製作します。

執筆中、全体の構成を考えて目次を変更することもあります。
章がとりあえず書けたら、編集者の方にシェアして意見を伺います。

全ての章をとりあえず執筆した後に、後ろの章から加筆と修正を行います。
後ろの章から行う理由は、後ろの章の内容によって前の章で解説すべき内容が変わるからです。

あとは、締め切りまでひたすら加筆と修正を繰り返して完成（？）です。

## 執筆環境
執筆に使用したマシンはMac Book Pro 15inchです。
執筆場所は主に自分の仕事部屋ですが、小さい息子がいるので子供を見ながら居間で執筆することも多かったです。

図の製作にはKeynoteを使いました。

文章と数式を書くために最初はMicrosoft WordのMac版を使ったのですが、これは大きなミスでした。
ずっと昔に博士論文を執筆するのにWindows版のWordを使用したのですが、Mac版のWordは数式を入力するたびにフリーズが頻発し、またバグ（？）により書式が勝手に変わるなどしてフラストレーションが溜まりました。
意外と複雑で学習コストが高いのも問題でした。

結局、文章と数式を書くためには編集者の方が勧めてくれたVisual Studio Codeを使いました。
これのメリットは、以下の通りです。
* 軽快に動作する
* Markdownで文章を記述できる
* 数式をLaTeXで記述できる（拡張機能が必要）
* リアルタイムでLatexのコードを数式として描画し確認できる
今回の本は数式を多用するので、LaTeXで数式を記述できてリアルタイムで確認できるのは大きかったです。

また、Visual Studio Codeにはデメリットもあります。
* 日本語で変換すると、おかしな文字が勝手に挿入されることがある
* 基本的にMarkdownで記述するので、改行の際はスペース2つを入れる必要がある
* 式番号や図表番号を自動で挿入する機能はない

いくつかのクセを乗り越えつつも、Visual Studio Codeでなんとか執筆を乗り切ることができました。
<img width="620" alt="vsc.png" src="https://qiita-image-store.s3.amazonaws.com/0/35297/c89692f2-63d4-232f-ab37-ffdab9540f8b.png">


## 著者校
執筆を無事乗り切っても、著者校があります。
組版済みのpdfに、赤ペンでチェックを入れていく地味にきつい作業です。
この時点で可能な限り間違いを修正しますが、どうしても残ってしまった間違いはウェブサイトの正誤表に載せます。

## 出版
様々な壁を乗り越えて、ようやく出版になります。
共に苦労した編集者の方、デザイナーの方には感謝の限りです。
ここからは、Amazonのランキングにドキドキする日々が始まります。

時にはPOPを書きに書店に伺うこともあります。
<blockquote class="twitter-tweet" data-lang="ja"><p lang="ja" dir="ltr">【9/11お知らせ】SBクリエイティブ『はじめてのディープラーニング』の著者、我妻幸長さんから直筆POPが届きました！ぜひ店頭でご覧下さい。 <a href="https://t.co/TtV7X3cqxz">pic.twitter.com/TtV7X3cqxz</a></p>&mdash; ジュンク堂書店池袋本店/PC書 (@junkudo_ike_pc) <a href="https://twitter.com/junkudo_ike_pc/status/1039414494550609920?ref_src=twsrc%5Etfw">2018年9月11日</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script> 

## プロモーション
出版社の方でもプローモーションをしてくれますが、せっかく書いた本なので自身でもプロモーションをした方が望ましいでしょう。以下は私が行ったプロモーションの一覧です。
* [会社のウェブサイト](https://sai-lab.co.jp/book/)
* [ブログ](http://blog.saiilab.com/entry/2018/08/29/192046)
* [YouTube](https://www.youtube.com/watch?v=od7P50-ny1I)
* [プレスリリース](https://prtimes.jp/main/html/rd/p/000000003.000033406.html)
* [SNS](https://twitter.com/yuky_az/status/1032140821565399040)
* [書店でPOPを書く](https://twitter.com/junkudo_ike_pc/status/1039414494550609920)
* 各方面へ献本
* etc...

## 最後に
本を執筆するのには長期間にわたり集中力を維持する必要があります。そのためにも健康が第一です。
私は、執筆期間中なるべく毎日5kmほどジョギングし、最低でも6時間の睡眠はキープしました。
徹夜は時間の前借りのようなものなので、後に禍根を残します。可能な限り徹夜は避けるべきでしょう。

本記事が、皆さんの本の執筆に何らかの形でお役に立てば嬉しい限りです。