Entrei recentemente no mundo da programação e não posso afirmar com certeza que o método que uso é eficaz, mas é o método que sempre usei para estudos e aprendizado. Não sou muito fã de mergulhar na teoria e absorvo as coisas mais no ato prático, então uso um "método de exposição" que basicamente é me colocar em situações práticas onde devo aplicar a teoria. Durante o período de estudos para o Enem usei essa lógica de estudo fazendo bastaaante exercícios de diferentes áreas e, quando percebia dificuldades ou gaps em conceitos, voltava brevemente na teoria para "concretizar" o conhecimento na minha cabeça. Nessa mesma perspectiva, quando comecei a estudar programação buscava desafios de programação ligados a tecnologias específicas e entrava de cabeça na prática para entender os limites do que realmente sabia e "tapar os buracos" da teoria que faltava. Assim, com o tempo, passava a entender realmente para o que tal coisa servia, como aplicá-la de forma efetiva, onde aplicá-la e porquê o fazia.
Demanda bastante tempo já que é uma atividade prática e é bastante frustante, pois se encontra problemas constantemente nesse método de exposição. Como você mencionou sobre o excelente vídeo do Fabio Akita, realmente dói o processo de aprendizagem, perceber o quão pouco você sabe comparado ao mar de informação existente, mas é algo necessário. Basicamente é isso minha maneira de aprender (notei nos comentários que muitas pessoas fazem algo parecido, senão praticamente igual, mas quis compartilhar de toda maneira) e espero ter contribuído de alguma forma na discussão.
1