give IT a try

プログラミング、リモートワーク、田舎暮らし、音楽、etc.

ITエンジニアのアウトプットについてポッドキャストでお話ししました #エンジニアストーリー by #Qiita

前回のエントリでもお伝えしたポッドキャスト番組、「エンジニアストーリー by Qiita」の第2回が公開されました。今回はアウトプットのメリットやコツについていろいろとお話しさせてもらっています。

ポッドキャストはこちらで聴けます。

pitpa.jp

SpotifyやApple Podcastsでも配信中です。


どんな内容を話したの?

第2回ではこんなエピソードをお話をさせてもらいました。

エンジニアのアウトプット

  • アウトプットを始めたきっかけ
  • エンジニアのアウトプット文化
  • アウトプットでのこだわり
  • ネガティブコメントの捉え方

アウトプットのメリット

  • 誰かのためになる喜び
  • 仕事へのつながり
  • 継続できる原動力

アウトプットの方法

  • ネタの見つけ方
  • アウトプットが被らないために
  • アウトプットの第一歩

アウトプットに対する考え方やアプローチは唯一の正解があるわけではなく、「みんな違って、みんないい」だと思っているので、僕の発言が正解だと思わなくて大丈夫です。
僕が話した内容の中から「なるほど、たしかに」とか「それなら自分でもできそう」と思った部分だけをみなさんの日々のアウトプットに活かしてもらえたらと思います。

もうちっとだけ続くんじゃ

僕がゲスト出演する「エンジニアストーリー by Qiita」は全3回です。
次回(最終回)のエピソードは9月9日に公開される予定ですので、みなさんぜひ、フォローをよろしくお願いします🙏

https://pitpa.jp/playlist/engineerstory

あと、今回のエピソードを聞いた感想をSNS等でぜひ教えてください。
ほらほら、感想をつぶやくのもアウトプットのひとつですよ!!(煽り)

あわせて読みたい

第1回のエピソードについてはこちらで紹介しています。
今回のエピソードとあわせてお楽しみください。

blog.jnito.com

ポッドキャストデビューしました! #エンジニアストーリー by #Qiita

このたび、Qiitaさんが情報発信しているポッドキャスト番組、「エンジニアストーリー by Qiita」にゲスト出演して、いろいろお話をさせてもらいました。

ポッドキャストはこちらで聴けます。

pitpa.jp

SpotifyやApple Podcastsでも配信中です。


どんな内容を話したの?

第1回ではこんなエピソードをお話をさせてもらいました。

僕自身のキャリアについて

  • 文系からエンジニアへ
  • オブジェクト指向の目覚め
  • Ruby技術記事の第一人者になるまで
  • Ruby書籍出版の経緯
  • Rubyの魅力

ソニックガーデンについて

  • ソニックガーデンが掲げる「納品のない受注開発」とは
  • ソニックガーデンでの伊藤さんの役割
  • マネージャーへのキャリアチェンジは考えた?
  • エンジニアの35歳限界説

ポッドキャストは最近いろんなエンジニアさんがやってるので、僕も一回やってみたいな〜と思っていたところ、ちょうどQiitaさんからお誘いを受けました。
ちょっとぎこちないしゃべり方になってるかもしれませんが、内容自体は結構面白いと思うのでぜひ聞いてみてください!

みなさんの感想

ポッドキャストを聞いてくださった方からさっそくコメントが届いています。
みなさん、どうもありがとうございます!😆

もっといろんな感想を聞いてみたいので、Twitter等でつぶやいてもらえると嬉しいです!

さらに:あと2回続きます!

僕がゲスト出演する「エンジニアストーリー by Qiita」は、第2回ぶんと第3回ぶんも収録済みです。
隔週金曜に更新とのことなのでで、おそらく8月26日と9月9日に公開されるはずです。
ぜひ、フォローをよろしくお願いします🙏

https://pitpa.jp/playlist/engineerstory

まとめ

というわけで、今回のエントリでは「エンジニアストーリー by Qiita」でポッドキャストデビューしました、というお話を書いてみました。
ブログでもなく、登壇でもなく、ポッドキャストという形でアウトプットするという新しい試みなので、みなさんぜひ聞いてください。よろしくお願いします〜!😄

pitpa.jp

チェリー本増刷記念!?技術書の改訂版ができあがるまで 〜プロを目指す人のためのRuby入門 改訂2版の制作裏話〜

はじめに:改訂2版の増刷が決まりました!

先日開催された「VeriServe Test Automation Talk No.3」でもお伝えしましたが、「プロを目指す人のためのRuby入門 改訂2版(通称・チェリー本)」の増刷が決まりました🎉

ご購入してくださったみなさん、どうもありがとうございます!
改訂2版もたくさんの人に読んでいただいて、たいへん嬉しいです😄

2022.9.6追記:電子版もアップデートされました
電子版にも正誤表の修正内容が反映されています。電子版を持っている方は最新版をダウンロードしてください。

改訂版の制作は楽ちん?→ NO!!

ところで、「本の改訂版って、ちょいちょいっと古い記述を加筆修正して出版すればいいだけだからラクなもんでしょ?」と思う人がいるかもしれません。

ですが、今回の「プロを目指す人のためのRuby入門 改訂2版」に関していえば、全然ラクではありませんでした!!第1版を制作したときと同じか、それ以上にハードだったかもしれません。。

そこで、このエントリでは改訂2版の増刷を記念して(?)、制作を開始してから発売するまでの制作裏話をあれこれ書いてみたいと思います。

参考:第1版の制作裏話もあります

第1版を出版したときのエピソードは以下のエントリにまとめてあります。
制作の大まかな流れ自体は第1版と大きく変わってないので、先にこちらを読んでもらった方がこのエントリの内容が理解しやすいかもしれません。

blog.jnito.com

ちょっと長いので先に目次を載せておきます。

それでは以下が本編です!

2017年11月から2020年10月まで:改訂版に向けたネタ集め

改訂版を制作が決定するずっと前から、というか、第1版が発売された直後から、実は改訂版の執筆に向けた準備は始まっていました。

Twitter上の反響や、本書について書かれたブログ記事を読んだりすると、初心者さんがはまりやすい箇所や誤解しやすい箇所があることがわかります。

僕はプログラミングスクール「フィヨルドブートキャンプ」でメンターもやっており、生徒さんがチェリー本を読んでつまづきやすい部分があることも把握していました。

こうしたつまづきポイントを見つけたら、編集者さんと情報交換をしている掲示板に「改訂版で書き直したいトピック」としてネタを記入していました。

改訂版を出すならここを直したい、というメモです

また、僕はQiitaやZennに毎年「Ruby 3.xの新機能」といったまとめ記事を書いていますが、これは実は改訂版を執筆するときにRubyの仕様変更に伴う差分がどこに発生するか、というのを把握する目的も兼ねていました。

zenn.dev

2020年11月:改訂版制作の話が持ち上がる

編集者さんとは以前から「改訂版を制作するならRuby 2.xではなく、Ruby 3が出てからにしましょうか」という話をしていました。

2020年の後半にはRuby 3.0が2020年12月にリリースされることがほぼ確実になったので、「そろそろ改訂版の制作に着手しても良いのでは」という話になり、改訂版制作プロジェクトがスタートしました。

2021年1月:目次案の作成

改訂版の執筆にあたり、まず目次案を作成しました。具体的には第1版との差分をリストアップしていく感じです。「新たにこの項目を増やしたい」「ここはもう不要なので削りたい」というような内容を僕の方で作成しました。ただ、増える箇所が大半で、削る箇所はほとんど無かったですね。この時点でページ増になることは確実でした😅

実際に作った加筆修正リストです

また、Rubyは毎年12月25日に新バージョンがリリースされます。そのため、「Ruby 3.0に対応」を売りにするなら遅くともRuby 3.1がリリースされる前、すなわち2021年12月25日より前にする必要があることも確認しました。
当初は2021年11月末を出版日にする予定だったのですが、諸事情により最終的な発売日は2021年12月2日になりました。

FAQ: 2021年末に発売するならRuby 3.1に対応すればいいんじゃないの?

「なんでRuby 3.0なの?発売直後に3.1が出るんだから、Ruby 3.1に対応すれば良かったんじゃないの?」という質問をもらうことがよくあります。
これはごもっともな意見なのですが、Rubyの仕様はリリース直前に大きく変更される可能性もあります(追加されるはずだった新機能の導入が見送りになるなど)。
そうなると、書籍の発売直前で内容の修正が必要になって発売を延期したり、実際には導入されていない新機能の解説を含んだまま出版されたりする恐れがあります。
ネットの記事と違い、紙の本は簡単に修正することができないため、執筆時点で確実に仕様が固まっているリリース済みのバージョンを対象にしなければなりません。よって、今回はRuby 3.0を対象バージョンにしました。
本当は僕もRuby 3.1を対象にしたかったんですけどね……😭

2021年2月:原稿の加筆修正スタート

編集部内の企画会議はすんなり通過できたので、2月から原稿の加筆修正をスタートしました。
まず、第1版を改めて読み直して、「ここは加筆 or 修正したい」というポイントに書き込みと付箋を入れていきました。

ここに追記、ここは変更、みたいなメモを入れていきました
付箋を付けた箇所は100個以上ありました
で、どうやって原稿の加筆修正を行うか?

さて、「ここを直したい」という部分はざっと決まりましたが、このあとで困ったのが「どうやって原稿を修正するか」です。

プログラマの感覚だと、「GitHubに置いてある第1版の原稿を修正してプルリク作ればいいんじゃない?」と思うかもしれませんが、残念ながらDTPデータはバイナリデータなのでGitHubで管理できません。てか、そもそも著者に共有されていません。

いちおう、DTPデータの元となるMarkdownの原稿はGitHubに置いているのですが、第1版の執筆時はDTPデータ作成後にもたくさん手を加えているので、Markdownの原稿は出版時のテキストとは異なる、古い原稿になっています。

つまり、第1版の内容と完全一致するプレーンテキストはどこにも存在しないのです。
ここが最新のソースコードがプレーンテキストで管理されているシステム開発と書籍制作の大きく異なるところです(注:ラムダノートさんのように、終始一貫してMarkdownで原稿を管理されている出版社さんも中には存在します)。

そこで、編集者さんといろいろ話し合った結果、今回は「第1版のPDFに加筆修正したい内容を指示する」という方法を選択しました。

指示の方法は2パターンあり、加筆修正する内容は分量が少なければPDF内のメモとして書き、まとまった分量が必要な場合は別途Markdownで原稿を書いてGitHubに置く、という方法を採りました。

Ruby 2.4から3.0に変えてね、という指示です
GitHubに置いたMarkdown原稿を使ってください、という指示です
GitHubに置いた原稿の例です

2021年2月〜5月:ガリガリと原稿を書く

2月から5月は加筆修正用の原稿をガリガリと書いていた時期です。
ただ、原稿を書きつつ、いつもどおりソニックガーデンでプログラマとして働いていましたし、フィヨルドブートキャンプでメンターもやっていましたし、あと、この時期にちょうど家のリフォームをしていて結構頻繁にハウスメーカーの担当者と打ち合わせをしていましたし、「やべえ、忙しくて死にそう」という気持ちになっていた時期です😅

自宅のリフォームと並行しながらの原稿執筆はなかなか大変でした……

2021年6月:原稿提出→ゲラの作成開始

いろいろ大変でしたが原稿の執筆はなんとか当初の予定通り、5月末に終わらせることができました。
そこからはいったん編集者さんにバトンタッチして、ゲラ(試し刷り)の作成を進めてもらいました。

編集者さんと共有していた進捗管理表です

2021年7月〜8月:ゲラの校正(1回目)とレビュー依頼

ゲラは7月中旬にできあがりました。PDF版とA3用紙に印刷したものを両方もらって、おかしな内容がないかレビュー(校正)していきます。
自分の書いた原稿を最初から最後まで読み直さなきゃいけないのでなかなか大変です。
でもここでしっかり校正しておかないと、間違いだらけになったり、すごくわかりにくくなったりするので気が抜けません。

こちらが第2版のゲラです

あと、ゲラの初回校正に合わせて、「つよつよRubyプログラマのみなさん」に原稿レビューをお願いしました。
レビューの方法はこちらでざっくりと担当してもらう章をアサインさせてもらい、ゲラのPDFファイルをお渡しして、気になった部分をGitHub issueに報告してもらう、というやり方にしました。

さすが、つよつよRubyプログラマのみなさん、厳しくも的確なレビューコメントが70件も届いて、僕は嬉しい悲鳴を上げながら原稿を修正していきました😂

本当にたくさんのレビューコメントをいただきました🙏

2021年9月:完成に向けたカウントダウン?

9月に入るといよいよ完成に向けた動きが活発になってきます。

カバーデザイン案

まずカバーデザイン案が出てきました。
一見して「プロを目指す人のためのRuby入門」であるとわかることと、一見して第1版とは違っていることがわかることの両立を目指した結果、「表紙のさくらんぼの数を2つに増やす」というデザイン案を採用することになりました。

第2版ではさくらんぼが2つに増えました🍒

ただ、基本路線はすぐに決まったものの、細かい点で「これはどう?あれはどう?」みたいな議論が発生して、最終的にデザインが決定したのは10月末になりました。

2回目の校正

それから、初回校正の内容を反映したゲラが完成したので、2回目の校正を開始しました。
今回もやはり最初から最後まで自分の原稿を読み直していきます。あー、大変、大変💦

索引の作成

そしてこのタイミングで索引を作成していきました。
第1版のときと同じく、今回も「索引に追加したい」と思った用語やキーワードを蛍光マーカーで書き込んでいきます。
さらに今回は同じ記号でも文脈によって意味が異なる場合は、別々の用語として扱うようにしたので、第1版のときよりも細かく指示を入れていく必要がありました。これも超大変💦

たとえば以下は...という記号を「範囲リテラル」として扱う場合と、「引数の委譲」として扱う場合でそれぞれ索引を分ける場合のマーキング例です。

こっちは範囲リテラル
こっちは引数の委譲

これがこういうふうに別々の用語として扱われるわけですね。

読者にやさしい索引を目指しました!
急きょ、デバッガの説明を置き換える

さらに、このタイミングで急きょ本書で使用するデバッガをbyebugからdebug.gemに変更することにしました。
理由はRuby 3.1からdebug.gemが大幅にアップデートされることと、Railsでも標準でインストールされるデバッガがdebug.gemに変更されることが決まったからです。

ただ、ふつうはこのタイミングで内容を大きく書き換えるのは御法度なので、編集者さんには結構無理をお願いしたことになります(編集の吉岡さんに感謝🙏)。

9月の終わりに急きょ差し替えたdebug.gemの原稿です
第2版発売のアナウンス

第2版発売のアナウンスも9月に行いました。
本当はもうちょっとあとでも良かったんですが、「第1版を買った直後に第2版が発売された!悔しい!!」という人があまり出ないよう、「第2版の発売は12月か。じゃあ購入はもうちょっとだけ待とうかな」と思ってもらえるような時期を選んだつもりです。

blog.jnito.com

2021年10月:3回目の校正、まえがき・あとがきの執筆など

10月は3回目の校正作業やまえがき・あとがきの執筆などを行いました。
そうそう、Matzさんに「本書の刊行に寄せて」を執筆してもらったのもこの時期です(お忙しいところ本当にありがとうございます!)。

また、GitHubで公開しているサンプルコード集も10月に作りました。
github.com

通常の書籍制作ではこのタイミングの校正で直せるのは軽微な誤字脱字程度なのですが、自分で読み直すと、「あ、ここがなんかわかりにくい」とか、「このサンプルコードはこっちの方が読者にとって親切かも?」みたいな「直したいポイント」がゴロゴロ出てきて、これまた編集者さんにご無理を言って多数修正してもらいました(ほんと、すいません……)。

2021年11月:入稿、そして発売へ……!!

本書の発売日は2021年12月2日ですが、著者として手を動かすのは11月上旬の入稿(原稿を印刷所に引き渡す作業)までです。
ただ、読み直せば読み直すほど修正ポイントが見つかり、入稿直前まで編集者さんとやりとりを続けて、なんとか無事に入稿にこぎつけました。
編集の吉岡さん、その節は大変お世話になりました🙏

そして、11月24日にとうとう僕の手元に完成した本が届きました🎉

また、東京近辺の大型書店では正式発売日よりも前に先行販売が開始されていたようです。
いやあ、嬉しい。感無量です!

それから、正式発売日の2021年12月2日には、新聞に広告が載ったりもしました。
すごい、びっくり!

以上のようなプロセスを経て、「プロを目指す人のためのRuby入門・改訂2版」は約1年がかりで制作&発売されたのでした。めでたしめでたし👏

改訂版を制作してみた感想

というわけで、このエントリでは去年発売した「プロを目指す人のためのRuby入門 改訂2版」の制作裏話を書いてみました。

感想をひとことで言うなら・・・想像の10倍ぐらい大変でした!!

いや、もっと手を抜こうと思ったら抜けたというか、「単純に古い情報を新しい情報に差し替えるだけ」で終わらせればもっと楽だったと思うんですよ。

ただ、せっかく第2版を出すなら、すでに第1版を持ってる人も「これなら買い直して良かった」と思ってもらえるような本にしたい!というゴールを設定したので、自分の中でハードルがめちゃくちゃ高くなってしまった、という感じです。

いかがでしょう?ご購入いただいたみなさんには満足いただけてるでしょうか??

読者のみなさんの感想と、このエントリのまとめ

Amazonやブクログではこんな感想をいただいているので、筆者としては大変だったけど、頑張って良かったな〜という気持ちになっています😊

j5fisjojeeさん

プログラム初心者というよりも他の言語経験者が最新のrubyを学びたいときの第一の選択肢となる本です。ページ数が多いですが読みやすくて楽しい本なのでrubyやrailsに興味があるなら手に取ることをオススメします。最新の事情に合わせて旧版から加筆されているので是非とも買い替えて読んでほしいです。とにかくオススメの本です。

https://www.amazon.co.jp/gp/customer-reviews/R1D6H0MA8C1IXD/
ふーがさん

第1版を読んで約1年。第2版を読んでみましたが、随所で説明が理解しやすくアップグレードされていたり、新しめの機能であるパターンマッチングや型検査についても解説されていてさらに読み応えがアップしています。また、当時理解できなかったProcやLambdaが理解できるようになったのは、自分自身がレベルアップしたことを実感できて嬉しかったです。また自分が少し成長したときに、改めて読み直したい1冊です。

https://booklog.jp/users/1b2f88f80c73c22b/archives/1/B09MPX7SMY
てけてけさん

個人的には流して読む箇所としっかり読む箇所のメリハリがつけやすい構成になっていて読みやすかった印象です。
既存のコードが読めて、かつ改修できる知識は身につくのでは。
yield の章はこれからも何回も読む気がします。
比較的新しいデバッガや型付けのRBSの話まであってありがたい。
あと、素のRubyとRailsは違うんだぜってのも強調してくれていてそこもありがたかったです。

https://booklog.jp/users/tktk1023/archives/1/B09MPX7SMY

改訂2版をまだ手に取ってない方はこの機会にぜひ!

あと、書評ブログやレビューコメントもまだまだお待ちしてますので、本書の忌憚のない感想をぜひ聞かせてください。

みなさん、これからも「プロを目指す人のためのRuby入門」をよろしくお願いします!

あわせて読みたい

改訂2版っていったいどんな内容なの?第1版とどこが違うの?という話は以下のブログ記事に詳しくまとめてありますので、興味がある方はぜひ読んでみてください。

blog.jnito.com

より具体的な変更点は、シモカワさんがこちらのブログで非常に丁寧にまとめてくださっています(どうもありがとうございます!)。

aim2bpg.com