This week is Computer Science Education Week, when millions of students will participate in Hour of Code. This movement launched last year with great publicity from Mark Zuckerberg, will.i.am, Bill Gates, Chris Bosh, and many more. Just last year, over 53 million people from all over the globe have tried at least an hour of coding.
This year, the President kicks off the Hour of Code and even does it himself.
As a proponent of STEM (Science, Technology, Engineering, Mathematics) education, I think the Hour of Code is awesome because it exposes many students to computer science (CS), something they normally don't get exposed to before college. And by that time, many will have disregarded CS because they feel they're behind, they have some misconception that it's too difficult, or they're focused on another major (not a bad thing at all if they're passionate about that major, but if they aren't, there's a possibility that they might like CS).
Anyway, this post isn't really meant to be about STEM education, so I shall save that for another post. This post is going to generalize the learning curve and hopefully give you a clearer view of the learning process for many people .
About the Learning Curve
I think the typical learning curve for most people for most skills looks something similar to a sigmoid function, an s-curve. Something like this...
It's typically composed of 3 parts:
Phase 1: "WTF"
Everyone who attempts to learn something goes through this phase. This phase is filled with a lot of questions: why am I doing this, why is this so hard, and why can't I get this. You spend quite a bit of time trying to learn something, but the amount of progress you see is small. Your self-esteem takes a pretty good beating here, which is why, unfortunately, many people stop their attempts to learn something at this phase .
Phase 2: "I got this!"
If you're fortunate to get through Phase 1, you're in really good shape. In this phase, you're pretty much smooth-sailing. You're making good progress; the time you spend learning/doing results in progress that you're satisifed with. All is good in the world .
Phase 3: "This is not as easy as I thought"
Once you've been learning/doing something for quite a while, it's going to feel like Phase 1 again. At this point, the amount of time you spend learning/doing something results in minimal growth. This is frustrating because just a while ago, you seemed to be cruising and having an awesome time. But I guess that's the price to pay to be great at something.
Observations on the Learning Curve
The learning curve is unique to the person AND skill.
Let's say Alice and Bob are learning how to play the guitar. They're also trying to learn how to make websites. There should be four different learning curves here: one each for Alice and Bob's learning how to play the guitar and one each for Alice and Bob's learning how to make websites. These will all look different. Alice, in learning how to make websites, may get through the WTF Phase faster than Bob will. Bob may learn how to play the guitar faster.
This is natural, and it's important for everyone to understand that everyone learns different skills at different rates.
For the learner, this concept is important because learning a skill more slowly than others does not say anything about one's overall abilities. Although slow learning may be frustrating, one should not extend those frustrations to other learning processes. A difficult time learning multivariable calculus doesn't mean you're terrible at linear algebra, nor does it mean you're terrible at math. Bob's picking up multivariable calculus faster than you do does not mean he is smarter.
Similarly, for the teacher , this concept is important to avoid imposing any sort of premature optimism or premature pessimism in a student, which has effects similar to that of the stereotype threat. The stereotype threat is essentially the idea that a person associated with negative stereotypes will tend to conform to them. If a teacher implies that a student is terrible at coding because he or she learns control flow more slowly, the student has the additional pressure of either conforming to the idea that he or she is terrible at coding or disproving that. That's unnecessary pressure. The inverse situation, in which a teacher implies that a student is great at coding because he or she learns control flow really quickly, may give the student false confidence and subsequent setbacks will likely take a heavier toll to his or her self-esteem.
The reasons for unique learning curves are highly variable.
Why does Person A spend more time in the WTF Phase than Person B? The answer is going to be different for almost all combinations of Person A and Person B. Everyone's brains are wired differently, so everyone learns differently . In addition, there are a huge number of skills involved in learning every activity, so everyone will have different problems and different optimal ways to learn. The stereotype threat, self-doubt, a weak foundation in another skill necessary to learn another, amount of time dedicated to learning, and dislike for the subject may all be factors.
A learner should embrace this concept because having trouble with a concept may just be a sign to alter one's method of learning. If you're having trouble understanding your textbook's way of explaining arrays, try looking for a graphical explanation. But don't think that you're not meant for coding.
This concept is even more important for teachers, implying that there is no best lesson plan. What's best for one student may not be the best for another. Basically, the effectiveness of a method of teaching or lesson plan is primarily a reflection of how well-adapted that method of teaching is to the student's optimal method of learning.
The key takeaway for the teacher here is that everyone has different learning curves, and there isn't one correct way to do things. It's all about looking for and adapting to your students' needs. It's okay if your method of teaching isn't effective for a student. Just use another. You should also be aware of where a student sits on the learning curve. If the student is in the WTF Phase, understand that the student is likely frustrated and that there may be a wide variety of factors, besides the difficulty of the subject, that is affecting the student. Patience and compassion go a long way here. Teaching's not easy, so much respect to you!
The key takeaway for the learner here is that your learning curve does not paint a full picture of you and your abilities. Your learning curve is unique to you and what you're trying to learn. And the awesome thing is that you're in control.
1. Put in more time to get more skill.
This is a passive approach of following the curve. With enough time, you'll get to where you want to be.
2. Redefine your curve
This is the active approach. Find a community of motivated people, surround yourself with great mentors or teachers, etc. Just put yourself in a better position to learn, and your curve will change.
Ultimately though, the learning curve will always be there. There will always be the fragile beginning where quitting sounds like a great option. There will always be the point when you're reasonably self-sufficient and are doing well. And there will always be that point when even the slightest improvement seems hard to come by.
Embrace the learning curve, and hopefully you'll be able to focus on the whatever's currently impeding your progress.
When you're frustrated, just remember that everyone (the best of the best, your friends, your classmates) goes through the three phases of the learning curve. Just keep on trucking, and with time will come progress.
Best of luck learning!
Oh, and by the way, if you have not tried coding and would like to learn, go ahead and try out the Hour of Code or reach out to me. I'd love to help you out.
 I should probably mention that I'm not writing a scientific paper, so I haven't really sought out scientific research. These are primarily observations from my experience helping people learn things.
 This phase is usually the point when people decided they want to pursue something further or not, so for those in other phases, please be respectful of that. Be encouraging and try to offer help. If you have something critical to say, be constructive with your criticism. There's nothing more demoralizing than someone critizing you while you're trying your best and still struggling. Instead of "Bro, your jump shot sucks," be like "Bro, you're jump shot's almost good, but I think you need to square up and follow through. Check this out. **Shows Jumpshot**. Keep it up though. It takes getting used to."
 Okay, if you're a perfectionist or have really high standards for yourself, all may not be good in the world. But you've made decent progress, and you're in a position to make significant progress without much guidance.
 When I say teacher, I'm not talking specifically about everyone whose occupation is "teacher" or "professor". I'm talking about anyone who instructs or guides someone, anyone who "teaches".
 I'm assuming here that learning is, in the most basic form, the rewiring of neural pathways.