Aprenda algumas técnicas gerais de resolução de problemas para ajudar você na programação.
Como o primeiro artigo aqui diz, resolver problemas é uma meta-habilidade.
Percebemos que, muitas vezes, a sintaxe ou a estrutura de uma linguagem de programação não é a parte mais difícil de resolver um desafio: o difícil é descobrir o que programar ou por onde começar.
Desenvolver estratégias e um sistema para dividir problemas em etapas programáveis é uma habilidade excelente para se cultivar.
Abaixo estão alguns artigos, vídeos e livros da comunidade que podem ajudar você a desenvolver essa super-habilidade.
- O Free Code Camp oferece um bom artigo de visão geral sobre How to Think Like a Programmer - Lessons in Problem-Solving.
- Jeremy Howard, fundador da fast.ai, tem um bom resumo de G. Polya's Problem Solving Techniques.
- Escrito originalmente em 1945 como orientação para lidar com problemas matemáticos complicados, G. Polya's How To Solve It (livro completo) ainda é um conselho excelente para resolver problemas em geral.
- Kurtis Pykes, escrevendo para a Towards Data Science, tem um bom hands-on tutorial for problem-solving.
- Citado no artigo do Free Code Camp, Think Like a Programmer: An Introduction to Creative Problem Solving, de V. Anton Spraul, é uma abordagem mais moderna e voltada à programação dos mesmos métodos gerais que Polya descreve para a matemática.
-
Felienne Hermans está mais focada em como as pessoas aprendem a arte de programar e em como isso se relaciona com o aprendizado em geral.
Ela escreveu The Programmer's Brian, com estratégias para ler código melhor, pensar sobre código com clareza, escrever código melhor e se tornar um melhor colaborador de código.
-
Algorithmic Thinking (Daniel Zingaro), da No Starch Press, e How to think like a programmer (Paul Vickers) também abordam a resolução de problemas na programação.
-
Computational Thinking: A beginner's guide to problem-solving and programming (Karl Beecher) e Computational Thinking for the Modern Problem-Solver (Riley and Hunt) também oferecem estratégias para pensar sobre problemas e dividi-los em soluções de código.
-
From Computing to Computational Thinking (Paul S. Wang) é um pouco mais generalizado e acadêmico, mas oferece estratégias e estruturas de resolução de problemas que podem se aplicar a mais do que programação, e não exige conhecimento prévio de programação.
Alguns desses livros também podem ser lidos pela biblioteca da Association of Computing Machinery (ACM).
Informações sobre associação (paga) estão disponíveis em acm(dot)org.