チェリー本輪読会を完走した感想

筆者が参加していた「チェリー本輪読会」が先日最終回を迎えました。輪読会初完走の感想などを残しておきます。

チェリー本輪読会とは?

フィヨルドブートキャンプ(以下FBC)内で5月半ば~9月半ばの約4ヶ月間に渡って開催された輪読会です。『プロを目指す人のためのRuby入門 言語仕様からテスト駆動開発デバッグ技法まで』(通称チェリー本)を取り扱っていました。

筆者を含め「チェリー本を一周したが理解が浅いのでより深く理解したい」というメンバーが集い、以下の目標が掲げられました。

  • 学習を楽しむこと
  • Rubyを深く知ること
  • ゆるく続けること

土日除く平日の毎朝9時より1時間(週5時間→後に6時間)というなかなかにハードな開催形式でしたが、筆者はなんとか皆勤で終えることができました。全84回のうち30回くらいは開始5分前に起きましたが、意地でも皆勤を維持しました。

筆者が輪読会に参加した理由

筆者は輪読会発足時にちょうどチェリー本を読むプラクティスに差し掛かったところでした。FBC参加前にチェリー本を一周していたので「どうせ読み直すなら輪読会で徹底的にやろう」と思い参加を決めました。

ちなみに、FBCの学習内容(プラクティス)はこちらで公開されています。

bootcamp.fjord.jp

よかったこと

よかったことは数え切れないほどありますが、いくつかご紹介します。

全然わかっていなかったことがわかった

筆者はFBC参加前に、以下の動画を参考にして、飛ばし読みしながらチェリー本を一周しました。

www.youtube.com

輪読会を完走した今となっては、チェリー本の半分も理解しないまま一周していたことがわかりました。

チェリー本は以下のような構成になっており、後半の章は前半の章の理解を前提として解説されています。

  • 第1章 本書を読み進める前に
  • 第2章 Rubyの基礎を理解する
  • 第3章 テストを自動化する
  • 第4章 配列や繰り返し処理を理解する
  • 第5章 ハッシュやシンボルを理解する
  • 第6章 正規表現を理解する
  • 第7章 クラスの作成を理解する
  • 第8章 モジュールを理解する
  • 第9章 例外処理を理解する
  • 第10章 yieldとProcを理解する
  • 第11章 Rubyデバッグ技法を身につける
  • 第12章 Rubyに関するその他のトピック
  • 付録 Ruby on Railsの習得に向けた予備知識

特に2,4,5章の理解が浅いとその後のすべての章に影響します。3章がわからないと、その後のすべての例題で何をやっているのかわかりません。

どんなに難しいコードでも、1行1行読んで何を入出力しているか追っていけば理解できるものです。しかし、1,2行目から理解できず、目が滑ってしまい、ついにはその段落ごと・項目ごと飛ばし読みしてしまう…という流れにはまり込んでいたようです。

モブプロ・irbの操作に慣れた

輪読会では、毎回ドライバーをくじ引きで決め、チェリー本のサンプルコードを実行する様子を画面共有するというモブプロ形式で進行していたので、試してみたいコードをドライバーに指示して実行してもらい、そこから新たな気づきを得るという経験を何度もしました。irbやターミナルの見やすさにこだわるようにもなり、雑談タイムにはおすすめのプロンプトや拡張の情報が飛び交いました。

starship.rs

github.com

一次情報を参照するようになった

未知のメソッドやキーワードを発見すると、すぐにるりまを見てirbなどで挙動を確認する癖が付きました。一次情報を確認する癖は、他の言語や技術の学習でも大事だと思います。

輪読会の最初の頃は、るりまを読むのに苦労していました。しかし何度も参照しているうちに慣れてきて、「どの箇所に知りたい情報が記載されているか」がわかるようになってきました。

下記のような無料書籍があるので、Ruby学習中でるりまに慣れていない方はぜひご一読ください(これまた伊藤さんのZenn書籍です)。体系的にまとめられた導入の存在はめちゃめちゃありがたいです。

zenn.dev

音声通話によるコミュニケーションに慣れた

チェリー本輪読会はFBCのDiscordというチャットツールのサーバ上にある音声チャンネルで行われていました。下の画像のような感じで、音声チャンネルに入った参加者が口頭でコミュニケーションします。

これは音声チャンネル「もくもく部屋」内でBotとふたりきりの筆者 f:id:isshi-hasegawa:20210920175036p:plain

FBCは完全オンライン・自習形式であるため、「誰とも関わらず黙々とプラクティスを進める」ということが起こりがちだったようですが、チェリー本輪読会以後は加速度的にDiscord内でコミュニケーションが活発化していきました。

これはDiscordで輪読会を開催した副次的な効果ですが、参加者一覧が外部からも見えるため、メンター・卒業生がふらっと参加してくださり、我々現役生の疑問を解決するといったことが頻発しました。ふらっとどころか皆勤で解説してくださった方もいらっしゃいました。

しかも、最終回は著者直々にあとがきを音読するというレアイベントが…!なんだこれ…!

また、通信環境の改善について話し合ったり、オンライン独特の会話のテンポに慣れたりと、リモートワークの練習をしているようでもありました。

www.obregonia1.com

読書のハードルが下がった

筆者は本を読むのがまあまあ苦手です。FBCでの書籍を読むプラクティスでは、自分で期限を設けてもダラダラと読んでしまいます。

「苦手」の程度はさておき、筆者はチェリー本輪読会以後発足したいくつかの輪読会にも参加するようになり、輪読会の開催をモチベーションにして読書をする輪読会駆動読書(?)を行うようになりました。

予習が不要なら輪読会内で読めばよいだけです。予習が必要なら、対象範囲のみを期限までに読めば良いです。「とりあえず今週はこの章だけ読めばいい」とゴールがはっきりしているので、短距離走のように本が読めます。

朝起きられるようになった

どれだけ夜ふかししていても、輪読会のために必ず起きるようになりました。毎日輪読会開催というのは少々特殊な例だと思いますが、無職の筆者にとっては一日のリズムを作る助けになってくれました。しかし筆者は朝型になったり夜型になったり、頻繁に体内時計が狂うので徹夜で参加したことも何度か…。

輪読会が始まってから終わるまでのプロセスを知った

  • 主催にはドキュメント・通知文作成や日程調整といった作業が付随的に発生する
  • 振り返り会を行ってKPTを洗い出し、問題点を共有して解決すると捗る
  • FBCには「輪読会やります」と手を上げれば、自然と集まってくる土壌がある

輪読会を完走したことで、輪読会運営のノウハウ的なものを知れました。「案外なんとかなるかも?読みたい本があれば自分も輪読会やってみよう」と思えるようになりました。

seleck.cc

仲間ができた

何より素晴らしかったのが、仲間ができたことです。初めこそお互い緊張していましたが、彼らと100時間近く一緒に過ごしたことで、気心の知れる仲間となりました。ワイワイ冗談を言い合いながら学習するのはめちゃめちゃ楽しかったです。オンラインで飲み会や打ち上げと称して学習に関係ない話題でも盛り上がりました。

よくなかったこと

よくなかったことは特にありませんでした。

人によっては「時間がかかる」「自分のペースで進められない」「難易度が自分に合っていない」など感じられたかもしれません。

チェリー本改訂版について

2021年9月現在チェリー本の改訂版が制作されています。輪読会で発見した誤字等を他のメンバーが伊藤さんに報告してくれたので、改訂版にいくらか貢献できたと思われます。改訂版の情報については、こちらを御覧ください。

blog.jnito.com

「プロを目指す人のためのRuby入門(通称・チェリー本)」の改訂版を制作中です。 第1版を一通り読んだという人も、改訂版を読んでいただくことで次のようなメリットが得られます。

  • 最新のRubyの言語仕様を一通り把握できる
  • とくに、パターンマッチについて詳しく学習できる
  • 内容によっては第1版の説明を書き直した部分もあるため、より深い理解を得られる
  • 再読することで、すでに忘れてしまっているRubyに関する知識をあらためて覚え直すことができる

とのことです。

改訂版が発売されたらRubyの復習を兼ねて、第1版との変更点を意識した輪読会…など面白そうです。

すでにプログラミング学習を開始している場合、改訂版の発売を待つ必要はないので現行の第1版を読みましょう。Ruby 2.5以上との差分について書かれた激厚サポートQiita記事を参照すれば問題ありません。

blog.jnito.comqiita.com

最後に

現在はチェリー本輪読会同じ時間帯に同じタイムスケジュールで行われている「現場Rails輪読会」に参加しています。『現場で使える Ruby on Rails 5速習実践ガイド』(通称現場Rails)を取り扱う輪読会です。

チェリー本を読み終えて解散、ではありません。だいたい同じだけど、また新たなメンバーを加えて再出発しました。チェリー本輪読会で学んだRubyのことも、Ruby以外のことも、すべてを礎にして、これからも楽しんで学習を続けていきます。

伊藤さん

チェリー本を通じて、Rubyに対する考え方・コードの読み方がまるで変わりました。

今後何度も読み返すのは改訂版になると思いますが、第1版での経験は自分にとって忘れられないものになりそうです。

ありがとうございます!

主催の@eatplaynap329さん

輪読会メンバーの皆さん&森塚さん

おかげさまで楽しく学習できました!ここまでありがとうございました〜!

これからも、ひとつよろしく😁