The Meerkat Manifesto
Meerkat is a method to get people learning at the right speed by bringing together a Mentor and a Learner. It is inspired by how meerkats teach their puppies to eat scorpions. The mentor picks a project that is challenging, gives it to the learner, and waits until the learner declares defeat. Then the mentor slightly simplifies the project, and gives it back to the learner. This continues until the learner can solve the task. The Meerkat method skips ‘exercises’ (that is: problems that are simple enough for anyone to solve) because it keeps the learner stretched at all times.
To learn optimally you need to pick a project that is right for your skill level: not too hard, not too easy.
To teach yourself anything, you pick a sequence of tasks. Common sense tells us you should do tasks of increasing complexity.
Common sense is wrong in two ways:
(1) It assumes that as novices we estimate task complexity well. You judge complexity (or a proxy) to order the tasks. But I have yet to see a domain where beginners make good estimations. Imagine you know no math whatsoever. How easy is it to solve a particular system of equations? Tough call.
(2) It assumes that going from easy to complex is better for learning the skill. But following this ramp guarantees that you will spend quite a bit of time on simple tasks; time that you could spend on stuff that challenges you just about right. You want to stay always at the border of your capabilities.
You may choke on a task that is too difficult, or improve slowly because you pick too easy a task. You don't know in advance, because you need skill to rate task difficulty. So we are in a predicament. What can you do as a learner?
You just borrow that difficulty-estimation skill. From a more advanced programmer than you.
You walk pass that advanced coder and ask him to pick a task just right for you? While this might work occasionally, it generally is difficult to get a feeling for your skill level without knowing you well. And let's be honest, unless he’s invested in you getting better, the incentives aren’t there for him to spend hours thinking about that just-right task for you. You need a mentor.
Turns out that animals have similar problems training their descendants as coders have. Let's have a look at what the Meerkats do.