https://blog.oppedahl.com/thinking-about-problem-solving/
Thinking about problem solving