Cara, no seu caso eu recomendaria uma faculdade. Pelo q percebo, seu problema é pq vc não consegue se auto gerenciar e por mais q vc tente, vc nunca irá conseguir sozinho pq vc está preso mentalmente num ciclo. E não digo isso pra te jogar pra baixo, mas é pq estou sendo realista. Vc está literalmente patinando mesmo ponto no gelo.
Uma alternativa além da facul é vc ter alguém te orientando. Sinceramente isso é bemmm mais difícil achar. Eu por exemplo estou orientando um amigo, mas faço isso pq quero fazer isso por ele, mas nem todos estão dispostos a perder tempo orientando outros.
Mas assim dá pra vc conseguir isso sozinho, porém eu acho q a chance de falha é alta pq ao meu ver, seu problema não é aprender a programar e sim como vc lida com aprendizagem. Eu posso estar errado, pois não sou expert, mas sempre uso como base minhas experiências de sucessos e fracassos e acho q seus problemas podem ser esses:
- vc está tentando evoluir rápido demais (a famosa ansiedade). Vc deve ter N razões para querer aprender, normalmente é entrar na área o mais rápido possível para ganhar dimdim, mas se vc não souber controlar essa ansiedade, vc não consegue perceber o q está aprendendo.
- vc está pulando a parte de ambientar e está querendo ir direto ao produzir. Qndo eu digo isso, vc está mais preocupado em produzir um produto ao invés de aprender sobre o q vc está estudando. Esse NÃO É seu momento de criação, a não ser q vc ame programação, vc nunca irá conseguir logo de cara. Pessoas normais precisam entender sobre a ferramenta primeiro antes de querer criar algo com ela. Imagina o seguinte. Vc ganha uma impressora 3D. Ai vc quer produzir um monte de peças e tals. Mas como vc irá produzir algo se vc nem sabe como mexe na impressora? Vc nem sabe configurar, vc nem sabe como colocar o arquivo digital nele, vc nem sabe como é o funcionamento básico dele. Entende? Eu acho q vc está nisso. Vc tem q parar de querer criar coisas e aprender sobre a ferramenta. E em consequência vc será redirecionado para aprender a base. Então minha sugestão é por enquanto parar de tentar criar projetos e começar a fazer mais tutoriais, começar a procurar como funciona tal coisa da tecnologia q estiver usando, aprender mais sobre a linguagem, aprender mais sobre o framework. Essa coisa de produzir só serve para quem já sabe usar a ferramenta, pq se não sabe, vai continuar é sonhando com sua criação, pq vc não saberá colocar no papel, nesse caso em códigos.
- uma coisa q eu discuti (não no sentido de brigar) com meu colega de trabalho no começo do ano e uma coisa q ele me convenceu é q iniciantes não devem aprender clean code. E ele tem razão pq pensa o seguinte. Se um iniciante q sabe qse nada de programação pegar o livro, começar a ler sobre um tópico, quantos porcento daquele tópico ele irá entender? É bem provável q entre 0-10%. Sabe pq? Pq ele não tem experiência o suficiente para entender aquilo. E isso é normal acontecer, pois esse livro exige q a pessoa saiba comparar a experiência dele com os exemplos e conhecimento descrito ali no livro. Então assim, se quer minha recomendação, por mais q isso seja estranho, pare de ler livros para melhorar seu código. Esse não é o momento de vc aprender como melhorar e sim momento de errar.
Bom, são esses os pontos q vejo (e sempre lembrando q posso estar errado) q vc pode estar falhando.
As minhas recomendações iniciais ainda prevalecem, q vc precisa de orientação, seja uma facul ou alguém te ajudando.
Mas se ainda é teimoso o suficiente para tentar aprender por conta, então vou sugerir o formato parecido com o q estou ensinando para meu amigo. Meu foco é fazer o estudante se ambientar com a linguagem/framework, aprender coisas complexas dela e depois começar a parte de criação de algo dele.
A parte de ambientar é fazer um monte, mas um monte de tutorial. Pode botar uns 100 tutoriais ai na conta (to exagerando pra entender q não é pouco). Essa parte o foco é ir fazendo exercícios para aprender sobre a linguagem e dependendo do caso sobre o framework. Um monte deles é bem provável q não complete, mas o ideal é insistir até chegar num ponto q vc conseguiu superar todas barreiras, seja bugs, seja incompatibilidade de versões, seja problemas q a IDE não é mais a msm e vc precisa procurar por alternativas. E nesse momento vc tbm ir entendendo o q vc fez. Para isso recomendo o estilo SRS. Ou seja, vc refaz seu código q vc já fez desse tutorial, mas tenta primeiramente fazer sem tentar copiar, mas sim forçar seu cérebro a lembrar de como vc fez aquilo. Quanto mais vc pensa naquilo, mais vc refaz aquilo, mais vc relembra sobre aquilo, mais ambientado vc estará com a linguagem/framework.
Agora aprender coisas complexas é o q pode entrar a base. Esse eu recomendo fortemente focar em algoritmos e estrutura de dados. No começo vc pode pegar aqueles mais fáceis para replicar com a linguagem q vc utiliza, mas vai pesquisando por uns mais variados e depois vai aumentando a dificuldade. Por exemplo, vc sabe o q é pilha na programação? Se sabe, vc sabe usar? Vc sabe quais momentos vc pode utilizar? Vc sabe qual é o algoritmo mais eficiente para ordenar uma lista? sabe como ele funciona? sabe como implementar ele? Ou sabe implementar um grafo? Já pensou como eles funcionam? Aposto q vc deve conhecer, mas vc não tem mta ideia de como eles funcionam e nem pra q é utilizado. Por isso pesquise, entenda e implemente eles. Essas coisas é parte da tal "base da programação". Claro q não é tudo, pois nem eu sei definir o q é, mas algoritmos e estrutura de dados já é por default parte da base da programação, então pode aprender mais sobre elas. Ainda nessa parte eu incluiria aprender mais sobre coisas fora da linguagem/framework, q é por exemplo, aprender sobre banco de dados, como utilizar elas, tbm aprender mais sobre arquivos e como manipulá-las (exemplo, arquivo mp3, json, importar/exportar txt, qqr outra coisa relacionada a arquivos), aprender mais a fundo sobre API. Claro q nem todos vc precisa aprender 100% sobre, mas vc precisa ter contato e ir aprendendo como integrar com seus projetos, ou como usá-los.
Ai vem a terceira parte q é o momento da criação. Nessa parte vc pode fazer algo seu, pois vc já tem o mínimo de conhecimento necessário para produzir algo. Ai vc decide o q quer fazer. Se vc pular as outras 2 etapas, tenho certeza q essa nunca se concretizará por completo, pois por mais q vc tente, sem a ambientação vc não tem conhecimento mínimo de como deve ser produzido algo. Vc até pode tentar encurtar caminho com IA ou algo assim, mas uma coisa é vc copiar, outra é vc entender o q vc está fazendo.
Bom, espero ter ajudado em algo e boa sorte ai no seu processso de aprendizagem.