Executando verificação de segurança...
3

[DÚVIDA] Formas de melhorar a lógica.

Bom Dia a todos, gostaria de saber se vocês poderiam me indicar conteúdos para melhorar o raciocínio lógico, livros, jogos essas coisas. Senti que por conta da ansiedade e excesso de pensamentos isso prejuica ainda mais o meu raciocínio, agora queria fortalecer mais isso para combater esses males e melhorar meus estudos.

4

Existem formas no campo teórico e no campo prático. No campo teórico, recomendo estudar Estrutura de Dados e Matemática Discreta. Nesses estudos não subestime o poder da literatura. Alguns livros são caros, mas valem muito mais do que alguns cursos ainda mais caros. São eles:

  • Lógica de Programação e Estruturas de Dados - Sandra Puga e Gerson Rissetti;
  • Matemática discreta: Uma introdução - Edward Scheinerman;
  • Entendendo Algoritmos: Um Guia Ilustrado Para Programadores e Outros Curiosos - Aditya Y. Bhargava.

Quando estava na universidade fazia muitas leituras e isso simplesmente deslanchou meu estudos. Até hoje continuo lendo. Muitos dos cursos que estão pela internet tem a fundamentação teórica que estão nos livros, outros seguem vozes da minha cabeça. Por isso é importante saber escolhe-los também.

No campo prático, a melhor forma é fazendo desafios. A plataforma que eu recomendo é a BeeCrowd. Ela tem centenas de desafios para todos os níveis e você pode resolvê-los em qualquer linguagem. Ela é toda em português e extremamente fácil de utilizar. O foco dela é justamente você resolver problemas construindo algoritmos e nada melhor que a prática para melhorar sua lógica. Ao final ela dá a resposta para você.

O que eu não recomendo é subir um projeto, fazer um clone disso ou daquilo, porque embora tenha muita lógica agregada, são processos indiretos e servem para melhorar suas habilitades com a stack completa e não com algoritmos.

1

Caíque, como um grande empreendedor da área, o que você acredita que valha mais a pena priorizar o tempo? Em algoritmos, lógica forte, ou nos projetos e seus processos em si? Os dois têm suas vantagens, claro, acredito que pelo ensino da faculdade ser essencial para construir grandes projetos futuramente valha mais a pena investir nos algoritmos. Porém, às vezes bate aquele dilema "e o quanto estou priorizando o portfólio?". Enfim, não é uma terceirização de decisão, apenas uma curiosidade, como lidaria entre priorizar aprender algoritmos resolvendo leetcode ou projetos para o portfólio?

1

Depende do seu nível de experiência. No meu ciclo de vida como desenvolvedor, iniciei com foco na engenharia de software: arquitetura, paradigmas, diagramas, algoritmos, processos e afins. Quando você aprende muito bem toda essa base, os desafios se tornam mais interessantes e mais tranquilos de lidar.

A meu exemplo, já trabalhei com 13 linguagens de programação diferente e estou sempre pulando para uma nova em projetos pessoais. Como consolidei uma base muito forte sem depender de uma linguagem em específico, consigo transitar muito bem entre elas.

A questão do portfólio é muito subjetiva na verdade. Muitos acabam considerando que portfólio é sentar em criar uma stack completa (clone de sei lá o que, por exemplo). Mas, portfólio também é código, também é algoritmo. Você pode muito bem subir no seu GitHub algoritmos de busca, estruturas de dados, etc, em diferentes linguagens. Para se exercitar e mostrar como você coda.

Nas minhas últimas férias, estava fazendo no GitHub alguns desafios do florinpop17. Também é uma boa opção. Muitos dos desafios exigem algoritmos e processos para serem resolvidos. Além disso você pode resolvê-los em qualquer linguagem. A parte chata é que você não vai ter uma solução exata como o BeeCrowd que avalia o seu desempenho. Mas, de resto, vale a pena.

Em resumo, se te falta a base da engenharia de software, eu recomendaria pelo menos 50% (ou mais) do seu tempo em estudo gasto nisso. Se você já tem uma boa base, aí sim começe a desenvolver aplicações completas e os desafios que passei são uma boa oportunidade para isso.

1

Muito obrigado caique é uma grande honra receber uma resposta de vc, seus posts me ajudaram muuuuito, ansiso pelas próximas postagebs.
A leitura com certeza e algo muito importante, so de começar a ler mais postagens aqui no tabnew as suas principalmente abriram muito a minha mente, com certeza vou aplicar isso no estudo de algoritmo também. Com certeza vou começa a aplicar suas dicas.

2

Eu gosto de resolver enigmas, args e puzzle de jogos, deve ter opções melhores mas as que eu mais gosto são essas

as vezes args lembram até programação pq tu fica preso dias em uma fase, ve que tu simplismente não sabe como resolver e tem que pesquisar soluções parecidas no google, aprende um monte de coisa maluca de uma vez com 10 aba aberta no navegador, conversa com um monte de gente empacada na mesma fase e depois tem que bolar uma solução, tudo isso pra descobrir uma informação muito específica da história e poder avançar

1
1

Muito obrigado pela dica, vou da uma olhada também, essa logica formal me chamou a antenção, nunca tinha escutado falar dela antes.

2

Lógica formal é uma notação semelhante à notação matemática, com o objetivo de escrever argumentos lógicos sem a limitação de vocabulário ou ambiguidade de linguagens comuns (português, inglês, etc.). Eu diria que é excelente pra quem gosta de programar, não que você vá usar a notação de lógica formal na programação, mas porque te treina a ter um pensamento lógico mais aguçado.