Eu também gosto de usar a metogoligia de aprender baseado em projetos (aprender fazend).
Eu gosto de planejar os projetos dessa forma:
Quais os projetos vou implementar
Podemos dizer que isso seria um portifolio de estudos hehe.
Eu gosto de elencar 3 ou 4 mini projetos para desenvolver e ficar confortável com a linguagem. Nesses projetos eu vou praticar a linguagem em diferentes cenários.
ex. Estou aprendendo rust, então decidi que vou desenvolver esses 4:
- cli app para buscar um texto em arquivos (uma mini versão do grep). Que depois descobri que é um exemplo do livro de rust :P (vou aprender a manipular arquivos e strings)
- uma lib de data e hora (só pra sofrer mesmo, vão ter muitos cálculos).
- habilitar o cli da primeiro exemplo para acesso remoto. (vou aprender a usar sockets)
- um minificador de url. (aprender a fazer um backend rest api com acesso a um banco de dados ou cache system).
Fontes de estudo
Gosto de usar livros (sou old school), mas acho muito válido assistir vídeos no youtube sobre a linguagem e ver pessoas discutindo comparações da linguagem X vs Y.
O livro só leio o necessário para conseguir iniciar os projetos e vou consultando o livro novamente quando precisar.