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.
- Jeremy Howard, founder of fast.ai has a nice 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.
- Kurtis Pykes writing for Towards Data Science has a nice hands-on tutorial for problem-solving.
- 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.