Buenas!
Pra mim, sem dúvidas o que funciona melhor é PRATICAR. Você pode assistir quantas aulas quiser, ler quantas documentações achar necessário, mas se você não colocar a mão no código, você não vai conseguir evoluir nesse aspecto.
Desde o primeiro ano de faculdade, nosso professor nos apresentou a plataforma do URI Online Judge, atual Beecrowd (https://www.beecrowd.com.br/judge).
Nessa plataforma, você cria sua conta e tem uma série ENORME de exercícios de lógica, descrevendo a história, com os requisitos, exemplos de entrada e a saída esperada do seu algoritmo.
Além disso, o site permite que você faça o uso da maioria das linguagens amplamente utilizadas (JavaScript, Python, C, C++, Java, PHP...) e também conta com uma sessão exclusiva com atividades de SQL.
Essa plataforma me ajudou bastante no início da minha jornada como DEV, e sempre indico ela pros meus alunos e conhecidos que estão iniciando na área de dev.
Lembrando, não estou dizendo que ler documentação ou assistir aulas é inútil hehe, mas sem a prática, você não consegue exercitar o que está aprendendo.