📚

Nand2Tetris読書会始めました

2021/04/24に公開

はじめに

会社で『コンピュータシステムの理論と実装 ――モダンなコンピュータの作り方』(通称: Nand2Tetris)の読書会を始めたので、その読書会に向けた準備やキックオフまでのお話です。
https://www.oreilly.co.jp/books/9784873117126/

書籍について

書籍のまえがきの言葉を借りながら説明すると、「情報工学(コンピュータサイエンス)またはその他工学部系の学部生および大学院生」向けのコンピュータサイエンスの入門書です。
NANDという論理ゲートからスタートしてコンピュータシステムを作り上げ、さらにその上でアプリケーションを動作させることを目指しています。

この本を紹介されている方のブログをいくつか読んだところ、最後に動作させるアプリケーションはテトリスではないらしいですが…笑

きっかけ

読書会うんぬんの前に、そもそもなぜこの本を読もうと思ったのかと言うと、1年以上前から月1で受講している研修でこのような話を聞いたからです。
https://yshibata.blog.ss-blog.jp/2016-07-01

ざっくりまとめると、

  • 『そんなことも知らないの?』が許される範囲は経験を積むにつれて狭まっていく
  • プログラミングの学習だけでなく、もっと基礎的な知識も身につけよう

といったことが書かれています。

で、なぜそれが読書会をやるという話になったかですが、自分が企画して半年ほど開催していたリファクタリング読書会がちょうど終わったタイミングだったからです。
https://www.ohmsha.co.jp/book/9784274224546/

「次何か読まないの?」と聞かれて「個人的にこの本を読もうと思っています」とNand2Tetrisを出したところ、思いのほか周りからの反応が良かったのでそれならみんなを巻き込むかと思って読書会を企画しました。
いま考えるとこの本をひとりで読み切るのは厳しい気がするので、いろんな偶然が重なってラッキーだったなと感じています。

読書会について

概要

  • 週1回1時間の開催
  • 在宅勤務メインなのでオンライン(Teams会議)で開催
  • 参加者は予習必須
    • 書籍の指定箇所を読む
    • 分からなかった箇所や気になったことを質問表に記入
    • 章末の演習課題を解く
  • 読書会の時間は、質問表を見ながら書籍に関するディスカッション + 演習課題の確認をする

追記(2021/06/04)

途中から進め方を少し変えることにしました。

  • 予習はこれまで通りやる
  • 読書会の時間で、ページを区切って各自で書籍を読み直す時間を設ける
  • その後、読んだ範囲の中から質問表に書かれた箇所・読み直して気になった箇所についてディスカッションをする
  • 隔週で「もくもくタイム」を設ける
    • このときは書籍の内容は進めず、各自が予習・復習をする時間にする
    • 演習問題で詰まっているところがあったり、過去にやった範囲でわからない点があったりしたら、自由に質問・相談をする

参加者

Slack(個人チャンネル + 前回の読書会チャンネル)と社内ブログで参加者を募りました。
予習が必要なので正直あまり人数は集まらないだろうし、自分を含めて5人くらいでやれればいいかなと思っていましたが、結果的に15人も集まりました!(その後さらに3人が入って18人になりました)

メンバーには、同期や同じ開発チームの先輩、リファクタリング読書会の参加者、グループ会社の社員など、多岐に渡ります。
わたしの採用面接の面接官だった方も参加してくれています。
何でこんなに集まったのかと言うと、組織のリーダーをされている方がメンバーにこの読書会を勧めてくれたり、参加者の何人かが「Nand2Tetrisを読んでいる」と発信していたのを見て興味を持つ人が出てきたりと、わたし以外の参加者の力が大きいです。

キックオフ

読書会の初回は、次の内容で実施しました。

  • 自己紹介
  • 進め方の確認
  • 開催スケジュール決め
  • 書籍の『イントロダクション』を各自読む

参加者を募るときに、社内ブログに読書会のページを作って進め方や予習内容などを書いたのを読んでもらえるようにしていたので、キックオフのときにはその辺りは確認程度で済ませることができました。

これから

(しばらくは祝日や研修の関係で不定期開催になりますが)週1ペースで読書会を開催する予定です。
まずはこの本を読み切ること・読書会から脱落しないことを目標にがんばります。
読書会を主催することで、自分が逃げられない状況を作ったとも言えますが…笑

予習や読書会で学んだことはできるだけ記事にしていこうと思います。

この読書会の記事

https://zenn.dev/tomom1_s/articles/nand2tetris-01
https://zenn.dev/tomom1_s/articles/nand2tetris-02
https://zenn.dev/tomom1_s/articles/nand2tetris-03
https://zenn.dev/tomom1_s/articles/nand2tetris-04
https://zenn.dev/tomom1_s/articles/nand2tetris-05
https://zenn.dev/tomom1_s/articles/nand2tetris-06
https://zenn.dev/tomom1_s/articles/nand2tetris-07
https://zenn.dev/tomom1_s/articles/nand2tetris-08
https://zenn.dev/tomom1_s/articles/nand2tetris-09
https://zenn.dev/tomom1_s/articles/nand2tetris-10
https://zenn.dev/tomom1_s/articles/nand2tetris-11
https://zenn.dev/tomom1_s/articles/nand2tetris-12
https://zenn.dev/tomom1_s/articles/nand2tetris-13

GitHubで編集を提案

Discussion