Travis Emslander
Travis Emslander
All posts Curiosities
· 1 min read · ↗ cacm.acm.org

What Software Developers Should Learn About Learning

I came across an ACM article about learning from the specific perspective of programmers: 10 Things Software Developers Should Learn about Learning. I also happen to be reading a book about brain function and its implications for artificial intelligence, so this caught my interest.

Two highlights stood out:

First, on the benefits of switching tasks when you get stuck on a problem:

Spreading activation is also associated with insight-based problem solving, or “aha moments.” Because pathways stay primed for hours, sometimes stepping away from a problem to work on a different one with its own spreading activation causes two unrelated areas to connect in the middle. When two previously unrelated areas connect, creative and unique solutions to problems can arise. This is why walks, showers, or otherwise spending time away from a problem can help you get unstuck in problem solving.

Second, on why general problem-solving cannot easily be taught in isolation:

While humans do have some generic problem-solving skills, they are much less efficient than domain-specific problem-solving skills, such as being able to debug programs. While we can learn to reason, we do not learn how to solve problems in general. Instead, we learn how to solve programming problems, or how to plan the best chess move, or how to create a knitting pattern.