RubyKaigi2019でRuby初学者が何を学んだのか

#RubyKaigiとは

2019年4月19日〜4月21日に、福岡県の福岡国際会議場でRubyKaigi2019が行われました。RubyKaigiは、Rubyのエンジニアやコミッターなど世界中からRubyistが集まり、セッションを行ったり様々な交流を行う国際カンファレンスです。

[RubyKaigi2019 公式サイト](https://rubykaigi.org/2019)

Kaigiと書いてあるものの、スポンサーブースとして多くの企業が事業をアピールしていたり、お昼は屋台でご飯など（福岡ならでは）、どちらかと言うとお祭りみたいな感じで、お堅い雰囲気は全く無かったです。交流重視なのかなあと感じました。

しかし、国際カンファレンスなだけあって、セッションで発表された内容はかなり玄人向けでした。自分の技量が足りていないのでそう感じただけで、立派なRubyistの方からすればそうでもないのかもしれませんが…。実際、自分の技量としては

- Ruby … ちょっと触ってるくらい。Ruby合宿の参加・Ruby技術者認定試験合格の経験はあるものの、Rubyを使って個人で何かを開発した経験は殆どない。大学のプログラミングの講義レベルのプログラムなら組める程度

- Rails … 勉強を始めたばかり
- gem/bundlerなど … 名前だけ知ってる

という感じで、到底Rubyistとは言えないものです。僕自身、行く前までRubyKaigiがセッション主体であると思っていたので「本当に行って意味あるのかな、楽しめるかな」と思っていました。

前置きが長くなりましたが、ここでは、こんな自分が実際にRubykaigiに参加してどう感じたのか、何を得たのか、レポートしていきたいと思います。

#参加した動機

僕が参加した動機は単純で、とても簡単なものでした。

「比較的近い場所で、なにやらすごい集まりがあるらしく、しかも**最終日だけ学生は無料で入れる**んだ。何か学べるものがあるかもしれないし行ってみよう」

RubyKaigiは全3日の予定で、参加するには（学生からすれば）それなりの値段がかかります。全日程参加の場合、学生割でも7500円かかります。内容の面からすれば、充実しすぎていて安いくらいなのですが、少し躊躇してしまう金額なのかなとおもいます。しかし、最終日だけは無料で入れるのです。すごい。あとは自分の予定的に最終日しか参加できそうになかったので、どうせならと思い切って参加することにしました。

#僕の行動日記

実際僕がどんな行動をしてたかに触れながら、「大体こんな流れなんだあ」とふわふわ感じてもらえるといいです。さっきも言ったように、セッションの具体的な内容を語れる程の技術力は持ち合わせてないので、そこら辺を詳しく知りたい人は別の記事を見たほうがいいと思います。（発表資料へのリンクは貼ります）また、もし僕が書いた内容が間違っていたら、お手数ですがコメントで指摘していただけると嬉しいです。

##9:00 受付

まずは会場で受付を済ませます。僕は間違えてスタッフ向けのbreakfastに参加できると思い込んでめちゃめちゃ早くに着きました。ミスった。開始時間の10時まで時間があったので館内をぐるぐるしていました。普通にmatzが歩いててすごいです。

##10:00〜11:10 "Ruby Committers vs the World" at #rubykaigiA

一番最初の発表は、Rubyコミッターが壇上に上がり、会場からの質疑応答に答えたりRubyの新機能についての提案を行うというものでした。いわば公開の開発者会議です。個人的にこのセッションが一番面白かったです。議論しながらも、終止ゆるい雰囲気が保たれていました。

![IMG_5263.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/240765/5f9bc1b5-6961-2b5f-93db-4a9671a565f2.jpeg)



##11:20〜12:20 スポンサーブース巡り

この時間はセッションを聞かずに、主に2Fの多目的ホールと3Fのメインホールにあるスポンサーブースを見て回りました。というのも、受付時にスポンサーブースを巡るスタンプラリーのカードが渡されたので、それを進めがてら、（ノベルティも貰いつつ）どんな事業をしているのか、またどんな技術があるのかを見て回りました。このときに、ふわふわしていた動機から「Rubyを使ってどんな技術が活用されているのか見てみることで今後やりたいことが見つかるといいな」と明確な目的ができました。

あと、めちゃくちゃノベルティもらいました。企業の皆さんがとても優しいです。

##12:30〜13:00　昼食

お腹が空いたので、ご飯を食べました。今回は福岡での開催なので、屋台スタイルです。最初はお金払うのかと思ってましたが無料でいただけました。焼き鳥丼を食べました。次のセッションは13:30からなので、余った時間は休憩です。

##13:30〜14:10 "Best practices in web API client development" by sue445 at #rubykaigiD

[Best practices in web API client development #RubyKaigi](https://speakerdeck.com/sue445/best-practices-in-web-api-client-development-number-rubykaigi)

お昼明け一発目のセッションはGo Sueyoshi氏による「失敗しないAPIクライアントの設計の話」です。APIクライアントがするべき役割とそうでない役割、Go氏がAPIクライアントを作る上で考えている7つのパターンなどのお話をされていました。

##14:20〜15:00 "The future of the Bundled Bundler with RubyGems" by hsbt at #rubykaigiA

[The future of Bundled Bundler](https://www.slideshare.net/hsbt/the-future-of-bundled-bundler)

次に、Hiroshi SHIBATA氏による「Rubyの最初の体験を良くするための話」を聞きました。僕自身もRubyを始めた頃、gem install bundlerはとりあえずやっとこう、とネットやら何やらに書かれていたのを見て、言われるがままにコマンドを打っていた覚えがあります。これを無くすために、Ruby2.6以降はRuby本体にBundlerがマージされてあり、「最初からなんかできる」状態にするとのことでした。

##15:00〜15:40 スポンサーブース巡り

この時間はAfternoon Breakとなっており、参加者がおやつを食べたりしながら交流を深めたりしていました。僕はその時間、またスポンサーブースを巡っていました。

この時、 Sansan株式会社のVPoEの宍倉さんと、少し長めにお話をしました。僕も知っていた名刺アプリ「Eight」の開発元です。自分の話も聞いてくださり、なんとか「人と交流できたらいいな」と言う思いも達成できました。本当に有難うございました！

また、Ruby合宿からお世話になっており、「Ruby超入門」や「RubyとRailsの学習ガイド」の著者でもあるigaigaさんとも少しお話しできました。学習ガイドは、学生だから！とのご好意で無料で頂いてしまい、直接お礼が言いたいと思っていました。達成できてよかったです。本当に有難うございました！！
購入ページはこちらから↓
[Ruby超入門](https://gihyo.jp/book/2018/978-4-297-10123-7)
[RubyとRailsの学習ガイド](https://igaigarb.booth.pm/items/1312664)

##15:40〜16:20 "Timezone API" by n0kada at #rubykaigiD

会場を移動し、nobu氏のTimezone APIのお話を聞きました。Rubyにはそもそもタイムゾーンを指定するAPIが存在せず、作るのも大変なのでgemを探してみたらTimezoneとTZinfoが見つかったよ。便利。という話でした。個人的に、Rabbitが何回も落ちたり、それに作者が対応する、コミッター同士で議論が活発化するなど、見所満載でした。

##16:30〜17:10 "Red Chainer and Cumo: Practical Deep Learning in Ruby" by hatappi & sonotos at #rubykaigiD

[Red Chainer and Cumo: Practical Deep Learning in Ruby at RubyKaigi2019](https://speakerdeck.com/sonots/red-chainer-and-cumo-practical-deep-learning-in-ruby-at-rubykaigi-2019)

次は、Yusaku Hatanaka氏とNaotoshi Seo氏による「Rubyによる深層学習」のお話を聞きました。 深層学習に強いPythonと対比しながら、Rubyで深層学習ができるフレームワーク「Red Chainer」や深層学習モデルを様々なフレームワーク間で交換するフォーマット「ONNX」、RubyでGPU計算ができる「Cumo」などの技術紹介と開発経緯・開発の歴史が主な内容でした。

##17:20〜18:30 "Optimization Techniques Used by the Benchmark Winners" by jeremyevans0 at #rubykaigiA (EN Keynote)

[Optimization Techniques Used by the Benchmark Winners](http://code.jeremyevans.net/presentations/rubykaigi2019/index.html#1)

最後の発表は、Jeremy Evans氏の「早く動かすためのコードの最適化」についてでした。発表は英語でしたので、雰囲気で聞くのが精一杯でした。ただ、それでも「すごい」しか出てこないほどに、ひたすらにコードを最適化していくと言うものでした。素人目から見てもすごいと感じたので、もっと技術力があればさらに感動していたんだろうな、と思います。

「速さは正義。You Can Do It!!!!!」

##18:30〜18:45 Closing

大団円を迎え、RubyKaigiが終わりました。
![IMG_5268.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/240765/ab868b47-bbe3-f4a9-589f-c5cb6f4aa548.jpeg)

#何を得たのか、感想など

と言うわけで、この1日で自分がどう感じ、何を得たのか。感想を交えながら率直に書いていきたいと思います。

##1. 「Rubyをやっている」と言う気持ち

Rubykaigiに参加している多くの人たちは、エンジニアやコミッターである前に「Rubyをやっている」「Rubyが好き」な人たちでもあるわけです。僕も、技術力云々の前に、「Rubyで何かしたい、好きでやっているから楽しい」と言う気持ちを持っています。いわば、ここに参加している人たちはRubyistであり、ここに参加した人は全てRubyistな訳です。自分もこのコミュニティの中で活動しているんだな、と感じさせてくれました。

![IMG_5283.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/240765/94beb008-7e8f-c07f-8b5c-5a9e382a01ac.jpeg)

##2. 「Rubyで何ができる？」と言う知識

これは特にスポンサーブースを回ってる時に実感しました。ブースを回ってて、ノベルティをもらう時に「うちの企業はこんなことしているよ」と言うことを教えてくれたり、パンフレットをくれたりします。それらの大半はRubyで実現されていて、突き詰めるとこんなことができるんだなあと感動しました。僕が受験生の頃本当にお世話になったStudyPlusや、日頃使う食べログやCookpadなどがRubyによって支えられているのだと実感し、「自分もやりたいことが見つかった時、Rubyで開発してみよう」と考えるようになりました。

##3. 「すごい人に会えた」と言う実績

RubyのパパであるMatzを始め、元アイドルで現SmartHRの社員であるエンジニアのかなきゃんさんなど著名な方や有名gemの開発者など、とにかくすごい人たちがたくさんいました。特にかなきゃんさんは、[ブログ](https://tech.smarthr.jp/entry/2019/02/12/103039)を読んでとても衝撃を受けていたので、お目にかかれて嬉しかったです。（声を掛ける勇気はありませんでした）こんな経験も、RubyKaigiでしか味わえないのかなと思います。

##4. たくさんのノベルティ

これに関しては物理的に得たものです。RubyKaigi公式からのノベルティ（上の写真のネームホルダーやステッカー、ピンバッチ）や、スポンサーからたくさんのノベルティをもらいました。最終日だけの参加にも関わらず、もらったステッカーの数は100枚超えでした。さらに、知恵の輪やおちょこ、ヨーヨー、ミネラルウォーター、ドリップバックコーヒー、マシュマロなど個性的な物から「本当にノベルティでもらっていいの？」って物まで頂けました。企業のこと知れるだけでもアドバンテージなのに、こんなにもてなされていいのか…と思いました。

初日から参加していれば公式のTシャツとパーカーももらえたらしい…予定が合わなかったのが残念。

#まとめ

とても充実した一日になりました。「まだ勉強中でRuby全然詳しくないけど行って意味あるのだろうか」とか思ってる人は絶対行ったほうがいいと思います。最新の技術に触れること、勉強した先に何があるのかを感じることだけでも、とても有意義でした。勉強したいと言う熱意、やる気があれば、少なくともスポンサーブースにいる人たちはそれに応えてくれると思います。実際、僕も話を聞く時に「まだ勉強中で…」と言うと「そうなんだ！Ruby楽しいよ！」と色々教えてくれる人が多かったです。

日本で定期的にRubyKaigiを開催したり、地域のRubyコミュニティがあったりと「人との交流」を大事にするRubyistならではの温かさを感じることができました。

次のRubyKaigi2020は、2020/4/9〜11で、長野県松本市で開催されます。僕は来年社会人となっていますが、予定が合えばまた参加したいです。その時までにRubyの腕も上げていきたいです。

他にもたくさん楽しいことはありましたが、本当に長くなりそうなのでこの辺で。何か不安な点や聞きたいこと、また指摘改善などありましたらコメントよろしくお願いします。

最後に、RubyKaigiを運営したスタッフの皆さん、参加したスピーカー、スポンサーの皆さん、本当にお疲れ様でした。とてもいい経験ができました。有難うございました。