I’ve flirted on and off with #100DaysOfCode over the past few years, and always quit when I get to Javascript (which may never change, really), but I have learned some about the learning process itself by playing in that sandbox. In particular, reading about how other people have engaged with the challenge, I realized that one possible way to categorize learning experiences is to think of them as coming in three flavors: passive learning, active learning, and social learning.

Passive learning is essentially consuming content: reading books or articles, watching videos or lectures, listening to lectures or podcasts. This is a great way to get a lot of information in your head fast, but in my opinion is best paired with one or both of the other types of learning. You can make this more active by note-taking, summarizing, or teaching it to someone else, but the learning itself is still pretty passive.

Active learning is when you’re actually doing a thing: actually coding, actually writing, actually cooking, actually flying a plane, whatever it is you’re learning to do. This might involve activities structured by an expert to gradually increase your mastery, or it might involve jumping right in wherever you feel like it. Either way, the practice is taken on either independently or with a more knowledgeable other.

Social learning is when you’re learning in community with others. As with active learning (or passive learning, for that matter), the social aspect can be organized by a more knowledgeable other, an expert. It can, however, be 100% peer-driven. This might involve reading groups that take on a text together, hobbyists who engage in serious leisure in a social context, or individuals studying who answer questions for each other, for example.

I have an intuitive sense that the fastest and most effective learning will incorporate all three flavors, like a Neapolitan ice cream of learning, but any combination of more than one will be more effective than just one.

Image from blackillustrations.com