There are dozens of articles about learn by doing or experiencing or taking action or any number of synonyms. This is as opposed to learn by reading, listening, planning etc. The basic gist of this idea is that there are some ideas that can’t be learned by reading a book, they can only be learned by actually doing the activity. I think most people generally agree but I’d like to offer up some of my experience and a caveat I’ve observed.
In graduate school, I’m a teaching assistant for a course called Algorithms and Data Structures that offers both a undergraduate version and a graduate one. The undergraduate version is pretty vanilla with reasonable level questions that some students intuitively get but others struggle with; the usual spread between any reasonably difficult undergraduate coarse. But the graduate version is much more insidious. The professor purposely puts questions on the homework (and to some extent on the exam) that are not just hard but tortuous. These are the kinds of questions that you can literally spend hours thinking about only to end up in the exact same place you started in. It’s like a maze involving sorting, searching, dynamic programming, greedy algorithms, max flow and any other nasty “basic” algorithms you can think of.
So it’s no surprise that the students complain. They wish it could be easier and sometimes a few ask for help on how to make it easier. I answer them but I’m sad to say it’s never the answer they want to hear. The answer I give them is that you really have to learn by doing. That is, you only get good at these algorithm questions after you’ve done a lot of them. That’s the way you build intuition, by doing — NOT by someone more experienced than you telling you all the answers. It’s always tough to hear because I know they are stressed out with three or four other courses all with their own deadlines and of course they’re worried about their marks (even though the latter isn’t so important in graduate school). And alas (I hope) they realize that there is no shortcut, sometimes you have to cross through the bush to get to the other side.
And here’s where my caveat comes in: the one thing that seems to be missed when touting the “learn-by-doing” strategy is that it can be really hard. Either because it’s really scary (e.g. public speaking), or maybe just a lot of work (e.g. algorithms). The best teachers I know intuitively understand this and make you take that key step in understanding by yourself. It may be hard but no one said learning was easy.