Over the last few weeks, I’ve been digging deeper into doing mobile application development for iPhones and iPads, which can be a frustrating experience to start with. It’s made me realize how long it’s been since I really had to struggle with learning something. I don’t mean that in an egotistical way, just that I haven’t forced myself to struggle through a difficult topic in a long time. It’s also made me think about about self-learning and why we don’t do it more. We have an incredible amount of information at our fingertips, so it seems like teaching yourself most things would be a no-brainer.
The hard part with self-learning new programming languages is that there’s a hump between the first few steps, which are relatively easy, and the point where you feel like you’re starting to understand what you’re doing and you can make forward progress, even if it’s slow. This effect is much worse if you’re going from a type of programming you understand (like web application development) to a completely new paradigm (like native mobile application development).
In that zone in the middle, it’s hard to move in any direction, because you don’t really know enough to overcome even the slightest barrier. Even worse, you know that the answer is probably only a Google search away, but you can’t access that answer because you don’t know what question to ask. And you don’t know who to trust and wouldn’t recognize the answer if you saw it. And you have no idea how to test it. What you really need is a step-by-step plan of action, but if it differs in any way from your setup, you’re likely to get lost.
I think this zone probably exists for most topics, it just occurs with more severity in some, and its position in the learning cycle differs by topic. It’s a very frustrating point, and I suspect it’s the point where most people give up on whatever they’re trying to learn how to do. The difficulty of trying to struggle through that zone without any external guidance is just too hard.
But that’s only one reason that people don’t self-learn more topics; the other one is motivation. Self-learning is generally self-paced, which is often touted as a benefit. However, anyone who has tried to learn something (or just do something) on a self-pacing basis quickly finds out that there’s an inherent problem: few other things in life are self-paced. For most things, there’s someone else expecting what you’re working on, so you have an external motivator. But just doing something on your own doesn’t bring that benefit. Just like a workout buddy for the gym, this is why learning something with someone else is so effective. I can’t tell you the number of people I know who have tried to learn something new and ended up frustrated and decided to just take a class. And it makes total sense: you show up in a class every week for a few months and go through the step-by-step plan, knowing that at the end of it you’ll have learned the thing you want to learn. It’s not easy, but it’s predictable.
If you’ve tried self-learning, what kind of results have you gotten? What works or doesn’t work for you?