Ultralearning Ch. 7 - Principle 4 - Drill
Attack Your Weakest Point
Benjamin Franklin is a great writer. He started from feedback that he needed to improve his writing, and so he drilled in on his weakness and it became his ultimate strength.
The Chemistry of Learning
Learning has certain aspects of the learning problem forming a bottleneck that controls the speed at which you can become more proficient overall. Here is the strategy behind doing drills: By identifying a rate-determining step in your learning reaction, you can isolate it and work on it specifically. Since it governs the overall competence you have with that skill, by improving at it you will improve faster than if you try to practice every aspect of the skill at once.
That was Franklin’s insight that allowed him to rapidly improve his writing: by identifying components of the overall skill of writing, figuring out which mattered in his situation, and then coming up with clever ways to emphasize them in his practice, he could get better more quickly than if he had just spent a lot of time writing.
Drills and Cognitive Load
Even if there isn’t one isolatable aspect of the skill that is holding back your performance, it may still be a good idea to apply drills. The reason is that when you are practicing a complex skill, your cognitive resources (attention, memory, effort, etc.) must be spread over many different aspects of the task. This can create a learning trap. In order to improve your performance in one aspect, you may need to devote so much attention to that one aspect that the other parts of your performance start to go down. If you can judge yourself only on how much you improve at the overall task, is can lead to a situation in which your improvement slows down because you will be getting worse at the overall task while becoming better at a specific component of it.
Drills resolve this problem by simplifying a skill enough that you can focus your cognitive resources on a single aspect. When Franklin focused on reconstructing the order of an essay he had read previously, he could devote all his attention to asking what sequence of ideas leads to a good essay rather than also needing to worry about word usage, grammar, and the content of the arguments.
You might notice a tension between this principle and the last. If direct practice involves working on a whole skill nearest to the situation in which it will eventually be used, drilled are a pull in the opposite direction. A drill takes the direct practice and cuts it apart, so that you are practicing only an isolated component. How can you resolve this contradiction?
The Direct-Then-Drill Approach
The tension between learning directly and doing drills can be resolved when we see them as being alternating stages in a larger cycle of learning. The first step is to try to practice the skill directly. Practice a language by actually speaking it. Learn programming by writing software. Improve your writing skills by penning essays. This initial connection and subsequent feedback loop ensure that the transfer problem won’t occur. The next step is to analyze the direct skill and try to isolate components that are either rate-determining steps in your performance or sub skills you find difficult to improve because there are too many other things going on for you to focus on them. From here you can develop drills and practice those components separately until you get better at them.
The final step is to go back to direct practice and integrate what you’ve learned. This will help you re-integrate that knowledge back to the whole context. This will also help check whether your drill was well designed and appropriate. Many attempts to isolate a drill may end in failure because the drill doesn’t really cut at the heart of what was difficult in real practice. That’s okay; this feedback is important to help you minimize wasting time learning things that don’t matter much to your end goals.
The earlier you are in the learning process, the faster this cycle should be. Cycling between direct practice and drills, even within the same learning session, is a good idea when you’re just starting out. Later, as you get better at what you are trying to do and a lot more effort is required to noticeably improve your overall performance, it’s more acceptable to take longer detours into drills. As you approach mastery, your time may end up focused mostly on drills as your knowledge of how the complex skill breaks down into individual components becomes more refined and accurate and improving any individual component gets harder and harder.
Not sure I fully understand the way the author explains it, but I guess the general idea of directly doing the thing, then drilling in on what you think is the weakest link, then building up and applying that knowledge back to the direct actions, then repeating this cycle makes sense. For programming, if you are developing an app and you get to a point where your algorithm writing skills are slowing you down, then perhaps drilling in on learning how to write algorithms might be a good next step. Then, after drilling in on this weakness and improving this skill, you can go back to writing the app and applying the knowledge wherever applicable. Or maybe instead of algorithm writing, it’s a particular language that you need to brush up on.
Tactics for Designing Drills
There are three major problems when applying this principle. The first is figuring out when and what to drill. You should focus on what aspects of the skill might be the rate-determining steps in your performance. The key is to experiment. Make a hypothesis about what is holding you back, attack it with some drills, using the Direct-Then-Drill Approach, and you can quickly get feedback about whether you’re right.
The second difficulty is designing the drill to produce improvement. Finally, doing drills is hard and often uncomfortable. Teasing out the worst thing about your performance and practicing that in isolation takes guts. Let’s look at some good ways to do drills so you can start applying them yourself.
Drill 1: Time Slicing
The easiest way to create a drill is to isolate a slice in time of a longer sequence of actions. Look for parts of the skill you’re learning that can be decomposed into specific moments of time that have heightened difficulty or importance. Musicians often do this kind of training when they identify the hardest parts of a piece of music and practice each one until it’s perfect before integrating it back into the context of the entire song or symphony.
Drill 2: Cognitive Components
Sometimes you’ll want to practice a particular cognitive component. That tactic here is to find a way to drill only one component when, in practice, others would be applied at the same time. I’m not sure a good example of this for programming. Maybe writing algorithms.
Drill 3: The Copycat
A difficulty with drills in many creative skills is that it’s often impossible to practice one aspect without also doing the work of the others. To solve this problem in you own learning, you can copy the parts of the skill you don’t want to drill (either from someone else or your past work) so you can focus exclusively on the component you want to practice. Not only does this save a lot of time, because you need to repeat only the part you’re drilling, it also reduces your cognitive burden, meaning you can apply more focus to getting better at that one aspect.
Also not sure yet how to apply this to programming yet.
Drill 4: The Magnifying Glass Method
Suppose you need to create something new and can’t edit or separate out the part you want to practice. How can you create a drill? The Magnifying Glass Method is to spend more time on one component of the skill than you would otherwise. This may reduce your overall performance or increate your input time, but it will allow you to spend a much higher proportion of your time and cognitive resources on the subsoil you want to master.
Not sure about this one much yet either, for programming.
Drill 5: Prerequisite Chaining
Start with a skill that you don’t have all the prerequisites for. Then, when you inevitably do poorly, go back a step, learn one of the foundational topics, and repeat the exercise. This practice of starting too hard and learning prerequisites as they are needed can be frustrating, but it saves a lot of time learning sub skills that don’t actually drive performance much.
This idea I like. For programming, you can start building out your app idea, then if you run into a block, you can take a step back and learn a foundation topic, then repeat.
Mindful Drilling
Drilling problems without context is mind-numbing. However, once you’ve identified that it’s the bottleneck preventing you from going further, they become instilled with new purpose. Drills are hard to do, which is why many of us would rather avoid them. Drills require the learner not only to think deeply about what is being learned but also figure out what is most difficult and attack that weakness directly rather than focus on what is the most fun or what has already been mastered. This requires strong motivation and a comfort with learning aggressively.
The difficulty and usefulness of drills repeat a pattern that will recur throughout the ultra learning principles: that something mentally strenuous provides a greater benefit to learning than something easy. Nowhere is this pattern more clear than in the next principle, retrieval, where difficulty itself may be the key to more effective learning.