* Added very rough draft of problem solving links. * Apply suggestions from code review Additional books and refs from @bobahop. * Apply suggestions from code review Cleaned up formatting a bit. * Update docs/PROBLEM-SOLVING.md * Added Kurtis Pykes article. * Added problem-solving doc to config. * Apply suggestions from code review Co-authored-by: Bob Hoeppner <32035397+bobahop@users.noreply.github.com> Co-authored-by: Bob Hoeppner <32035397+bobahop@users.noreply.github.com>
4.8 KiB
4.8 KiB
Problem Solving Strategies
As the first article here states, Problem solving is a meta-skill.
We find that often, the syntax or structure of a programming language isn't the most difficult part of solving a challenge - figuring out what to code or where to start is.
Developing strategies and a system to break down problems into code-able steps is a great skill to cultivate.
Below are some community-sourced articles, videos, and books that can help you develop this super-skill.
- Free Code Camp offers a good overview article on How to Think Like a Programmer - Lessons in Problem-Solving.
- Kurtis Pykes writing for Towards Data Science has a nice hands-on tutorial for problem-solving.
- UC Berkeley has a nice PDF summary of G. Polya's Problem Solving Techniques.
- Originally written in 1945 as guidance for tackling complicated math problems,G. Polya's How To Solve It (full book) is still excellent advice for problem-solving in general.
- Mentioned in the Free Code Camp Article, V. Anton Spraul's Think Like a Programmer: An Introduction to Creative Problem Solving is a more modern and programming-focused take on the same general methods Polya outlines for mathematics.
- Felienne Hermans is more focused on how people learn the art of coding and how that maps to learning in general.
She has written The Programmers Brian, with strategies for reading code better, thinking about code clearly, writing better code, and becoming a better code collaborator.
- You can order a physical copy of her book here.
- She also has two interesting videos on the same topic: How to Teach Programming (and other things??) and Programming is Writing is Programming .
- Algorithmic Thinking (Daniel Zingaro) from No Starch Press and How to think like a programmer (Paul Vickers) also cover problem-solving when coding.
- Computational Thinking: A beginner's guide to problem-solving and programming (Karl Beecher) and Computational Thinking for the Modern Problem-Solver (Riley and Hunt). Also offer strategies for thinking about problems and breaking them down for coding solutions.
- From Computing to Computational Thinking (Paul S. Wang) is a bit more generalized and academic, but offers problem-solving strategies and structures that can apply to more than coding, and does not require prior programming knowledge.
Some of the books above may also be read through the Association of Computing Machinery library. Membership (paid) information is available at acm(dot)org.