Skip to content

a-dornez/programming-logic

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

94 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🧮 Lógica de Programação

Exercícios e desafios para praticar e desenvolver habilidades de lógica de programação e resolução de problemas utilizando algoritmos.

Também é um laboratório para aprender linguagens.

🤝🏼 Agradecimentos

Tenho muito a agradecer ao Prof. Nélio Alves, pois comecei a estudar lógica pelo curso de algoritmos dele, muito bom. E ao lendário Guanabara, pois também consegui algumas informações valiosoas com o curso dele de lógica de programação.

🛠 Conteúdos úteis

Podem te ajudar também!

Cursos Documentação Programas Variedades
Lógica de Programação Nélio Alves Git Reference VS Code O que são algoritmos?
Lógica de Programação Guanabara GitHub Markdown VisualG Exercícios de lógica de programação
VisualG Música Ambiente
Atalhos VS Code Dicas de estudo

Qual linguagem de programação estudar?

Note

Esse texto é fruto de uma combinação de muitos materiais que consumi (vídeos, posts, artigos) na busca de entender melhor esse tema com parte do que aprendi sobre lógica e linguagem em meus estudos de filosofia. Pensar sobre isso tornou as coisas mais claras para mim e espero que te possam te ajudar , mesmo sendo de iniciante para iniciante.

A lógica de programação não é simplesmente o ato de "escrever código": ela é um processo de pensamento para transformar um tipo de situação em algo que computadores sejam capazes de processar. Pois nós, seres humanos, temos a capacidade de imaginar e temos intuições: isso nos permite completar e criar sentido para informações incompletas que recebemos. No entanto, computadores não tem essa capacidade.

Um computador (ou máquina de processamento de dados) faz operações de acordo com instrucões (linhas de código) que recebe para processar dados. Esse é um processo muito restrito e o computador, diferente de nós, não imagina o que deveria fazer em uma situação para a qual ele não foi programado. A lógica de programação é uma forma de organizarmos nosso pensamento para projetar uma série de passos que um computador possa executar sem "ficar perdido", ou seja, que ele possa utilizar para lidar com tipo de situação seguindo os passos estabelecidos: da entrada, no processamento até saída de dados há um caminho bem estruturado a se seguir.

As linguagens de programação, por sua vez, são uma forma de traduzir os elementos desse caminho. Não uma forma qualquer de tradução, mas um tipo especial pois, dentre outras coisas, evita problemas como a ambiguidade e isso é muito importante para o processo de programar o computador para realizar a solução qu projetamos.

Desse modo, a escrita do código é uma etapa final de um processo que envolve: identificar o que quero que o computador faça, dividir essa ação em problemas menores, elaborar passos para resolver esses problemas e, então, traduzir essa solução para uma linguagem de programação (codificar a solução).

Logo, mais importante que começar a codificar logo na linguagem X é treinar o processo de pensamento mencionado. Dessa forma, em vez de se sobrecarregar consumindo conteúdo descontextualizado sobre a linguagem X (documentações tem centenas de páginas e existem milhares de tutoriais para qualquer linguagem) é mais eficiente primeiro treinar o processo de pensamento para desenvolver soluções, e então aprender sobre a linguagem X ou Y.

Por exemplo, se minha solução inclui solicitar e coletar dados do usuário, processar esses dados e exibir o resultado desse processamento em uma tela, são essas funcionalidades específicas que vou buscar na documentação da linguagem e em tutoriais. Não vou me perder num oceano de conteúdo, pois sei o que preciso, ou seja, me ajudo a ter um aprendizado contextualizado e mais eficiente.

É uma situação semelhante a aprender um novo idioma. Se simplesmente pego um dicionário e começo a ler na esperança de começar a falar, logo vou me sobrecarregar com uma enxurrada de informações fora de contexto. Por outro lado, se quero ser capaz de fazer um pedido num restaurante, posso buscar as palavras e expressões específicas para estruturar meu pedido. É claro que é uma simplificação, mais ilustra como uma abordagem contextualizada é mais eficiente.

No meu caso, iniciei estudando por pseudocódigo, pegando exercícios e elaborando soluções em portugol. Por enquanto não tenho uma linguagem que domino, mas estou aprendendo Java e percebo que coisas como System.out.println( ), ou println( ) em C, ou Console.WriteLine( ) do C# são apenas outra forma de dizer o escreval em pseudocódigo. Ou seja, são apenas formas diferentes de resolver o mesmo problema "Como exibir uma mensagem para o usuário?".

Então, por mais que não teha ideia de como fazer algo específico em Java ou qualquer outra linguagem, consigo pensar sobre o problema e tentar resolvê-lo. Assim na hora de utilizar o Java, por exemplo, o que eu busco são as "palavras" e "sentenças" específicas que a linguagem disponibiliza para que eu possa dizer o que penso de uma forma que o computador seja capaz entender.

About

Studies and practices to develop programming logic skills.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published