「Effective Java 第3版」の読書会に参加してきました

2020.06.14

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

はじめに

事業開発部でQAエンジニアをしている長友です。

今日は読書会に参加してきましたという投稿です。

たぶん私が出てきた読書会の中で、いろんな意味で最高峰の読書会です。

読んだ本は以下です。

Effective Java 第3版

私がこれまで読んだ Java言語の本では、必ずと言っていいほど参考図書やおすすめ図書、次に読んだ方がいい図書などとしてあがっている本です。

私の所属部署で開発している prismatix で、私自身はQAエンジニアなので、そこまで言語に詳しくはないです。でもこの読書会にはそんな私が参加してみたい、また参加してよかったと感じる要素がいっぱいありました。

その辺について触れるとともに、読書会の開催時のヒントにつながればと思います。

何が最高なのか

私が参加した読書会は 第1回『Effective Java 第3版』オンライン読書会 です。

自粛が解除されたとはいえ、今の状況ですから、オンラインでの開催です。

翻訳者ご本人 = 読書会主催者

主催は原著を翻訳された柴田芳樹さんです。(以下では先生と記載してます。)

本を書かれたご本人が主催してくださっているところがまずは最高なところの1点目です。
よくあることかもしれませんが、この本の内容自体が難しい内容で、そうしたこともあってか、誰もが参加できる形でじっくり本を読む会が翻訳者ご本人主催の形で開催されたことはこれまでなかったと思われます。
難しい内容に対して、ご本人の解説付きで読み進められる状況は最高と言えます。

また、書かれたご本人の先生が主催なので、いろんな裏話も聞けるのではないかと推測できます。こうしたことも読書会の楽しみの1つでもあります。

【読書会開催時のヒント】(個人的な見解です)

著者の方にご参加いただけるといいのだと思いますが、なかなかそれが叶わないこともあると思います。
著者の方にご参加いただけなかったとしても、読書会で見つかった誤植とかがあれば、それは何らかの形でお知らせしましょう。本からいろいろな知見が得られるのは本を書いてくださる方々がいるからなので、フィードバックできる方法があれば、出版社を通じてでもお知らせしましょう。
そうした循環がまたいい本に出会える機会を生んでくれるんだと思います。

幅広い参加者の方々との出会い

オンラインでの開催でもあり、またこの分野では特に著名な方の読書会なので、いろいろな所から参加されている方がいました。また今回はオープンな形での募集で、私のような初心者からかなりご経験を積んでおられる方まで幅広いレベルの方が参加されていました。

先生はとても大変だったと思います。でもいろんな方がいるおかげで、私自身はその世界のレベル感のようなことを感じ取れて、目指すべき先の状況を垣間見れるのがとてもいい経験だと思っています。

【読書会開催時のヒント】

読書会もだんだんと同じようなメンバーでの開催になっていくことがあります。 そうすると共通認識の中での話が多くなってしまったりして、素直に中身を読めないときがあったりするのではないでしょうか。 そうしたことを防ぐには、やはり新しい方やたとえ経験が少なくても聞いてくれる方の参加があると、そうした状況を打開できることもあるように思います。

進行のスムーズさが長時間なのを感じさせない

この読書会はいわゆるもくもく会とは違い、先生も加わって、参加者一人ひとりがほぼ1ページずつ声に出して読んでいく方式で行われました。
途中先生が参加者の皆さんに問いを投げかけたり、また参加者の方から疑問に思ったことを先生に質問することで進んでいきます。

さきほども書いたように、先生はこんなに幅広く、Javaの経験度合いがまちまちの状況の中でも、適度に読んだ方に読んだ箇所の中で重要と思われることについて質問を投げかけてきます。

私が読んだところでは、「クラスのメンバーについて書かれていますが、何か入っていないものがあるって思いませんか?」と聞かれました。 私はさっぱりわからず、そんなときには先生はやさしくフォローをしてくださって、「コンストラクタ」ですよと答えを教えてくださいました。

また、他の場面では、質問の内容によっては、最初の自己紹介で Javaの経験を聞いていたので、経験豊富そうな方に質問を振って、ちゃんと進行を考えて進めておられました。

そして、なにより先生ご自身も疑問を投げかけて、先生の書斎と思われるところから本を取り出して調べて、そこから回答を見出してくださるくらいサービス精神が旺盛な読書会です。

【読書会開催時のヒント】

今回途中2回ほど休憩を取りながら進められていましたが、そうした休憩も必要です。でも、それ以上に、どれだけ進行が適度に投げかけをすることが大事なのを実感しました。 オンラインの場合、反応がわかりにくく、進めにくい状況もあると思います。でもそんな中でも、問いつつ、問われつつ、それも多くなりすぎずにして活性化していくことは重要だと思いました。

ソースを見せて、実演まで

読書会開始時間の2〜3分前に私はオンラインに入りました。そのときに画面に映ったのは、今回読む本の中身と、それとターミナルの画面に、参加者一覧などでした。

読書会が準備万端の状況で、参加者がぞくぞくと入ってこられました。

読書会が進んでいく中では、やはり原点のソースコードにあたったりしないといけない場面があります。
そうしたときに、ターミナルで先生がコマンドを打って、いろいろ見せてくださる。また実際にコンパイルしている状況などが生でみられるのは、なんとなくモブプログラミングなどで自分が知らないコマンドを使ってたら、それに目が行くのと同じような感覚だと思います。
経験を多く積んだ方が、そのときには無意識にやっている中に、とても多くの知見が詰まっていて、それが生で見られることは何ものにも代えがたい経験になります。

【読書会開催時のヒント】

読みだけだと理解が難しいところもあるので、そうしたときには、実際にコードをコンパイルして実行してみせることも理解を助けることにつながります。 今回は先生ご自身の本なので、もとのコードが見られて、それを使うことができました。そうした状況でない場合にも、PDF版やサンプルコードが公開されていたら、そうしたものも事前に用意して、すぐにコピペして実行できる準備をしておくと、良いのだと思いました。

弱さまで見せられる

先生は読書会が進んでいく中でぽそっとおっしゃっています。自分は Javaで開発してないからと。今はご自身では Go言語でお仕事をされているそうで。それも、Vimだけを使ってです。さすがに先生も Javaの開発だったら IDE を使わないとだろうなぁとおっしゃってました。

弱さという言葉が適切かどうかわらないですが、前に読んだことのある本では、そうしたご自分が弱いところをさらけだせることが組織や個人の潜在能力を開花させる方法だと聞いたことがあります。

たぶん、ご自分で疑問に思うことをいっぱい投げかけつつ、ご自分の弱いところもさらけだせることが、とてもご自身の興味や知見を広げることにつながっているように感じました。

【読書会開催時のヒント】

ひとつ間違うとこうしたところは難しいあんばいなのかもしれませんが、一緒に学び合うという姿勢は大事なのだと感じました。

またなんと言っても、先生の対応はとても礼儀正しく、どんなに自分ようなレベルの低い者がいたとしても、救いの手をさしのべて、進んでいってくださるのには、感謝しかないです。 よくわかっておられるからとか、経験豊富だからということだけではなく、そうしたなんていうか態度などは、参加者に敏感に伝わるものだと思います。だから、自分も読書会を行うときには、参加者とともに学べることを楽しみつつ、礼儀正しく接するようにしないといけないと思いました。

今回はここまでです。

読書会だけでなく、さまざまなイベントがオンラインで開催されるようになっています。またそうした環境がすごく整ってきています。 そんな中でもソフトの面の大切さも忘れないようにしていくことで、たくさんの元気がもらえ、より世界が広がって楽しくなっていくのだと思います。

今私も社内で読書会を開催しています。以前のブログ記事であげた「マイクロサービスパターン」という本です。先生のようにうまくできてはいませんが、この本以外にもいろいろな本で読書会をしていこうと思いました。