Como já respondi diversas vezes, precisa garantir que a educação básica esteja em ordem. Quem não tiver alicerce não consegue ter paredes sólidas. Muitas vezes a pessoa patina porque falta o básico que ela sempre achou chato na escola, ou até teve uma escola ruim, cada vez mais comum, infelizmente.
Depois tem que garantir que sabe todos os fundamentos da computação e engenharia de software. Como o nome diz é algo básico, não é avançado. Todo júnior precisa saber isso. Não precisa saber aplicar tão bem ainda, precisa de orientação. Muito da falha de resolver problemas é porque a pessoa não tem o ferramental de conhecimento para isso. Em outros casos pode ser falta de experiência, mas aí é normal, a pessoa é júnior, não espere ter a mesma destreza de alguém mais experiente.
Tem casos que a gente trava por questões momentâneas. Eu sempre enrosco em alguma coisa quando não estou em um dia bom. Minha experiência me manda fazer outra coisa. O que acha que estou fazendo agora?
Não tem muito segredo, é estudar, por completo, que inclui praticar. Aprender a aprender bem. Aprender com a experiência dos outros. Questionar tudo. Ter curiosidade genuína. Aproveite um dia após o outro. Toda experiência conta. Até o ócio tem sua função. Não tem atalhos. Os atalhos fazem a pessoa se machucar ao longo do caminho, pode nem perceber, mas no fim o preço é cobrado.
Não se preocupe tanto com tecnologias específicas, isso vai acontecendo conforme a necessidade. Não que pode deixar sem estudo, mas não é o mais importante.
Faz sentido para você?
Espero ter ajudado.
Farei algo que muitos pedem para aprender a programar corretamente, gratuitamente. Para saber quando, me segue nas suas plataformas preferidas. Quase não as uso, não terá infindas notificações (links aqui).