diff --git a/docs/PROBLEM-SOLVING.md b/docs/PROBLEM-SOLVING.md index 47a99e8a8a..4a5cdd7288 100644 --- a/docs/PROBLEM-SOLVING.md +++ b/docs/PROBLEM-SOLVING.md @@ -1,7 +1,7 @@ # Problem Solving Strategies -As the first article here states, `Problem solving is a meta-skill`. +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. @@ -9,25 +9,24 @@ Below are some community-sourced articles, videos, and books that can help you d - Free Code Camp offers a good overview article on [How to Think Like a Programmer - Lessons in Problem-Solving][free-code-camp-think-like-a-programmer]. - Jeremy Howard, founder of fast.ai has a nice summary of [G. Polya's Problem Solving Techniques][g-polya-how-to-solve-it-summary]. -- Originally written in 1945 as guidance for tackling complicated math problems,[G. Polya's How To Solve It][g-polya-how-to-solve-it] (full book) is still _excellent_ advice for problem-solving in general. +- Originally written in 1945 as guidance for tackling complicated math problems, [G. Polya's How To Solve It][g-polya-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][Kurtis Pykes: Hands-on Tutorial - How to Improve Your Problem-Solving Skills as A Programmer]. - Mentioned in the Free Code Camp Article, V. Anton Spraul's [Think Like a Programmer: An Introduction to Creative Problem Solving][v-anton-spraul-think-like-a-programmer] is a more modern and programming-focused take on the same general methods Polya outlines for mathematics. - [Felienne Hermans][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][programmers-brain-free-online], with strategies for reading code better, thinking about code clearly, writing better code, and becoming a better code collaborator. + She has written [The Programmer's Brian][programmers-brain-free-online], 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][programmers-brain-manning]. - - She also has two interesting videos on the same topic: [How to Teach Programming (and other things??)][felienne-hermans-how-to-teach-programming] and [Programming is Writing is Programming ][felienne-hermans-programming-is-writing-is-programming]. + - She also has two interesting videos on the same topic: [How to Teach Programming (and other things)?][felienne-hermans-how-to-teach-programming] and [Programming is Writing is Programming ][felienne-hermans-programming-is-writing-is-programming]. - [Algorithmic Thinking (Daniel Zingaro)][daniel-zingaro-algorithmic-thinking] from No Starch Press and [How to think like a programmer (Paul Vickers)][paul-vickers-how-to-think-like-a-programmer] also cover problem-solving when coding. -- [Computational Thinking: A beginner's guide to problem-solving and programming (Karl Beecher)][beecher-computational-thinking] and [Computational Thinking for the Modern Problem-Solver (Riley and Hunt)][riley-and-hunt-computational-thinking]. Also offer strategies for thinking about problems and breaking them down for coding solutions. +- [Computational Thinking: A beginner's guide to problem-solving and programming (Karl Beecher)][beecher-computational-thinking] and [Computational Thinking for the Modern Problem-Solver (Riley and Hunt)][riley-and-hunt-computational-thinking] also offer strategies for thinking about problems and breaking them down for coding solutions. - [From Computing to Computational Thinking (Paul S. Wang)][wang-computational-thinking] 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. +Some of these books may also be read through the Association of Computing Machinery (ACM) library. Membership (paid) information is available at [acm(dot)org][association-for-computing-machinery]. - [Kurtis Pykes: Hands-on Tutorial - How to Improve Your Problem-Solving Skills as A Programmer]: https://towardsdatascience.com/hands-on-tutorial-how-to-improve-your-problem-solving-skills-as-a-programmer-83f0a8d1082f [association-for-computing-machinery]: https://www.acm.org/membership/membership-benefits [beecher-computational-thinking]: https://www.karlbeecher.com/project/ct -[daniel-zingaro-algorithmic-thinking]: https://nostarch.com/algorithmic-thinking +[daniel-zingaro-algorithmic-thinking]: https://nostarch.com/algorithmic-thinking-2nd-edition [felienne-hermans-how-to-teach-programming]: https://www.youtube.com/watch?v=g1ib43q3uXQ [felienne-hermans-programming-is-writing-is-programming]: https://www.youtube.com/watch?v=uO3a4HIBDU4 [felienne-hermans]: https://www.felienne.com/ @@ -37,6 +36,6 @@ Membership (paid) information is available at [acm(dot)org][association-for-comp [paul-vickers-how-to-think-like-a-programmer]: https://www.researchgate.net/publication/236270907_How_to_Think_like_a_Programmer_Problem_Solving_for_the_Bewildered [programmers-brain-free-online]: https://www.manning.com/books/the-programmers-brain#toc [programmers-brain-manning]: https://www.manning.com/books/the-programmers-brain -[riley-and-hunt-computational-thinking]: https://www.amazon.com/Computational-Thinking-Problem-Textbooks-Computing-ebook/dp/B00IZL9NQI +[riley-and-hunt-computational-thinking]: https://www.amazon.com/Computational-Thinking-Problem-Textbooks-Computing/dp/1466587776 [v-anton-spraul-think-like-a-programmer]: https://archive.org/details/think-like-a-programmer/page/n19/mode/2up -[wang-computational-thinking]: https://www.amazon.com/Computing-Computational-Thinking-Paul-Wang-dp-1482217651/dp/1482217651/ref=mt_other?_encoding=UTF8&me=&qid= +[wang-computational-thinking]: https://www.amazon.com/Computing-Computational-Thinking-Paul-Wang-dp-1482217651/dp/1482217651