Eu começaria como comecei, até onde dá para fazer igual, pela razão que eu acho que me dei bem e vejo entre as pessoas que se deram bem na área e as que não conseguiram ir tão longe a diferença é que algumas começaram de forma parecida com a minha ou não.
Primeiro quero dizer que o termo lógica de programação é entendido mais ou menos por muita gente, mas ele não existe. Sim, é isso mesmo. Eu sei que tem até livros com esse título, e eu já o usei muito, mas um dia fui pesquisar e descobri que isso é uma invenção sem sentido brasileira. E isso é importante porque você não pode começar aprendendo errado. Por que? Porque quando você treina o erro é ele que fará para sempre. E quando aprende o certo deve corrigir isso.
Um exemplo que dou é o que eu vi esses dias no Xwiter, que eu participei depois de tanto tempo longe. Perguntaram se era "a IDE" ou "o IDE". Eu respondi o certo. A maioria respondeu errado. Alguns disseram o certo mas que continuariam usando o errado. Pode não parecer, mas em programação esse tipo de comportamento tem consequências. Provavelmente em várias outras áreas. Esse é um exemplo. Pare para pensar sobre tudo. Isso é solucionar problemas, que é o que importa na programação. E corrija seus erros.
Então comece procurando sempre fazer o certo. O computador não perdoa. O sistema criado pela sociedade premia mais quem acerta do que quem aproxima e muito mais de quem erra. Hoje vemos muita gente reclamando que não se dá bem na área porque não acerta muito. E é assim porque ela aprendeu a treinar o erro desde sempre. Eu sei que a maioria não consegue enxergar tão longe e vai achar tudo isso uma babaquice, e será assim comprovando o que eu disse. É complexo, o que eu falo aqui é a ponta do iceberg, mas estou fazendo o alerta, aproveita quem quer.
O começo tem ser pela comunicação e expressão e a matemática. Isso tem que estar sólido em qualquer área, ainda mais em programação. Ninguém entenderá bem o que pode ser ensinado sem compreender textos muito bem, produzir seus textos de forma coerente. Até escrevendo e falando estão desenvolvendo nossa capacidade para depois conseguir programar. Quem tem isso muito ruim não vai programar bem. Nunca vi um só caso de exceção. Hoje em dia eu vejo muito na internet uma pobreza generalizada na capacidade de comunicação, isso é grave, especialmente para a programação. Nem vou falar de matemática, programação é matemática. Ponto. Não escute os malucos que dizem que não precisa de matemática para programar. Programar é toda a matemática. Nada avançado, mas todo o fundamento.
E precisa entender a ciência. O ser humano está falho pela falta disso. De forma muito generalizada, até mesmo entre elites. Não precisa ser um cientista, mas precisa entender o método científico e aplicá-lo para não fazer besteira. Não é ser cientista da NASA, é só saber separar o joio do trigo, ser crítico e questionador. Isso é o que ensina lógica. Se sua mente está poluída por crenças você terá dificuldade com isso. Novamente, treinou o erro, é ele que fará.
Não tem uma chavinha que liga e desliga competência só na hora de programar.
Também seria bom saber usar o computador razoavelmente, inclusive os sites na internet. Hoje vejo que muita gente tenta programar sem saber isso. Dificulta muito.
Aí começamos na programação em si. E esse começo deve ser lento. Não precisa demorar, não precisa ser pouco tempo, mas esse lento significa que não deve pular etapas. Não deve pular conceitos, não deve aprender "mais ou menos", não deve aprender só para ver o resultado, não deve aprender só a ferramenta, não deve ter pressa de chegar no fim. Uso bastante tempo, o máximo que puder que seja saudável e produtivo, mas para se aprofundar, para entender tudo. Quando fica uma lacuna vai corroendo todo o resto é geralmente a pessoa não percebe.
Falo tudo isso porque acertei em muitos pontos, vi muita gente acertando igual, mas também porque errei em vários e pago um preço por isso até hoje.
Eu ando pensando muito se você deve aprender a programar sem uma linguagem antes. Já dei aulas assim, e não sei se é bom. Ou seja, aprender a tal "lógica de programação" por fluxograma, pseudocódigo ou algo assim. Mas tenho certeza que deve ir no bem básico, fazendo as coisas mais "inocentes" e simples no começo. E só partir para a próxima se ficar muito claro o que acabou de aprender.
Eu gosto da ideia porque aprendi quase assim, de aprender uma linguagem bem simples e concreta. Uma linguagem que mostre como o computador funciona e que vai nortear tudo o que fará no futuro, mesmo que nunca mais vá usá-la. Essa linguagem é C, e aproveita para ver um tiquinho de Assembly. Sim, é uma linguagem simples, ao contrário da crença popular. Pelo menos é para aprender o básico da programação. Claro que ela tem alguns detalhes esquisitos para quem vai programar nela em produção. Mas não precisa aprender essa parte. Só ela te fará entender de verdade oque é programar.
E tem um detalhe importante que eu pude observar em alguns experimentos que fiz. Quem não consegue acompanhar C logo de cara "nunca" será um bom programador, e quem consegue provavelmente será, se não se perder no caminho. Esse "nunca" é claro que pode ser revertido com uma mudança de atitude, que será difícil e trabalhosa, que raramente acontecerá, mas não é impossível. Acho que usar C como linguagem de aprendizado é um bom termômetro.
É claro que precisa aprender do jeito certo. E isso não é fácil. Precisa entender todos os detalhes importantes do que está fazendo. Não é só fazer o código funcionar. Em geral o que se vê por aí é apenas ensinando a linguagem, não o que está acontecendo. E quero mudar isso.
Eu aprendi com BASIC puro, que se assemelhava ao C. Era o que tinha. Computador de 2KB, só texto, preto e branco e sem som. Eu era fascinado com aquilo. Se você não consegue se fascinar com "só" isso, provavelmente não tem vocação para a coisa, e embora seja possível avançar na área e até reverter isso, como dito antes, será difícil, sofrido e os resultados não virão tão bem assim. Eu sei que algo estimulante ajuda bem, mas se precisa de estímulos artificiais, se prepare para uma jornada complicada.
Pascal era uma linguagem até interessante para aprendizado. Eu preferia ela do que Java, Python ou JS como usam hoje em cursos superiores, que se tornaram marketeiros.
Como última dica: fuja do marketing. Trabalhamos com engenharia.
Em resumo, não seja raso e se desafie.
Algumas pessoas não gostam de ler isso, porque dá trabalho (ler e fazer) e que não vão conseguir realizar, o que já gera uma frustração. Eu entendo isso. A vida é assim. Espero que todos sejam felizes, mesmo com resultados parciais.
Faz sentido para você?
Espero ter ajudado e que sirva para algo positivo, foi só minha intenção.
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).