give IT a try

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

【鋭意制作中】Rubyの入門本「プロを目指す人のためのRuby入門」を執筆しています

はじめに

先日の関西Ruby会議2017でもアナウンスしたとおり、現在「プロを目指す人のためのRuby入門」というRubyの入門本を執筆しています。

上のスライドにも書いてあるとおり、発売予定は2017年11月なのでもう少し先です。
書籍タイトルや発売日は現時点の予定であり、多少変わる可能性もありますが、とりあえずこんな予定で企画が進んでいます。
発売元の出版社は技術評論社さんです。

このエントリでは、「プロを目指す人のためのRuby入門」の概要や執筆状況についてお知らせします。

ruby

どんな本なの?

ひとことで言えば「Rubyの言語仕様やRubyの使い方を教える入門本」です・・・となるのですが、それだけだと巷にあふれる入門本とあまり変わらないですよね。
ですので、本書の特徴やセールスポイントをもう少し詳しく説明しましょう。

入門本なのでRubyの言語仕様やRubyの使い方を教えるのは当然なのですが、それに加えて本書では「開発の現場で役立つ知識」を提供することを心がけています。

その一環として、たとえば各章に用意した例題の回答例でテスト駆動開発(TDD)を採用したり、Rubyにおけるデバッグ技法をまるまる1章使って説明したりしています。
おそらくこういった構成のRubyの入門本はこれまでなかったはずです。(伊藤さん調べ)

その他にも「開発の現場でRubyを使うなら、ここは確実に押さえておくべき!」「これはみんな絶対一度はハマるところだから気を付けて!!」といった内容は、特に力を入れて解説しています。

そして、書籍全体を通じて、どの内容も「伊藤さんクオリティ」で解説してあります。
「伊藤さんクオリティ」って何やねん?って感じですが、要するに僕がブログやQiitaで技術記事を書くときと同様に、丁寧でわかりやすい解説を心がけている、ということです。
つまり、この本は「Rubyに関する伊藤さんの新作技術記事がいっぱい詰まった本」と考えてもらっても構いません!

想定する読者はどんな人?

本書は次のような読者を想定しています。

  • 他の言語でのプログラミング経験はあるが、Rubyはまったく初めての人
  • Railsチュートリアル等のオンライン教材でプログラミングを始めて、現在は「なんとなく」Rubyを使えているが、自信をもって「Rubyのことなら何でも聞いて!」とは言えない人

つまり、「プログラミングの経験は多少あるが、Rubyの理解はまだまだ」という人が対象になります。

本書はこういった人たちに向けて、本格的なRubyの開発の現場でコードの読み書きをするために必要な知識を提供します。
本書を読んでその内容を理解すれば、「今まで呪文のようにしか見えなかった不思議な構文」や「実はあまりよくわからないまま、見よう見まねで書いていたあのコード」が自信をもって読み書きできるようになるはずです。

独学でRubyを勉強している方はもちろんのこと、ある程度の規模の会社でも「社内のRuby初心者をまともに使えるRuby開発者に育て上げたい!」というときの教育資料として活用していただけるんじゃないかと考えています。

なお、「読者はプログラミングの経験が多少ある」という想定で書いているので、「プログラミングのプの字もわからない」という人は、先にプログラミングのイロハを学んでから本書を読むことをオススメします。

Railsアプリの開発でも役に立つの?

YesかNoで答えるなら、間違いなくYesです!

ただし、本書はモデルのバリデーションやERBを使ったビューの書き方といった、Railsに特化した内容は出てきません。本書で対象としているのは特定のフレームワークに依存しない、ピュアなRubyプログラムです。

ですが、Railsも当然Rubyで作られていますし、みなさんがRailsでWebアプリケーションを作成するときに使用するのもRubyです。Rubyの文法や言語機能を知っていて損になることはまったくないですし、むしろ、RailsプログラマであればRubyそのものについても、きちんと理解しておくべきです。

とはいえ、本書はRailsをまったく無視しているわけではありません。本書で学んだRubyに関する知識を活かしつつ、次のステップとして「プロのRails開発者」になるためには何を学べばいいのか、といった点についても簡単に説明しています。

対象となるRubyのバージョンは?

対象となるRubyのバージョンはRuby 2.4です。

まったく同じバージョンを使える場合は問題ありませんが、状況によっては多少バージョンが前後することがあるかもしれません。
Ruby 2.2や2.3など、少し前のバージョンで動きが異なる場合は、適宜注釈を入れています。

また、この先Ruby 2.4よりも新しいバージョンで本書の内容と異なる部分が出てきた場合は、本書のサポートページにて変更点をお知らせする予定です。

電子書籍版も発売するの?

はい、紙の本だけでなく、電子書籍版も発売する予定です。
ただし、紙の本よりも若干発売日は後ろにずれるかもしれません。

現在の進捗は?

冒頭で書いたとおり、本書は2017年11月に発売される予定です。
このエントリを書いているのが2017年5月末なので、発売はまだ半年ぐらい先です。

えらい先の話をしてるな~と思われる方もおられるかもしれませんが(少なくとも僕はそう思っていますw)、実は2週間ぐらい前に原稿はひととおり完成しています。

じゃあこれから何をするの?というと、原稿(すなわち、ただのテキストデータ)を「本らしい見栄え」にするためのレイアウト作業やゲラ(試し刷り)の校正、表紙デザイン等の作業を進めていきます。

商業出版(つまり紙の本を出版)するのは今回が初めてなのですが、編集者の方と一緒に作業を進めながら「書店に並ぶ本はこれだけの手間ひまをかけて出版されるのか~」と今まで知らなかった舞台裏を見て少し驚いています。

本来であれば、2017年11月発売なのでRuby 2.5のサポートも視野に入れたいところなのですが(注:Rubyは毎年12月にバージョンアップします)、このようにスケジュール的な都合があるため、Ruby 2.4止まりになっています。
ですが前述のとおり、Ruby 2.5以降で本書の記述と差異が出た場合はサポートページでお知らせしていきます!

まとめ

というわけでこのエントリでは、現在制作中の技術書「プロを目指す人のためのRuby入門」についてお知らせしました。
自分の名前で技術書を出版するのはかねてからの目標のひとつだったので、自分でも発売が待ち遠しいです。

今後も折に触れて制作状況をお知らせしたりするので、興味がある方は「読者になる」ボタンをクリックしてこのブログを購読してもらえると嬉しいです。
本書が発売された際は(といっても半年先ですが)、ぜひお近くの書店で本書を手にとってみてください!
みなさん、よろしくお願いします🙏

あわせて読みたい

これまでブログやQiita記事で多くの技術記事を書いてきた経験が、本書の執筆にも役立っています。

「Everyday Railsのアップデートはまだですか?」という質問をときどき受けるのですが、こちらも現在英語版のアップデート途中です。
時期はまだハッキリしていませんが、Rails 5や最新のRSpecに対応させていく予定はちゃんとありますので、もうしばらくお待ちください!

関西Ruby会議2017で「Rubyistと技術記事」という発表をしてきました #kanrk2017

はじめに

2017年5月27日に開催された関西Ruby会議2017で「Rubyistと技術記事」という発表をしてきました。
このエントリではこの発表の内容や、イベントの様子を紹介します。

f:id:JunichiIto:20170529093851j:plain
当日はこんな会場でした。広い!

スライドと発表内容の概要

発表で使ったスライドはこちらです。

スライドを見てもらえば、発表内容はだいたいつかめるはずです。
ただ、僕はスライドに書いていないことも口頭でいろいろしゃべるスタイルなので、細かい内容は会場にいないとわからないと思います。

もし「細かい内容も知りたい!」という人がいたら、Twitter等でコンタクトをください。
一般に公開していないマル秘資料(何?)をお渡しします。

8割ぐらいのみなさんが僕のことを知ってた!

発表の途中で、会場のみなさんに「僕のことを知ってる人はどれくらいいますか?」って聞いてみたら、8割ぐらいの人が手を挙げてくれました!
こんなに手を挙げてもらえると思わなかったので、思わず写真をパシャリ。

f:id:JunichiIto:20170529072307j:plainf:id:JunichiIto:20170529072313j:plain

別に東京に住んでいるわけでもなく、兵庫県西脇市という田舎町で技術記事をせっせこと書いてるだけなのに、これだけの人に知ってもらえるとは非常にありがたいです🙏

発表時に着てたTシャツの話

当日はこんな服装で発表していました。


はい、そうです。JetBrains Tシャツを着ております。

これも発表の中でお話ししたのですが、先日RubyMine公式ブログに寄稿したときに、スタッフの方が「寄稿してくれたお礼に」とわざわざTシャツやノベルティを送ってくれたんです!
というわけで、今回の発表ではこのTシャツを着ながら発表することにしました。

JetBrains社のみなさん、どうもありがとう!
みんなもぜひRubyMineを使ってね❤️

現在執筆中の技術書について

今回、発表の終わりに現在執筆中の技術書を紹介させてもらいました。
実は去年の暮れから原稿を書き続けていたのですが、この本について公に発表したのはこれが初めてです。
これについてはいろいろと話したいことがあるので、後日別のエントリで詳しく紹介したいと思います。


2017.5.30 追記:「プロを目指す人のためのRuby入門」について書きました!

「プロを目指す人のためのRuby入門」の詳細については以下のエントリをご覧ください。

プレゼンテクニックについて

よく考えると2年前の関西Ruby会議06以来、発表らしい発表をしていなかったので、スライドの作り方や発表のコツを思い出すのに少し時間がかかりました。
ですが、最終的には自分でも「まあ上出来じゃない?」というレベルの発表ができたんじゃないかと思います(と自分で言ってしまう伊藤さん)。


プレゼンのコツはざっくりいうと、

  • 発表の一週間前にスライドを作る
  • 発表前の一週間は毎日練習&その動画を撮って自分の発表を自分でチェックする、の繰り返し

これだけです。
10回も練習すれば、確実に30分ピッタリで発表を終わらせることができるようになります。(真顔)

その他、発表内容の構成やスライドの作り方等は、昔から「パワー・プレゼンテーション」という書籍を参考にしています。


この本を読んでその内容を実践すれば、誰でもイケてるプレゼンができるようになるはずです!
パワー・プレゼンテーション (グロービス思考シリーズ)

パワー・プレゼンテーション (グロービス思考シリーズ)

技術記事Q&A

以前、このブログで「技術記事の書き方について聞きたいことはありますか?」と質問を募集しました。
すると、読者のみなさんからいくつか質問をもらったので、それを発表の中で回答しました。

ただ、質問をくれた人の中には当日会場に来られていない方もいると思うので、その方に向けてこちらで回答しておきます。

Q1. Qiitaとブログの使い分けは?

Qiitaとブログ両方とも記事を書かれていますが使い分けはどのようにしているのでしょうか?

これは以下のページで説明した内容が僕の回答になります。


ただ、今まではだいたい「なんとなく」で使い分けてきたので、この質問は自分の中であらためてその「なんとなく」を言語化する良いきっかけになりました。

Q2. 「読者に伝える」ために気を付けていることは?

伊藤さんは僕の中でダントツに憧れるエンジニア・プログラマーですが、そう思うのは技術力もさることながら、伝える力がすごいという点で抜きん出ていると思ったからです。伝わるために気を付けていることはありますか?伝わる記事を書くモチベーションは何ですか?教えて!伊藤さん!

おお、熱いメッセージをありがとうございます!
はい、これもスライドの中で回答を書いておきました。
細かいテクニックはいろいろあるのですが、一番大事なのはやはり「読者ファースト」で記事を書いていくことですね。


Q3. 執筆時間を短くするコツは?

調べたことをblogやQiitaにまとめるのは結構骨の折れる、時間のかかることだと思いますが、まとめるコツや、時短のコツがあれば教えて欲しいです。

この質問をもらったとき、「時短のコツ?そんなコツあったっけな・・・?」と考え込んでしまったのですが、よく考えると僕はあまり時間のことを気にしながら書いたことがありませんでした。
それよりもいつも「どれだけわかりやすく書くか」に集中している気がします。

とはいえ、コードを書くことと同じで、ブログも書き続けていればベースとなる執筆スピードはどんどん速くなっていくと思います。
というわけで、時短の特効薬はありませんが、「とにかく書き続けること」が大事です。

Q4. 反響が無くてよくヘコみます。これを克服するには?

がんばって書いた記事や公開したコードがウケなかった際はどうすればいいのでしょうか?
私は魂を込めて書いた入魂の技術ブログ記事や多大な時間を使って作成し公開したRubyGem、個人プロジェクトなどにちっとも反響が無いことがよくあります。技術者はどんどんアウトプットするべき、というのは分かってはいるのですが、あまりにウケないと精神的に凹みます。「多少ウケなくても前進あるのみ」の精神でやってきましたが、少ないGitHubスター数やアクセス数を歯ぎしりをしながら眺めるのはとても不健康に思えてきました。
伊藤さんにはこのようなことがあるのでしょうか?伊藤さんが書いたり、公開したプロジェクトはだいたいヒットするので、そんな悩みは無いのでしょうか?もしこうした悩みの克服方法をご存知であれば教えていただけますでしょうか?

なるほどー、これは面白いなーと思った質問です。
まず、僕の記事もそんなに言うほどウケていません(苦笑)。
ブログやQiita記事を公開するときは、僕も「これは絶対バズるぞ!!」って思いながら公開ボタンをクリックしますが、狙い通りにバズることはごくわずかです。
そのごくわずかのヒット記事だけを見てると、「伊藤さんの記事はいつもヒットしている」ように見えるだけなんだと思います。

ですが、僕はウケなくてもそれほど気にしません。
なぜならヒット記事なんて狙ってもどうせ当たらないからです。
がんばって書いた記事が全然受けないことも多々ありますし、あまり力を入れずに書いた記事が大ヒットしたりします。
Qiitaでいちばんヒットした英語の記事は後者のパターンです。)

それよりも僕は「1つでのポジティブな反響があれば嬉しい」と思いながらブログを書いています。
なので、満足のためのハードルがめちゃくちゃ低いです。
大ヒットすれば嬉しいですが、僕の中ではMUSTではないです。

もし反響が毎回ゼロなのであれば、「本当に記事が面白くない」か「リーチすべき人にリーチしていない」かのどちらかです。
前者であれば、今回のスライドで書いたように「読者ファースト」になっているかどうかを確認してみましょう。
後者の場合は宣伝不足、告知不足、拡散不足が疑われます。
ただ、これはブログの購読者数やTwitterのフォロワー数が少ないうちは自分の力だけでは限界もあるので、地道に購読者やフォロワーを伸ばしていくしかないかもしれませんね。
(かつては僕にもそんな時期がありました)

別の議論:他人のコンプレックスや良心を刺激するような炎上狙いの記事を書けば注目されやすくなりますが、「薬物依存の悪循環」みたいな世界が待っていると思うので僕はオススメしません。

Q5. 書きたいけど書けない。時間もない。どうすれば?

書こうと思ってもなかなか書けません。書くための時間の見つけ方や、書くモチベーションの保ち方などあれば教えてください。

これは多くの方が同じような悩みを持っている気がします。
僕自身はブログは自然に書けてしまいますが、ブログ以外だと「なかなか着手できない腰の重いタスク」は僕にもあります。

これは「常に目に付く場所にタスクを書いておいて、自分で自分にムチを打つ」作戦しかないんじゃないかなーと思います。

僕のタスク管理方法については過去のエントリでも紹介しています。

これをやっても全然書けない、という場合は根本的にブログや技術記事を書くことが向いていないのかもしれません。
なので、ブログを書くこと以外の自分の強みや得意分野を見つけて、それを伸ばすことを検討してみましょう。

発表の感想ツイートあれこれ

会場のみなさんから発信された感想ツイートをいくつかピックアップさせてもらいます。
(全部載せると多くなりすぎるので、厳選したものだけ!)

あと、懇親会でも「発表、良かったです!」「いつも記事読んでます!」と声をかけてもらって、非常にありがたかったです。
普段の活動の場はネット上なので、こうやって生の声を聞けるのは嬉しいですね😊

ちなみにこちらは懇親会での一コマです↓


イベント全体の感想と謝辞

全講演の感想を一つずつ書いていくと長くなるので省略しますが、「Ruby界の有名人」から「本格的な発表はこれが初めてという人」まで、とてもバリエーションに富んだプログラムだったと思います。
どの講演も「へえ、そうなのか」「うーん、なるほどー」と思いながら聞かせてもらいました。

当日は200人を超える来場者があったみたいでイベントの運営も大変だったと思いますが、スタッフのみなさんも非常に頑張っておられました。
おかげさまで気持ちよく発表することができました。どうもありがとうございました。

また、僕の発表を聞いてくださった会場のみなさんも本当にありがとうございます!
勝手に壇上から写真を撮ったり、好き放題やらせてもらってすいません(苦笑)。
あの発表もやはり会場のみなさんを想像しながらいろいろ話す内容を考えていたので、少しでも参考になる点があれば嬉しいです。

f:id:JunichiIto:20170529094132j:plain
当日会場でスポンサー企業のみなさんから無料提供されていたお水とRubyマーク入り(!)のどら焼き

まとめ

というわけで、このエントリでは関西Ruby会議2017の発表内容をあれこれと紹介させてもらいました。
そのうちRubyist Magazineで詳細なイベントレポートが発表されると思うので、当日参加できなかった方はそちらも参考にしてみてください。

関西Ruby会議2017、非常によい技術イベントでした!


夫婦でスイーツバイキングに行って帰ったら、なぜかランニングしてた話

はじめに

今回は特にオチのない、普通の日記です。

最近、僕のプライベートのタスクがいろいろ立て込んでいて週末も忙しく、「全然行きたいところに連れて行ってもらえない」と妻がご不満なので、昨日は久々に二人で大阪に出かけました。

スイーツバイキングでお腹いっぱい

妻は結構ストイックにダイエット(運動とか食事制限とか)を続けているのですが、「たまには自分を甘やかしたい!スイーツバイキングに行きたい!!」との希望で、ホテルニューオータニ大阪の「スイーツ&サンドウィッチビュッフェ ~メロン&チェリー~」に向かいました。

スイーツ&サンドウィッチビュッフェ ~メロン&チェリー~|SATSUKI LOUNGE|ホテルニューオータニ

f:id:JunichiIto:20170514044434j:plain:w300

このスイーツバイキングはタイトルのとおり、メロンとチェリーを使ったスイーツをたくさん集めたデザートバイキングです。
というわけで、スイーツがどーん!

f:id:JunichiIto:20170514045248j:plainどーん!!f:id:JunichiIto:20170514045255j:plainどーん!!!f:id:JunichiIto:20170514045301j:plain

ホテルのスイーツバイキングということで、どれもすごく美味しい!
甘すぎなくて食べやすい!

僕のお気に入りはふわふわのロールケーキ。
妻は「スーパーメロンショートケーキ(一番下の写真)」と特製アイスクリームが美味しかったと言っていました。

甘いものに疲れた人のために、おかず系のメニューも用意されています。
おかず系で美味しかったのはグリーンカレーです。結構辛口だったけど。

ただ、僕たち夫婦はどちらも普段少食なので、バイキングに行くといつもすぐにお腹いっぱいになっちゃうんですよねえ。
最後の方は「う~、苦しい。美味しいけど」みたいなことを言いながら食べてました。
(周りのスイーツ女子たちはニコニコしながら最後までバクバク食べてたんだけど、どんな胃袋してるんだろう?)

阪急百貨店でショッピング

スイーツバイキングに行ったらそのまま帰る予定だったんですが、「せっかく大阪まで来たんだから買い物もしたい。鞄が見たい」と妻がおっしゃるので、梅田の阪急百貨店へ。

f:id:JunichiIto:20170514045851j:plain

「そうだ、明日は母の日だった」ということで、妻のお母さんのためにかわいい財布を購入。

それから妻はちょっと奮発して自分へのご褒美としてサンローランのバッグを購入しました。

f:id:JunichiIto:20170514050222j:plain

さすが一流ブランド、質感の高い、高級感あふれるバッグですね。(ん?)

腹ごなしのウォーキング

ショッピングも終わり、再び西脇の自宅に帰ってきたんですが、「満腹のまま何もせずに寝たら太りそう」ということで、家の前の堤防を二人でウォーキングすることに。

f:id:JunichiIto:20170514050704j:plain

昼間はこんな感じ ↑ なんですが、帰ってきたら薄暗くなってたのでiPhoneを懐中電灯代わりにしながら、夫婦で堤防をウォーキング。
片道1.5km、往復3kmのコースです。

・・・からの、突然のランニング!?

で、折り返し地点ぐらいまで来たところで、近所に住んでる妻のお母さんから「ちょっと困ったことが起きたので急いで帰ってきてほしい」という連絡が。
引き返すにしてもすでに折り返し地点なので、結局端から端まで戻ることになるという。

妻が「私、走って帰るわ」と言い出して、ウォーキングが急遽ランニングに変わってしまいました。
実は妻はダイエットの一環で週に何度か5km程度のランニングをやっています。
でも僕は昔から走るのが大嫌いなのでランニングは普段全くしていません。

しかし、真っ暗な堤防を妻一人で帰らせるわけにもいかないので、僕もiPhone(懐中電灯)を片手に一緒に走ることにしました。
(ちょっとー、聞いてないよー!!)

なんですが、僕も最近筋トレや有酸素運動はやってるせいか、意外と走れる。
靴が擦れて足の指は痛くなったけど、それ以外は「意外となんとかなるやん」という感じで走れました。

とはいえ、1.5kmを走りきるとゼーゼーハーハー言って汗だくに。
いやあ、ランニングなんていったい何十年ぶりだろう?

いっぱい食べたから体重は・・・!!

ひさびさに「もう食べきれない」というぐらい食べてしまったので、気になるのは体重の増加。
(特に深い意味はなく)僕も最近少し体重を落とそうと思っていたので、「こりゃ絶対増えてるわー」と思ったのですが・・・

f:id:JunichiIto:20170514070559p:plain:w300

よかった、前の日と同じでした。(体脂肪率はちょっと増えたけど。。)
お腹いっぱいで晩ご飯を抜いたのが良かったのかな??

エピローグ

最後は寝る前に妻にマッサージ。
「あ~、美味しかった。今日は満足💕」と言いながら妻が眠りに落ちたので、今日はここ最近の欲求不満を解消できたんじゃないでしょうか。

でも「次は富山でお寿司が食べたい」だそうです。
日本海方面で食べるお寿司、めちゃくちゃ美味しいよねー。
けど、富山か・・・日帰りじゃ厳しそうだな。。。
いや、はい、今度また行きましょう。

というわけで、昨日はそんな一日でした。
おしまい。

あわせて読みたい

体重はいつもタニタの体重計で測ってます。
スマホアプリと連動するやつです。

妻は自宅でパン屋さんをやってます。