Lógica de Programação "ruim"
Atualmente estou revisando/estudando lógica de programação, até ai tudo bem, sigo compreendendo bem os assuntos e fortificando a base (Teórica). Consigo resolver algumas questões de lógica mas quando é algo mais "denso" eu acabo travando na hora de tentar pensar em alguma solução, sinceramente gostaria de saber se é "normal" ou se estou estudando de forma "errada".
Como consigo melhorar a minha lógica, ou qual a melhor forma de desenvolver a lógica de programação?
Olha eu diria que geralmente quando damos de cara com um problema mais denso como você comentou é normal (talvez até fundamental) pensar um pouco antes de começar escrever o código.
Com a prática o que provavelmente vai mudar é o tempo que você precisa de parar para pensar em como resolver o problema.
Mas talvez estudar um pouco de lógica matemática possa ajudar.
Mesmo problema aqui. Me perdi estudando libs e frameworks acabei relaxando na parte da lógica e estrutura de dados. Agora é tentar praticar e estudando aos poucos cada tópico. Paciência e foco é o conselho que eu dou.
Prática é fundamental, mas também existe o lado teórico que muitos pulamos e nos ajuda a resolver mais rapido determinados problemas.
Organização também é fundamental. escreva o problema como se estivesse perguntando pra alguém, explique os passos que você tomou. as vezes nesse processo você tem um insight e resolve sozinho. se não der certo, publica a pergunta um stackoverflow da vida (ou tabnews)
Eu comecei a praticar no Code Wars e no Leet Code e senti uma boa melhora na minha lógica.
O ideal é ir praticando com problemas que você consegue resolver e ir aumentando a dificuldade aos poucos para não ficar se frustrando com um problema difíceis demais.
O que me ajuda bastante é pensar no problema em termos concretos o fluxo do programa, a partir do momento que ele recebe um input até ele retornar o resultado, e como ele vai sendo transformado. Ajuda bastante usar papel e caneta ao invés de só ficar na sua cabeça.
Para problemas difíceis, ajuda a estratégia do "dividir para conquistar". Dividir o problema em diversas partes e resolver cada parte de uma vez, mesmo que você ainda não saiba o que fazer com as partes restantes. Isso evita que você trave, tentando lidar com mais informação do que você consegue processar.
Acredito que chega um momento que não tem como fugir da matemática.
eu havia tentado escreve um texto explicando mais desisti, então fica ai o video do Mayk Brito onde ele fala sobre isso com uma dinâmica muito boa