“積読”を動画で崩す!システム・パフォーマンス読書シリーズと名門大学の無料講義のトップ画像

“積読”を動画で崩す!システム・パフォーマンス読書シリーズと名門大学の無料講義

投稿日時:
maguroのアイコン

Deno Land Inc. / ソフトウェアエンジニア

maguro

Xアカウントリンク
「あの人も読んでる」略して「も読」。さまざまな寄稿者が最近気になった情報や話題をシェアする企画です。他のテックな人たちがどんな情報を追っているのか、ちょっと覗いてみませんか?

みなさんこんにちは。

「あの人も読んでる」、第20回目の投稿です。maguro(X @yusuktan)がお届けします。

今回は、システムパフォーマンスについての名著『詳解 システム・パフォーマンス 第2版』に関する動画コンテンツと、「無料で覗ける名門大学の講義」のご紹介をしようと思います。また、最後に少しおまけとして、英語の学習リソースにアクセスするために必要な英語力を身につけるためのおすすめの方法も共有します。

Ben Dickenさんによる「Systems Performance 2nd Edition」読書シリーズ

まず1つ目、Ben Dickenさんが始めた新しい動画シリーズです。第1回の動画はMake computers FAST (Systems Performance chapter 1) というタイトルで公開されています。

ちなみに、第16回の「も読」でもBenさんのYouTubeチャンネルを取り上げました。そのときは『データ指向アプリケーションデザイン』や『詳説 データベース』についての配信があることをご紹介しました。

改めてになりますが、Benさんは現在PlanetScaleでdeveloper educationを担当しており、以前は大学のCS学部で教鞭を取っていたほか、データベース系のスタートアップでresearch software engineerとして働いていた経歴の持ち主です。データベースや分散システム、パフォーマンスチューニングなどの少し取っつきにくい低レイヤーよりのトピックが、明瞭で論理だった語りと、図も多用した説明によって、分かりやすく解説されています。発音もはっきりしているので、英語のリスニングの勉強にもおすすめできます。

そんなBenさんが、新たにBrendan Greggさんによる名著Systems Performance 2nd Edition(邦題『詳解システム・パフォーマンス 第2版』)を読み進めていくシリーズを開始しました。

この本は、CPU・メモリ・ディスクI/O・ネットワークといったOSレベルのリソースをどう観測し、どうボトルネックを特定し、どう改善するかを体系立てて扱った一冊です。

分厚い本なので通読するのはなかなか腰が重いです。僕自身、仕事でこの本に関する領域のことを担当することもある関係でずっと読みたいと思っていたのですが、永遠の積読になってしまっていました。個人的に、動画という媒体で学習するのが好きということもあり、章ごとに区切って解説してもらえると取っ掛かりがぐっと楽になるのを実感しています。

第1回の動画では「現代のソフトウェアの階層構造(アプリケーション、システムライブラリ、カーネル、ハードウェア)」や「パフォーマンスの可視化(フレームグラフ)」といった導入部分が扱われています。自分がシステムの性能問題に向き合うとき、勘や経験則に頼ってしまって、体系立てた方法論を意識できていないことがまだまだあるなと自覚しているので、このシリーズを追いながら自分の性能デバッグの引き出しを整理し直したいと思っています。

具体例を1つ挙げると、以前OSSに送ったパフォーマンス改善のパッチは、まさにこのフレームグラフのおかげで生まれたものでした。仕事でDenoの fetch が特定の状況で妙に遅い、という問題を追っていたときのことです。原因がなかなか掴めなかったのですが、フレームグラフをとってグッと睨みつけたところ、fetch が内部で使っているtower-httpというRustのライブラリのgzip展開処理が、レスポンスを処理するたびに小さなバッファを新規確保していて、そのメモリアロケーションが大量に積み重なっていることが判明しました。バッファを使い回すように直すパッチを送ったところ、スループットが10倍改善しました(実際のPR)。フレームグラフの威力を実感した出来事でした。

Benさんのチャンネルではおよそ週に1回のペースでライブ配信が行われており、アーカイブも残るので、興味のある方はぜひチェックしてみてください。

CMU、ハーバード、MITなど 無料で覗ける名門大学の講義たち

次に紹介したいのは、kasekenさんによるZenn記事「カーネギーメロン大学の有名講義『Intro to Database Systems』を全てのプログラマに見てほしい」 です。

コンピュータサイエンスの名門、カーネギーメロン大学(CMU)のAndy Pavlo先生による「Intro to Database Systems」(2025年秋学期版)は、全25回の講義がすべてYouTubeで無料公開されています。ストレージ管理やバッファプール、B+木やハッシュテーブルといったデータ構造、JOINアルゴリズムやクエリ最適化、2相ロックやMVCCといった同時実行制御、ARIESに代表される障害復旧、さらには分散トランザクションやPaxosまで、データベース内部の話題を一通りカバーしているという重厚な内容です。

僕もこの講義動画の存在は知っていて、第1回を少しだけ見たりしていたのですが、そこで止まってしまっていました。今回kasekenさんのZenn記事を見て、やはり完走すると多くの学びを得られる動画なのだなと思いました。

普段ソフトウェアエンジニアとして働く中で、データベースの中身についてここまで深い知識を知っている必要はないかもしれません。しかし、中身を知ることによって「勘」が効くようになるというのはあると思います。データベースはコンピュータサイエンスの総合格闘技という感じで、さまざまな知識・研究成果が総動員されているので、それを概観することで、ソフトウェアエンジニアとしてのレベルアップができることは間違いありません。

この講義の他にもさまざまな講義の動画がYouTubeで公開されています。いくつかご紹介すると、

などです。コンピュータサイエンス専攻の学生が何を学んでいるのか気になる方は、ぜひ見てみてください。

講義を聴くだけだと学びの効果は少し薄く、授業で出される課題に取り組むことが理想ですが、YouTubeでの聴講だとこれはあまり現実的ではないと思います。授業で取り上げられた論文を読んでみたり、少しでも疑問に思ったことはAIに質問したり、場合によっては手元でプログラムを書いて動かしてみたりするなど、能動的な学習スタイルを取り入れられると学習効果が大きく向上するはずです。

英語学習のコツ:スキマ時間を使って楽しく継続

僕はよく、この「も読」連載の中で、英語の動画やポッドキャストなどを紹介しています。今はAIの助けもあり、言語のバリアをあまり感じずに英語のリソースにアクセスできる時代になりつつあります。とはいえ、個人的にはなるべく英語のまま情報を仕入れるようにしています。どうしても思考能力やスピードにデバフがかかるので、急いでいるときは日本語に逃げてしまうこともありますが……

「英語はどうやって勉強したら良いですか?」と質問されることもよくあります。今回の「も読」でも英語の動画ばかりを取り上げました。この機会に、僕のおすすめの英語学習方法を軽くご紹介しようと思います。

まず前提として、語学学習は特に、継続が何よりも大事だと思っています。一朝一夕にはいきません。半年、1年などの長い期間、続けていくことが必要です。

いやなこと、つまらないことは継続できません。やっていて楽しいレベル感、内容のコンテンツを見つけることがコツだと思います。

僕の場合は、趣味に関連する動画やポッドキャストを日常的に探して、毎日のスキマ時間で見たり聴いたりしています。

例えば今だとワールドカップが盛り上がっていますが、僕もここ2、3年ほどサッカーにハマっているのもあって、サッカーに関する英語のポッドキャストを聴いたり、あとはプレミアリーグ(イングランド)のサッカー選手・監督のインタビューを和訳しながら紹介してくれるYouTubeチャンネルを見たりします。

あるいは、ポケモンも好きなのですが、世界大会に出場するような海外のポケモンプレイヤーの動画を見るというのも楽しいです。

当然、サッカーに関する知らない英語表現が出てきたり、そもそも慣れないアクセントで全然聞き取れなかったりします。ポケモンも、英語でのポケモン名や技の名前に馴染みがないことも多いです[1]。でもあんまり気にせずに再生し続けます。文脈から意味がわかることもあるし、そもそも知らない表現を全部調べていたら、あまりにも「勉強」感が強くなって、嫌になってしまいそうだからです。

ちなみに、ただ流し見・流し聴きするだけでなく、気に入ったフレーズを声に出して真似てみる、いわゆるシャドーイングもたまにやります。とはいえ気合を入れてやるというより、お風呂に入っているときや歩いているときに、さっき聞いた言い回しを口の中でなぞってみる程度のゆるいものです。

やっていて苦ではないもの、日々のスキマ時間に無理なく差し込めるものを探して、活用してみてください。

おわりに

今回は、Benさんによる『詳解 システム・パフォーマンス』の読書シリーズ、CMUをはじめとする名門大学の無料講義、そして僕の英語学習の習慣についてお話ししました。

結局のところ、学びも語学も、続けられるかどうかがすべてだなと常々思います。僕の場合は、動画やポッドキャストなどの媒体を適度に取り入れるのが自分に合っていると感じます[2]が、ここは完全に人それぞれかと思います。みなさんも自分に合った媒体で、楽しみながら学びを継続していきましょう。

また次回、おすすめコンテンツを紹介していきます。お楽しみに!

maguroさんの「も読」過去記事

執筆者へのお便り

脚注
  1. ポケモンの特性(各ポケモンが1つずつもっている特殊能力のようなもの)に「うなぎのぼり」というものがあるのですが、これの英訳が "Eelevate" つまり eel(うなぎ)と elevate(上昇する) をかけた言葉になっているというのを知ったときは、天才か!と思いました

  2. 本だと、少しでもわからないところがあるとそこで考え込みすぎてしまうことがあります。動画や音声だと、こちらが能動的に進めようとしなくても勝手に進んでいってくれるというのが好きなポイントです。最後までざっくりと進んで全体像を把握したあとに初めて、細かい記述の意味やニュアンスがわかるようになることがあるからです