Acredito que muitos irão lhe mostrar ferramentas que lhe ajudem nisso.

Mas comigo a "lógica de programação" só fez sentido na minha cabeça quando o professor da faculdade colocou um exercício com os requisitos do problema para serem feitos com o básico de conhecimento em C precisava usar if/for/switch e por aí vai...

Lembro até hoje porque na época eu queria MUITO resolver o problema (acredito que aqui me difrerenciei dos outros colegas) porém a cada requisito, via que não tinha miolos pra juntar os quebras cabeça.

Forcei a enteder cada parte do exercício me perguntando várias vezes sobre aquele requisito até resolver ele. E aqui depende de cada pessoa.

Depois desse exercício hoje vejo que a forma como se pensa pra resolver os requisitos, quebrando o problema em partes menores (menores mesmos) até que faça sentido cada parte pra você me ajudou muito.

No dia a dia é o que você acaba fazendo só que deixa de ser tortuoso como no início porém ainda frustante pq não somos uma enciclopédia de todas as linguagens/ferramentas/comandos/sistemas etc ...