Learning a new skill is hard. Part of what’s so hard about it is, by definition, you don’t know the skill and so you also don’t know the best way to go about learning it. So you rely on people who do know that skill to guide you through the process. Maybe you’re a child, relying on your parents to teach you how to ride a bicycle. Or maybe you’re an adult who just Googled “how to learn to code.”
Unfortunately, most people who know things are not good at teaching them. Learning a skill and teaching that skill are two separate abilities. Often we learn things and then forget just how we came to understand them.
Emily Oster recently discussed balance bikes vs training wheels for learning to cycle. A balance bike is a bike without pedals that a child can push around with their feet. The research on learning to cycle in these two different ways is light, but Oster quotes a Portuguese study that says kids who use balance bikes learn to ride around age 4 while kids who use training wheels don’t manage until age 6. (The study didn’t establish causality, but I think it’s probably causal.)
Training wheels and balance bikes are both part of the same essential learning strategy: start with a simplified version of the thing you want to learn so you can learn specific parts of it and ignore the other parts. The difference is that training wheels remove the balancing part of cycling to focus on pedaling, while balance bikes remove the pedaling part of cycling to focus on balancing. I think balance bikes are better because staying balanced on a moving bicycle is more important than being able to pedal. Knowing how to pedal is no good if you fall off the bike. If you can coast on a bicycle without falling off, you have plenty of time to learn to pedal.
Last year I tried learning to code in Solidity, the programming language used to write Ethereum smart contracts. I already know how to program in R and Python, so I figured it wouldn’t be too hard to learn another programming language. I found a series of tutorials and slavishly followed them. In the end, I learned…nothing. I couldn’t program in Solidity.
Continue reading Good and bad ways to learn