Há muito material sobre D3 na web e em livros. Nesse curso, usaremos principalmente notebooks no Observable, e a versão 6 da biblioteca. É uma ótima ideia que você encontre outros materiais, mas cuidado sempre pra reparar que versões anteriores podem ter alguma diferença no código, e que há particularidades no código feito para o Observable.
Nosso material para introdução a D3 será essa coleção de notebooks (atualizada constantemente). Na medida que você for lendo-os, vá alterando o código experimentando com modificações nele. Faça fork, crie sua versão. Estudar código é um processo muito mais parecido com dissecar um espécime do que com ler texto.
Estudados esses notebooks, temos um vídeo programando uma visualização com D3 no Observable usando esses conceitos: