jarednielsen.com

Pattern Forming and Problem Solving

March 23, 2020

jarednielsen solution pattern forming

This article originally published in my newsletter, The Solution.

How do you build something out of nothing?

In The Mythical Man-Month, Fred Brooks writes:

The programmer, like the poet, works only slightly removed from pure thought stuff. He builds his castles in the air, from air, creating by exertion of the imagination.

How does this ‘pure thought stuff’ become code?

Patterns.

Pattern Forming is Problem Solving

In Sparks of Genius, Robert and Michele Root-Bernstein write:

All language can be transcribed using as few as two symbols—the dot and dash of Morse code—and virtually any kind of information can be translated into zeros and ones and fed into a computer. The striking thing about pattern forming is not the complexity of the elements that are combined, but the cleverness and unexpectedness with which the combinations are made.

The Root-Bernstein’s outline two lessons learned from their study of pattern forming:

  1. Pattern forming crosses disciplinary boundaries in both its origins and its meanings
  2. The complexity of the final product doesn’t reside in the complexity of the components but in the cleverness with which a handful of simple elements is used to generate diverse surprises

Learning to create patterns is therefore one of the keys to innovating in every discipline, and it is wise to learn this skill early on.

We want to form a pattern of forming patterns.

How do we do that?

The Pattern Forming / Habit Forming Feedback Loop

In Atomic Habits, James Clear discusses the importance of using habits to form an identity rather than to achieve a goal:

Your habits shape your identity, and your identity shapes your habits. It’s a two-way street. The formation of all habits is a feedback loop, but it’s important to let your values, principles, and identity drive the loop rather than your results. The focus should always be on becoming that type of person, not getting a particular outcome.

Clear outlines a two-step process for shaping your identity through habits:

  1. Decide the type of person you want to be.
  2. Prove it to yourself with small wins.

Where have we seen this, or something like it, before?

🤔

Recursion!

It also consists of two steps:

  1. Establish a base
  2. Perform recursion

We use recursion to solve a large problem by breaking it down into smaller instances of the same problem.

We recognize a pattern in the problem then we form a pattern to solve it.

Problem Solving is Pattern Forming

In How To Solve It, George Polya outlines four steps for solving any problem:

  1. Understand the Problem
  2. Devise a Plan
  3. Execute the Plan
  4. Examine the Solution

The last point is the most important.

“What is the solution?

“Can it be modified?

“If so, what could be improved, if anything?

“Could we use this solution for other problems?”

We gain mastery through this process of reflection and remodeling.

Make it a habit!


Jared Nielsen

Want to level up your problem solving skills? I write a weekly newsletter about programming, problem solving and lifelong learning. Join now