「アルゴリズムイントロダクション」の社内輪読会を実施しました!

初めまして、今年の3月に入社した金山(@tkanayama_)です。freeeで技術者ブログを書くのは初めてです。

さて、今回は5月から2ヶ月ほど実施していた書籍「アルゴリズムイントロダクション(第1巻)*1」の輪読会の様子をお送りします。

「アルゴリズムイントロダクション」は、学問としてアルゴリズムを扱う上での入門書という位置づけの技術書で、大学の教科書や参考書としてもよく採用されているようです。ただし、本記事は特定の技術書に閉じた内容ではなく、

  • これから初めて輪読会を実施しようとしている人が、何に気をつけたら良いか考える手掛かりになる
  • freeeでの活動の雰囲気が伝わる

あたりが達成できるような記事になればと思います。

輪読会実施までの流れ

この輪読会は、私が社内Slackで参加者を募るところからスタートしました。

社内Slackで輪読会の参加者を募る投稿
社内Slackで輪読会の参加者を募る様子(私はfreeeではわらびーを名乗っています)

このSlack投稿でも述べている通り、私自身はアルゴリズムの知識にあまり自信がなく、今年の1月に初めてAtCoderに参加し始めたくらいのレベル感でした*2

10人くらいの人がこの投稿に反応してくれて、最終的には2021年新卒2人・20代の若手5人・ベテランエンジニア2人というバランスの良いメンバーで輪読会をスタートすることになりました。

輪読会実施までにやったこと

勉強会実施にあたり、以下の2つを事前に行いました。

  1. メンバーのレベル感を把握する
  2. ある程度のガイドラインを定めておく

1. レベル感を把握する

まずはじめに、各メンバーがどれくらいアルゴリズムに馴染みがあるかどうかを確認するための簡単なアンケートを取りました。限られた時間の輪読会ではなかなか全てのレベル感の人のニーズを満たすのは難しいので、ある程度前提とするレベル感を揃えることにより、的を絞った内容の輪読会ができるようにしようという意図です。

輪読会メンバー向けに投稿したアンケート
輪読会メンバー向けに投稿したアンケート

ところで、アンケートでレベル感を把握するというのもなかなか難しいですね。もっとよさそうな質問項目があれば是非教えてください。

2. 簡単な輪読会指針を定めておく

次に、前もって簡単に輪読会指針を定めておきました。どういうスタンスで輪読会を進めていくかある程度認識を揃えておいた方が、参加する側も発表する側も安心だろうという気持ちからです。特に、今回はフルリモートでの実施であることや、私のような新入社員が多数参加していたという事情もあり、言語化されていないことを雰囲気で察するのが難しい状況でした。

例えば、以下のような指針を定めました。

  • 各章に担当者を割り当てる形で進めるが、担当箇所を完璧に理解して説明する必要はなく、どのあたりがわからなかったか明確になっていればOK
  • 発表資料を作り込みすぎなくてOK。形式も自由で、伝われば何でも良い
  • 予習するかどうかは任意
  • マウントを取るのは禁止

輪読会の実施

輪読会は、5月から開始して毎週火曜日に1章ずつ進める形で継続的に行いました。結果的に、ほとんど途中離脱者を出すことなく最後まで読み切ることができました。

輪読会を終えて

以下では、輪読会を実施して気づいた改善余地や良かったことを挙げていきます。

改善余地

  • 発表資料作成の負担が大きく、どうしても発表者の準備時間が長くなってしまうという問題がありました。輪読会指針でも「発表資料を作り込みすぎなくてOK」と明言したものの、どうしても人に説明しやすい資料を作ろうとすると時間がかかってしまいました。特に、今回扱った書籍は数式の占める割合も高く、数式の入力が大変だったという声もありました(結局、本の写真を撮って画像を資料に貼るのが最適解のようでした)。このあたりをうまく扱えるようなツールが出てくると、輪読会実施の障壁が下がると思いました。

輪読会事後アンケート「どれくらい発表準備に時間をかけましたか?」中央値は5時間くらい。
輪読会事後アンケートの結果。扱う章や人によって多少ばらつきはあるものの、中央値は5時間くらいであった。

  • しっかり予習の時間を確保するのが重要だということがわかりました。輪読会指針では「予習するかどうかは任意」としていましたが、輪読会事後アンケートに基づくと予習の有無により理解度が大きく異なることが示唆されました。いかに予習の時間を捻出できるか、もしくはいかにメンバーが予習しやすい仕組みを作るかが、輪読会成功の鍵になりそうです。

開催してよかったこと

  • 「自分だけで読んでいたら絶対挫折していたが、輪読により読み通せて良かった」という声が多数あり、私もそう感じています。これは当初の開催意図どおりなので、私も開催した甲斐がありました。

  • 一方で、副次的な効果として「リモート時代に社内で知り合いを増やすことができてよかった」という声もありました。特に、freeeの場合はチームや部門をまたいだ交流を促進する目的の「Shall we lunch」という制度があり、リモートランチ会を開催するとUber Eatsチケットが支給されます。私たちもこの制度を活用し、輪読会外でランチ会を実施して、交流を深めることができました。

まとめ

今回は、freeeで輪読会を実施した一事例を紹介しました。もちろん、freeeではこの輪読会の他にも多くの輪読会や勉強会が不定期に実施されており、楽しく技術を深めることができます。freeeで働くことに興味を持ってくださった方は是非ご連絡ください!

jobs.freee.co.jp

*1:アルゴリズムイントロダクション 第3版 第1巻: 基礎・ソート・データ構造・数学 (世界標準MIT教科書) / T. コルメン他 (著)

*2:この輪読会の効果もあり、輪読会実施期間中にAtCoderで水色のレートになることができました