Primeiro não sei o que você sabe no geral de programação e outras linguagens... mas, recomendo fazer um Console Application só para entender orientado a objeto, sintaxe da linguagem, manipulações de lista e tal.
Depois pode fazer uma API, usando Minimal (sem controller) e depois com controllers. (Cuidado para não atropelar quando for pesquisar e tentar imitar algumas pessoas e você ficar criando algumas Class Library, você pode se embananar e se frustar. Entao crie as classes tudo num projeto só.)
Depois pesquisa por injeção de dependência.
Coloque um banco de dados: utilize EF Core e depois tente com Dapper.
Tudo sem pensar em organização, faz funcionar.
Até esse ponto uns conteúdos legais que acho: Balta.io (br), Patrick God (gringo). Documentação é bacana e bem legível.
Depois alterne alguns bancos de dados, utilize biblioteca e mexa com JSON.
De uma olhada em FluentValidation e DataAnnotation para validar classes e suas propriedades.
Deeeeeeeeeepois de aprender essas coisas, e fixar mais na cabeça... você vai atrás sobre o Program.cs ser uma classe, utilizar classe Startup.cs... criar Class Library para isolar mais os componentes e aprofundar em injeção de dependência.
Aplicar alguns conceitos como MVC, Clean Architecture, CQRS, DDD. Tudo isso na documentação da Microsoft é bem forte.
Sobre esse assunto: o Milan Jovanovic é fera demais, porém gringo.
De bônus aprender sobre teste de unidade eu acho legal e divertido aplicar.