Tem livro: https://www.amazon.com.br/Think-Like-Programmer-Introduction-Creative/dp/1593274246 (que aliás preciso ler pelo menos para ver se é bom).
Pensando como um cientista e/ou um engenheiro é o caminho básico, porque todo profissional qualificado em resolver problemas, que usa técnicas que envolvem ciências, precisam entender isso muito bem.
Ninguém vai pensar como programador se não pensa direito as cosias mais básicas que foram ensinadas na escola, ou deveriam ter sido ensinadas (isso é um enorme problema porque a escola já não está fazendo tudo o que deveria). E quando pula certas partes não é fácil consertar, a pessoa acostuma. Cuidado com atalhos, eles são perigosos e cobram um preço alto. Infelizmente até a escola está dando atalhos para as pessoas.
Se tivesse que resumir eu falaria no método científico.
Eu consulto muita coisa para resolver problemas, eu não decoro muita coisa. Mas eu sei o que consultar, como pesquisar, sei selecionar oque é bom ou não, sei o qaunto tenho que me aprofundar ou parar. Não acerto em tudo, mas acerto muito. Não é quem conulta menos que sabe mais e produz melhor resultado, pelo contrário , geralmente será alguém que acha que já sabe tudo que não consulta.
Gostar do que está fazendo, sendo curioso, persistente, e praticando muito vai melhorando a forma de fazer. Só não pode ter pressa, não pode querer fazer tudo de uma vez. Dê um passo atrás do outro, sem parar.
Se liga em algo que falo sempre e não cometa o erro (não deixa de ser método científico):
- A pessoa aprende errado
- Ela treina o erro
- Sempre executa o erro com a validação de quem faz o mesmo
- E ensina o erro, briga por ele e encontra validação nisso.
Se tudo está falhaando pode ser que o método de ensino esteja ruim. Pode ser que precise de ajuda profissional para corrigir isso.
Espero ter ajudado. Em geral estou à disposição na plataforma (sem abusos :D)
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).