📺

YouTubeにあるライブコーディング動画を見て Rust を学ぼう

2020/12/02に公開

この記事は Rust Advent Calendar 2020 2日目の記事です。

1日目は Rust で競技プログラミングの作問支援ツールを作った話@kobae964 さん)
3日目は Rustの日本語書籍紹介@dalance さん)

ライブコーディング動画の良さ

こんにちは、@magurotuna です。

みなさん、ライブコーディング動画はご覧になりますか?僕は結構頻繁に見ていて、たとえば寝る前、例えば作業用BGM代わりに垂れ流す、といった感じで視聴しています。

熟練のエンジニアによるライブコーディングを見ることで、彼ら/彼女らが

  • 何を考えながらコーディングをしているのか
  • どのような順番で順番でコーディングするのか
  • エディタ、ターミナルをどのように操っているのか
  • ドキュメントをどのように読んでいるのか

など、数多くのことを学ぶことができます。
もちろん上記に加えて、取り上げられている題材自体の知識(たとえば、RustでWebサーバーサイドを実装するというテーマであれば、その知識)も学ぶことができます。

このように良いことずくめに見えるライブコーディング動画視聴ですが、問題点があるとすれば、十中八九、英語である ということでしょうか。人口の多い言語、たとえば JavaScript など、であれば日本語の動画もあるかもしれませんが、Rust などになるとほぼ 100% が英語の動画になります。
裏を返せば「英語のリスニングの勉強になる」とも言えますし(実際、僕自身は英語に耳を慣らすという目的もかなり大きいです)、YouTube であれば英語の字幕自動生成機能もあり、かなり精度の良い字幕が出せますので、読むことさえできればなんとかなったりします。
あと、ライブコーディング動画なので、どんな操作をしているのか、どういうコードを書いているのか、を見るだけでもなんとなく分かることが多いです。

そんなわけで、英語だからといって敬遠せず、ぜひ気楽に見てみてください。

おすすめチャンネル

では、僕が subscribe しているおすすめのチャンネルをいくつかご紹介したいと思います。
ほとんどが Rust 関連ですが、一部 Rust 以外だったり、日本語のチャンネルもあります。

Jon Gjengset

YouTubeのvideoIDが不正ですhttps://www.youtube.com/c/JonGjengset

おそらく Rust のライブコーディング動画だと一番有名なのがこのチャンネルです。
チャンネル主の @jonhoo さんは最近まで MIT の博士課程で分散システムの研究をしていて、現在は AWS にジョインしたようです。(Why AWS loves Rust, and how we’d like to help という AWS のブログ記事中にも名前が挙がっています)

一言でチャンネルの特徴を表すのであれば「重厚長大」というワードになると思います。実際、最新の動画の長さはなんと 6時間 です。

過去の動画を見ても、4時間、5時間……などの動画がたくさんあります。

しかし、最近 Crust of Rust という動画のシリーズが始めていて、このシリーズは Rust の初心者がハマりがちな概念:

  • イテレータ
  • ライフタイム
  • 宣言マクロ

などを細かく説明しながらコーディングする、というコンセプトになっています。動画時間も比較的短いです(といっても90分くらいはあります)。

まずはこの Crust of Rust シリーズから見てみるのがおすすめです。

僕の Vim の操作はかなり@jonhoo さんのスタイルを真似しています。エディタ捌き、ターミナル捌きも含めておすすめです。

David Pedersen

YouTubeのvideoIDが不正ですhttps://www.youtube.com/channel/UCDmSWx6SK0zCU2NqPJ0VmDQ

Educational Rust live coding というタイトルで、Webアプリケーションを開発する様子のライブコーディング動画をアップされています。

さきほどの @jonhoo さんの動画に比べれば短いものが多いですが、とはいえ1本の動画で3時間、4時間あるものが多いです。

Genus-v Programming

YouTubeのvideoIDが不正ですhttps://www.youtube.com/c/GenusvProgramming

Rust + Actix-Web(Rust の代表的な Web フレームワークの1つ) で バックエンドを開発する動画シリーズがいくつかアップされています。
1回の動画が短めでスキマ時間に見やすいです。

Tsoding

YouTubeのvideoIDが不正ですhttps://www.youtube.com/channel/UCEbYhDd6c6vngsF5PQpFVWg

Rust ではなく Haskell がメインのチャンネルですが、おすすめなので紹介します。
TypeScript で Haskell っぽい遅延評価を実現するためにはどのようにすればいいのか、モナドはなぜプログラミングにおいて有用なのか、などの動画があります。
悩んだりあれこれ考えたりしながら実装を進めていくタイプのライブコーディングではなく、あらかじめ頭の中にある内容に沿って進んでいく感じです。とてもテンポが良く、説明も簡潔かつ丁寧です。

以下の動画では、JSON パーサーがたったの111行で書かれています。

Tensor Programming

YouTubeのvideoIDが不正ですhttps://www.youtube.com/channel/UCYqCZOwHbnPwyjawKfE21wg

Rust に限らず、いろいろな言語やフレームワークを取り上げているチャンネルです。ライブコーディングというよりは3分クッキングのような感じで、あらかじめ筋道が決まっているところにサクサクと解説がされていくスタイルです。テンポよく見ることができます。

Brian Myers

YouTubeのvideoIDが不正ですhttps://www.youtube.com/channel/UCXcHzKR8zfsq8hPjnSQ6DPw

Advent of Code という、アドベントカレンダーと同時期に行われるプログラミング謎解きイベント(?)の2019年のものを Rust で解き進めていく様子のライブコーディング動画です。

低レイヤーガール

YouTubeのvideoIDが不正ですhttps://www.youtube.com/channel/UCMsstGhINXdpMqo9tsElCMQ

日本語です!
全部が Rust の動画というわけではなく、アセンブリが登場したりもしますが、低レイヤーに興味がある方であれば楽しめる動画だと思います。
低レイヤーに興味はあるものの知識がほとんどない自分でも楽しく視聴することができています。

Rui Ueyama

YouTubeのvideoIDが不正ですhttps://www.youtube.com/channel/UCyEOiuZoutEJrE3zvfJV7aQ

引き続き日本語です。Rust の動画ではないですが、とても参考になるライブコーディング動画ばかりなので紹介させていただきます。

cat, wc, echo などの UNIX の基本的なコマンドのライブコーディングや、四則演算と関数呼び出しができるかんたんなプログラミング言語のコーディングなど、シンプルだがとても勉強になる題材が多いです。

おすすめの動画は、Ruiさんが作っているコンパイラ chibicc のデバッグをするライブコーディングの動画です。超高速な Emacs 捌きは見ていて惚れ惚れします。ぜひ一度見てみてください。

おわり

みなさんのおすすめのライブコーディング動画があったらぜひ教えてください!

Discussion