Slide 1

Slide 1 text

人になにかを教えるときに 考えていること (2025-05版) VRC-LT #18 sksat

Slide 2

Slide 2 text

自己紹介 ● sksat(えすけーさっと) ● オタク ● 仕事では人工衛星を作っている ● 気持ちがあるところ: 実在する複雑性の咀嚼と妥当な対処の案組み ↖これ中指じゃないです

Slide 3

Slide 3 text

重要:私は教育のプロではありません

Slide 4

Slide 4 text

重要:私は教育のプロではありません 偉そうなことを言うつもりはありません

Slide 5

Slide 5 text

重要:私は教育のプロではありません 偉そうなことを言うつもりはありません みなさんがどうしているか・どう考えているか知りたい

Slide 6

Slide 6 text

なんか最近人に教えることが多い ● 仕事 ○ 同僚、共同研究先の学生、インターン生のメンター ● セキュリティ・キャンプ ○ 『探査機自作ゼミ』講師 ● (直接的にではないけれど)技術同人誌 ○ OtakuAssembly Vol.3 ■ 『Raspberry Pi Pico でできる!組み込み(Rust 入門)』 Booth で電子版売ってます 技術書典18(2025/06/01)で再版します 今年もやります(エントリー06/02まで)

Slide 7

Slide 7 text

「教える」とトク ● 再掲:私は教育のプロではありません ● 色々とお得なのでやってる ○ コンテキストを共有した仲間が増える ○ 相手(・チーム)の将来の選択肢が広がる ○ 自分のナアナアな理解に向き合わないといけなくなる ○ 自分が何を知ってることを知らないのかがわかる ○ 自分の知識・メンタルモデルが整理される ● あまりにもお得 個人的な事情 ● 会社のフェーズ的なところ ● 分野の横断が多い ○ ex:HW の人が SW のことをわかるとトク(逆も)

Slide 8

Slide 8 text

「教える」ってなんなんだ https://twitter.com/hsjoihs/status/1912038017319289231

Slide 9

Slide 9 text

相手を観察する ● 人間もひとつのシステム ● 教育はパフォーマンス改善に近い営みだと思う ● ということは、事前・事後の”計測”が不可欠 ● 定量的/easy な計測手法:ペーパーテスト ● 人間は常に大量のメトリクスを出力している ○ 何がわからない(と思っている)のか ○ 質問の仕方 ○ 口調、仕草 ● 会話できる ○ 色々な入力と出力の対応から内部状態を探る 入力:x f(context, state, x) たぶん**が わからない これって**ってこ とですか? ** みたいなやつ?

Slide 10

Slide 10 text

相手を観察する ● 人間もひとつのシステム ● 教育はパフォーマンス改善に近い営みだと思う ● ということは、事前・事後の”計測”が不可欠 ● 定量的/easy な計測手法:ペーパーテスト ● 人間は常に大量のメトリクスを出力している ○ 何がわからない(と思っている)のか ○ 質問の仕方 ○ 口調、仕草 ● 会話できる ○ 色々な入力と出力の対応から内部状態を探る 入力:x f(context, state, x) たぶん**が わからない これって**ってこ とですか? ** みたいなやつ? context や state の 逆演算

Slide 11

Slide 11 text

相手を観察する ● 人間もひとつのシステム ● 教育はパフォーマンス改善に近い営みだと思う ● ということは、事前・事後の”計測”が不可欠 ● 定量的/easy な計測手法:ペーパーテスト ● 人間は常に大量のメトリクスを出力している ○ 何がわからない(と思っている)のか ○ 質問の仕方 ○ 口調、仕草 ● 会話できる ○ 色々な入力と出力の対応から内部状態を探る 入力:x f(context, state, x) たぶん**が わからない これって**ってこ とですか? ** みたいなやつ? context や state の 逆演算 フィードバック ループを回す

Slide 12

Slide 12 text

相手を観察する ● 人間もひとつのシステム ● 教育はパフォーマンス改善に近い営みだと思う ● ということは、事前・事後の”計測”が不可欠 ● 定量的/easy な計測手法:ペーパーテスト ● 人間は常に大量のメトリクスを出力している ○ 何がわからない(と思っている)のか ○ 質問の仕方 ○ 口調、仕草 ● 会話できる ○ 色々な入力と出力の対応から内部状態を探る Note on Programming in C/Rob Pike (いわゆる「推測するな、計測せよ」) Rule 1. You can’t tell where a program is going to spend its time. Bottlenecks occur in surprising places, so don’t try to second guess and put in a speed hack until you’ve proven that’s where the bottleneck is. プログラムが何処で処理時間を費やすのかは分からない。ボトルネックは驚くべき場所で起 こる。だからその箇所がボトルネックであるという証明をするまで、当てずっぽうで高速化 のためのハックを入れようとしてはならない 。 Rule 2. Measure. Don’t tune for speed until you’ve measured, and even then don’t unless one part of the code overwhelms the rest. 計測せよ。計測するまで最適化をするな。そしてたとえ計測したとしても、ある部分のコード が圧倒的に残りの部分より重い場合でなければ、最適化をしてはならない 。 訳: https://aki33524.hatenablog.com/entry/2023/08/25/231051

Slide 13

Slide 13 text

相手を観察する ● 人間もひとつのシステム ● 教育はパフォーマンス改善に近い営みだと思う ● ということは、事前・事後の”計測”が不可欠 ● 定量的/easy な計測手法:ペーパーテスト ● 人間は常に大量のメトリクスを出力している ○ 何がわからない(と思っている)のか ○ 質問の仕方 ○ 口調、仕草 ● 会話できる ○ 色々な入力と出力の対応から内部状態を探る Note on Programming in C/Rob Pike (いわゆる「推測するな、計測せよ」) Rule 1. You can’t tell where a program is going to spend its time. Bottlenecks occur in surprising places, so don’t try to second guess and put in a speed hack until you’ve proven that’s where the bottleneck is. プログラムが何処で処理時間を費やすのかは分からない。ボトルネックは驚くべき場所で起 こる。だからその箇所がボトルネックであるという証明をするまで、当てずっぽうで高速化 のためのハックを入れようとしてはならない 。 Rule 2. Measure. Don’t tune for speed until you’ve measured, and even then don’t unless one part of the code overwhelms the rest. 計測せよ。計測するまで最適化をするな。そしてたとえ計測したとしても、ある部分のコード が圧倒的に残りの部分より重い場合でなければ、最適化をしてはならない 。 訳: https://aki33524.hatenablog.com/entry/2023/08/25/231051 理解に詰まっているところ

Slide 14

Slide 14 text

相手を観察する ● 人間もひとつのシステム ● 教育はパフォーマンス改善に近い営みだと思う ● ということは、事前・事後の”計測”が不可欠 ● 定量的/easy な計測手法:ペーパーテスト ● 人間は常に大量のメトリクスを出力している ○ 何がわからない(と思っている)のか ○ 質問の仕方 ○ 口調、仕草 ● 会話できる ○ 色々な入力と出力の対応から内部状態を探る Note on Programming in C/Rob Pike (いわゆる「推測するな、計測せよ」) Rule 1. You can’t tell where a program is going to spend its time. Bottlenecks occur in surprising places, so don’t try to second guess and put in a speed hack until you’ve proven that’s where the bottleneck is. プログラムが何処で処理時間を費やすのかは分からない。ボトルネックは驚くべき場所で起 こる。だからその箇所がボトルネックであるという証明をするまで、当てずっぽうで高速化 のためのハックを入れようとしてはならない 。 Rule 2. Measure. Don’t tune for speed until you’ve measured, and even then don’t unless one part of the code overwhelms the rest. 計測せよ。計測するまで最適化をするな。そしてたとえ計測したとしても、ある部分のコード が圧倒的に残りの部分より重い場合でなければ、最適化をしてはならない 。 訳: https://aki33524.hatenablog.com/entry/2023/08/25/231051 理解に詰まっているところ 「たぶんここがわからないんだろうな」 は本当に詰まっているところか?

Slide 15

Slide 15 text

相手を観察する ● 人間もひとつのシステム ● 教育はパフォーマンス改善に近い営みだと思う ● ということは、事前・事後の”計測”が不可欠 ● 定量的/easy な計測手法:ペーパーテスト ● 人間は常に大量のメトリクスを出力している ○ 何がわからない(と思っている)のか ○ 質問の仕方 ○ 口調、仕草 ● 会話できる ○ 色々な入力と出力の対応から内部状態を探る Note on Programming in C/Rob Pike (いわゆる「推測するな、計測せよ」) Rule 1. You can’t tell where a program is going to spend its time. Bottlenecks occur in surprising places, so don’t try to second guess and put in a speed hack until you’ve proven that’s where the bottleneck is. プログラムが何処で処理時間を費やすのかは分からない。ボトルネックは驚くべき場所で起 こる。だからその箇所がボトルネックであるという証明をするまで、当てずっぽうで高速化 のためのハックを入れようとしてはならない 。 Rule 2. Measure. Don’t tune for speed until you’ve measured, and even then don’t unless one part of the code overwhelms the rest. 計測せよ。計測するまで最適化をするな。そしてたとえ計測したとしても、ある部分のコード が圧倒的に残りの部分より重い場合でなければ、最適化をしてはならない 。 訳: https://aki33524.hatenablog.com/entry/2023/08/25/231051 理解に詰まっているところ メンタルモデルの獲得の前に 各論をやらない 「たぶんここがわからないんだろうな」 は本当に詰まっているところか?

Slide 16

Slide 16 text

相手の特性を観察する ● 人には人の認知特性 ○ 文字列的にやるのが得意か、画像的にやるのが得意かとか ○ 基礎的な理論から組み立てていきたいか、具体から入りたいかとか ● よくあるミス:自分と特性が離れた相手への「自分はこう教えられてよかった」のリバイバル ● 少人数(n<5とか)が対象の場合、各々にチューニングした方がよい ● チューニング:DAG の辿り方や辿るべき/解きほぐすべき DAG が変わる ● 大人数/不特定多数の場合:あんまり経験ないです。教えてほしい。 ○ 個人的にはマジョリティの特性を狙った上で脚注とかでのポインタ張りをがんばりがち https://twitter.com/hsjoihs/status/1914925211700568368 そもそも DAG の組み方は一意ではない

Slide 17

Slide 17 text

「教える」ことによる(よくある)ミス 観察を怠ると、ミスる ● 天狗になる ○ 相手の成長はお前の偉さではない ● 「人に教えている俺」は別に偉くもなんともない ● 「教える」だけで報酬系が満たされてしまい、学ばなくなる ○ ずっと昔話してるおじいちゃんになる どうすんねん ● まあ謙虚にやっていきましょう ● 積極的に「教えられる側」もやっていく ○ 「教える」ことによっても学べる/相互に「教えられる」関係性を築く ● 計測せよ

Slide 18

Slide 18 text

自走したい/自走させたい ● 一発「教えた」だけではあんまり満足したくない ● 「教え」ないと「学べ」ない、という状況はたいへん不健全 ○ お互いの労力的にも、関係性的にも ● 自走できるようにしたい ● 「自走できる」とはなにか? ○ 一人でフィードバックループを回せる ○ 知らない(知らなさそう)ところを知っている

Slide 19

Slide 19 text

自走したい/自走させたい ● 一発「教えた」だけではあんまり満足したくない ● 「教え」ないと「学べ」ない、という状況はたいへん不健全 ○ お互いの労力的にも、関係性的にも ● 自走できるようにしたい ● 「自走できる」とはなにか? ○ 一人でフィードバックループを回せる ○ 知らない(知らなさそう)ところを知っている わからないことが手を動かして わかるようになった成功体験 大局(≒分野間の接続) を知っている

Slide 20

Slide 20 text

自走したい/自走させたい ● 一発「教えた」だけではあんまり満足したくない ● 「教え」ないと「学べ」ない、という状況はたいへん不健全 ○ お互いの労力的にも、関係性的にも ● 自走できるようにしたい ● 「自走できる」とはなにか? ○ 一人でフィードバックループを回せる ○ 知らない(知らなさそう)ところを知っている わからないことが手を動かして わかるようになった成功体験 大局(≒分野間の接続) を知っている 他人の自走 ≒ 自分とは異なる経験 たまに会って話を聞く →別の視点での経験(の一部)が取得できる

Slide 21

Slide 21 text

自走したい/自走させたい ● 一発「教えた」だけではあんまり満足したくない ● 「教え」ないと「学べ」ない、という状況はたいへん不健全 ○ お互いの労力的にも、関係性的にも ● 自走できるようにしたい ● 「自走できる」とはなにか? ○ 一人でフィードバックループを回せる ○ 知らない(知らなさそう)ところを知っている わからないことが手を動かして わかるようになった成功体験 大局(≒分野間の接続) を知っている 他人の自走 ≒ 自分とは異なる経験 たまに会って話を聞く →別の視点での経験(の一部)が取得できる

Slide 22

Slide 22 text

TL;DR ● 教えると ● 観察しろ ● なんもわからん。教えてくれ。