Haskell
Scala
Linux
ポエム
Swift

勝手に開いた社内読書会のご紹介

 この記事では、ラビットハウス社内で勝手に開いた/開かれた読書会に参加して読んだ本をご紹介します。本によって読み方を変えたりしてます。インターネットで色々な情報を得られるんですが、体系的に知識のまとめられた本を読むのは、知識の穴を埋められたり、意識していないかったものごとの繋がりに気づかせられたりして、ゆるゆると継続してやっていきたいなと思っています。

 以下に書かれたものは私が参加したものだけが記載されていますが、他にも「SRE サイトリライアビリティエンジニアリング」や「純粋関数型データ入門」、「型システム入門」など様々な本の読書会が開かれていたらしく、時間やタイミングが許せばそちらも参加したかったなぁと思っています。

Swift 公式ドキュメント

  • 期間: 2014/09〜2014/12
  • ペース: 週1時間
  • 読み方
    • 集まって、パートごとに区切って各自読む
    • その後、Playgroud で実際にコードを書いて動かしてみる

 プログラミング言語 Swift が Apple から発表された直後の 2014 年 9 月より、チームの方と週一ペースでドキュメントを読み進めつつ、Playgroud で実際にコードを動かしてみるという会が行われました。2014 年に新卒入社して、研修が終わり配属直後にこういった読書会にお誘いをもらっての参加でした。

 最初、会社で読書会に誘われたとき、逆に、会社で読書会やっていいの?みたいな感想を抱きました。ちゃんとお仕事をしていれば良いらしいので、ちゃんとお仕事をしつつ、読書会に参加。その後、私自身も突然 iOS アプリ開発をやることになったのですが、これやってたのもあり、iOS 開発未経験でしたが特にプログラミング的に困ったことはあまり発生しなかったかなと思います。まあ言語仕様いろいろと変わってしまってる部分もあるんですが。

すごいHaskellたのしく学ぼう!

  • 期間: 2015/3 〜 2015/08
  • ペース: 週1時間
  • 読み方
    • 毎週発表者が担当部分をまとめてきて解説
    • 気になりどころを REPL で実験

Haskell での基本的なプログラミングについてまとめられている本なので、担当者が該当部分をまとめてきつつ、REPL でコードを動かしてみるという雰囲気でやってました。後半のモノイドとかファンクターとかになるとちょっと難しい部分も増えてきたので、実際にコードを動かして振る舞いから理解するという感じで頑張りが必要でした。

Scala 関数型プログラミング & デザイン

  • 期間
    • 第一部: 2015/9 〜 2015/12
    • 第二部: 2016/01 〜 2016/06
  • ペース: 週1時間
  • 読み方
    • 集まって音読
    • 演習問題が出てきたら各自その場で解いて Slack に投げる
    • 全員の回答がでそろったら、GitHub に上がっている公式の解答と比較する

 この本に登場する問題は、解答が GitHub 上にあがっているので、読書会の進行がやりやすかったです。誰かひとりが解くみたいなことすると、全員の理解レベルにどうしても大きな差が出てきてしまうので、基本的には各自が解いて、Slack に貼り付けるという形で進めました。時間はかかるのですが、この本はやはり演習問題をきちんと解かないともったいない本なので、こういう形式ですすめました。

サーバーインフラを支える技術

  • 期間: 2017/02 〜 2017/04
  • ペース: 毎日1時間
  • 併読書: ネットワーク技術&設計入門
  • 読み方
    • 集まって音読
    • 本の内容をもとに現在運用しているサービス構成と照らし合わせ改善点や疑問点を話題にする
    • 理解があいまいなネットワーク関連技術についてはネットワーク技術&設計入門を参照する

 音読していきつつ、現在運用しているサービスと照らし合わせて、改善点を探したり、本に記載されているプラクティスが本当に必要かどうかなどを議論しながら進めました。またネットワークまわりの細かい知識について、これなんだったっけみたいになったときには「ネットワーク技術&設計入門」を用語集として利用して、知識の確認を行いました。

ふつうの Linux プログラミング

  • 期間: 2017/11 〜 継続中
  • ペース: 毎日1時間
  • 読み方
    • 集まって音読
    • ところどころに登場する Linux コマンドの実装を写経
    • 演習問題もやる
    • 余力のある人は、他の言語に移植も行う

システムコール、ストリーム、プロセスなどについて、抜けてる穴を埋めるために読んでいる。参加者的にも、半分以上のことはすでになんらかの形で知っている内容ではあるが、時折ここ知らなかったなど、穴が見つかり、良い。実践として動くコードを書くという意味でも良きトレーニングになる。個人的にはこれを読んだ後、Go ならわかるシステムプログラミングの読書会に繋ぎたい狙いがある。

次に読書会で取り上げたい本

  1. Go ならわかるシステムプログラミング
  2. 暗号技術入門
  3. アジャイルソフトウェア開発の奥義

読書会のすすめ

すぐに業務に役に立つ本、じわじわ効いてくる本など様々ありますが、最終的にやっぱり新しいことを知るのは楽しいし、複数人で読むと誤っていたり歪んだ解釈をしてしまうことを防いだりできるので、読書会おすすめです。特に個人的には全員が順番に音読してくスタイルが気に入ってます(黙読は眠くなる)。ぜひお試しください。