Algorithmic Learning


I think people need to think more about how they learn.

Too many treat the gathering of knowledge like an ancient spiritual experience; they do some hand-waving, mumble some incantations, and then they look to the heavens for a sign that something has changed.

We can do better.

Two kinds of learning

I think there are two main ways to benefit from what we learn. Let’s call them Experiential and Algorithmic.

  1. Experiential learning is the type that most do by default. You read a book about your industry, you go to a seminar about self-improvement, you take a college course, you watch a documentary, etc. And then once you’re done you rarely refer to the notes you took (if you took any) and you basically rely on the power of osmosis to somehow give you benefit from the content.

  2. Algorithmic learning is the opposite, and it’s something very few people do. It starts with having an algorithm—a methodology—for doing some task or approaching some problem. Then, when new information is acquired, instead of relying on osmosis, we modify our actual algorithm for doing that thing. Then we regularly review our algorithms so that we’re changing our daily behavior.

Experiential learning is where you read a lot, watch a lot of presentations, and generally absorb a great deal of information about things you care about, and then over time you hope to see the wisdom of that content reflected in your subconscious decision-making. And it’s not as if this is bad. It’s definitely happening, and it’s definitely valuable.

But it’s a bit sloppy, and it takes too long to work.

For those who are most interested in changing their behavior for the better, the Algorithmic approach is worth exploring. It provides a far more tangible and structured way to modify your behavior for the better in extremely short timeframes.

Here’s the system:

  1. Have actual captured algorithms for the things you do frequently and care most about doing well. This can be extremely structured things like testing web applications for security vulnerabilities, to more amorphous ones like laying out a solid argument.

  2. When you gather new information related to a given topic, capture notes like usual, but pay close attention to where you may change your current approach.

  3. Spend time reflecting on both your current methodology and the overall concept of the new content. Consider the positives and negatives involved in each, and decide if a change is warranted.

  4. If you determine that you’ve learned something valuable, tangibly modify your current way of doing things by updating your algorithm for that task. Make the actual change in your methodology by adding steps, removing steps, tweaking order or content, etc.

[ NOTE: In a previous post on a similar topic I advocated the use of Git for this. ]

Part of the challenge here is knowing which kind of learning should be happening at any given time. We shouldn’t overthink it.

Most learning will still be Experiential because we’re learning constantly just by observing in our daily lives.

But for areas of your life that you can understand as structures, or as a series of steps that can have either good or bad approaches, we should be using Algorithmic learning far more often.

It’s not enough to let knowledge wash over you and drip onto the ground. If you care about improving your behavior, you must capture that knowledge and integrate it into your life in tangible way.

Self-improvement, like many things, is an integration problem. Experiential learning trusts integration to luck, chance and time. Algorithmic learning makes integration explicit.


  1. I also recommend that you read Learning is an Integration Problem, which compliments this post really well.

Related posts: