I see programming as an extended application of problem solving, and problem solving is just a different view on self-learning. Encouraging self-learning makes a team skillful and robust.

Learning is a skill like any other. It requires practice, feedback, and ways of organizing knowledge.

The component skills of self-learning are.

  • Assessing what needs to be done

  • Comparing current resources and abilities to the task

  • Plan an approach accounting for the task and current abilities

  • Evaluate effectiveness while applying the plan

  • Reflect and make changes based for future attempts

self learning cycle

These boil down to monitoring and controlling one’s own actions. In Japanese culture, the process of constantly monitoring and making small improvements is called kaizen.

I favor a variant of this process by Building a Discipling Culture called the circle. It builds in accountability and feedback in addition to personal monitoring and control.

kairos circle

Research shows that masters spend proportionately much more time planning an approach while novices tend to blindly apply whatever approach they think of first. Further, more mature problem solvers will recognize when an approach is failing and try a new one. Immature problem solvers with try the same approach many times independent of the result.

Kaizen or metacognitive process can be developed in students by asking why questions and providing self-learning frameworks. This causes students to reflect on their own processes and equips them to improve.

It is also important to address views on knowledge. Students perform better when they see knowledge as malleable, as something that can be intentionally improved. Statements of that paint knowledge as static should be addressed (e.g. “I’m not good at math”, “Math isn’t my subject”).

Signs of failure

  • Overdependence: things fall apart when you are away

  • Spend most of your time answering questions for a few

  • Frequently a bottleneck for efforts

  • Students/Employees are uncomfortable making decisions independently


  • Why Questions: boundary cases, contrasting examples

  • Self-reflection: Prompt students to reflect on how they practice and learn. Perhaps compare against recommended strategies.

  • Learning Process Examples: the circle, 5-step learning loop

  • Exam Wrappers: When handing back an exam, have students fill out a brief reflective survey identifying trends in their errors, how they studied, and how they can improve practice strategies for next time. Hand them back before the next exam.

  • View on Knowledge: Make it clear that knowledge is malleable and can be intentionally improved

  • Interest curves: Vary the challenge. Alternate between building confidence and stretching abilities