views:

1627

answers:

9
  • What exactly is a learning curve?
  • And why is it wrong to use the term "steep learning curve" for something which has high entry barriers and takes quite some time to get into?

As to the why-ness of this question:

  • The terms are used often and inconsistently on Stack Overflow
  • I myself have been confused by it
  • Mostly the newbies are confronted with these terms when they for example ask questions like "what's the best php development framework"

I admit that it's not a programming question... therefore probably the minus votes. :)

+3  A: 

from Widipedia:

The term learning curve refers to the graphical relation between the amount of learning and the time it takes to learn.

The term "steep learning curve" is often wrongly used for things which need some time to wrap ones mind around. Also here on Stack Overflow I've seen it used wrongly many times and hence this Question and my own answer to it.

In fact a steep learning curve is given, when it is relatively easy to start of with a new skill/technique/...

it means that the relationship between "learning progress (y)" and "time invested (x)" is greater than 1.

tharkun
and obviously why it's misinterpreted is because people think steep as in hills. Where it takes more effort to effectively go a shorter distance compared to shallow hills
Sekhat
+10  A: 

It's a curve of time versus proficiency.

Steep for hard is wrong because it'd mean that you get very proficient in very little time


proficiency
  |   __
  |  |
  |  |    Proficient in little time (steep = easy)
  |  |
  |_/____________
       time

proficiency
  |
  |       Proficient in lots of time (gentle = hard)
  |            __             
  |           /
  |__________/___
       time

Vinko Vrsalovic
nice graphic there.
andyk
+7  A: 

See wikipedia.

"steep learning curve" is a buzz-phrase that doesn't have any actual meaning. It used to mean that you'd make quick progress. "Over time, the misapprehension has emerged that a "steep" learning curve means that something requires a great deal of effort to learn..."

Conclusion: people who use the phrase don't know that it's unclear. You should get details from them on what specific things are hard to learn and get past the buzz-phrases and platitudes.

S.Lott
I don't agree it is a misapprehension. A steep curve subject that requires you to learn a lot before you can use it means you have to learn a lot quickly, that requires a lot of effort. Subjects with a shallow learning curve, that you can use with only a little knowledge, are much easier.
David Sykes
There are two conflicting meanings. You've provided one. The original definition is the exact opposite of your definition. See http://malaher.org/?p=14. With two conflicting definitions, the phrase is rendered useless.
S.Lott
You gotta learn to let stuff like this go. You said that "people who use the phrase don't know that it's unclear," but if everyone who says "steep learning curve" is trying to convey "difficult to learn" and everyone receives that message, then the phrase isn't unclear.
John Dibling
@John Dibling: I wish "everyone" who says steep means difficult. Sadly, it isn't everyone. it isn't even a majority. I'm willing to let it go, I only need a simple consensus. Until such time, I recommend asking people to define what they mean.
S.Lott
+3  A: 

There are a few possible interpretation of "learning curve", but a fairly natural one would be "time elapsed" on the X axis and "knowledge gained" on the Y axis. A steep curve, in that mapping, would imply that you gain a lot of knowledge, fast.

The only interpretation I can think of where "steep" is the same as "hard" is where you map "knowledge gained" on the X axis and "effort expended" on the Y axis and that is not a very natural mapping.

Vatine
+1  A: 

Learning curve is the rate at which knowledge can can acquired. A new developer on a complex system will likely experience a steep learning curve as they will have a lot to learn before they can become productive. By implication an experienced developer may experience a shallow learning curve if they are familiar with a system.

The acquisition of knowledge does not always imply understanding. In some cases a developer may not need to absorb a lot of system detail but may need to understand underlying designs before they can be productive. This can take time but does not imply a steep learning curve.

In practise understanding and knowledge go hand in hand. Most developers will always be on a learning curve of some sort but will also be using new knowledge to forge a deeper understanding of the systems they are working as well as the tools and practises they are using.

Richard Dorman
+5  A: 

It's a battle of intuitiveness. On one hand, you've got "steep=hard to climb" association, on the other hand you have "time on the horizontal axis" convention (but "proficiency on the horizontal axis" isn't "wrong", just "less popular"). So, IMHO it's not a matter of "right" vs "wrong" but rather "intuitive" vs "more intuitive".

I think that "steep=hard to climb" will win, because it appeals to anyone who at any point in their life has climbed a stair, as opposed to the x-y curve which even people trained in mathematics sometimes mix up.

Rafał Dowgird
This is true, but I think hardly anyone has ever climbed a curve
Vinko Vrsalovic
You never went the wrong way up a playground slide as a kid? You haven't lived!
Steve Jessop
+7  A: 

I've generally understood it to have more to do with the amount of time allotted to learning, and what you have to learn in that period of time. If you have only a short amount of time in which to learn something, your learning curve is going to be much steeper than if you had a longer amount of time to learn the same amount of material. So a steep learning curve IS difficult because it means you're trying to cram six months worth of learning into three weeks, or whatever.

More material in the same amount of time would produce the same curve.

Adam Jaskiewicz
+1  A: 

It's true that "steep learning curve" should mean "easy" given the origin of the learning curve as a graph of measured performance as a function of time, and that the proper expression for a hard-to-learn-task should be "gradual learning curve". But it's perfectly natural that "steep learning curve" should have come to mean "hard" given that a) most people have never looked at an actual learning curve, and b) "steep" implies "difficult" whereas "gradual" implies "easy".

This is how languages evolve, and it would be utterly futile to try and change the general usage of this term now. And, in any event, I could care less about the whole issue (see how you still knew exactly what I meant?).

MusiGenesis
Maybe you mean "I could not care less"? Reading "I could care less" rings my dissonance bells every time. Maybe because I am a non-native speaker.
ddaa
@ddaa: in the USA, "I could care less" is commonly used instead of the literally-correct "I could not care less". I used it intentionally as another example of how technically-incorrect expressions become common usage.
MusiGenesis
And the English go with the more correct, but shortened I couldn't care less :P
Sekhat
@Killer: you hear that version here, too. We can't even be consistent about it.
MusiGenesis
+10  A: 
bendin
Unserious, but true enough to deserve correction: vi does have a big vertical wall up front, but (esp. with vim) it should not be flat afterwards. Similarly, emacs has a pretty hard upfront step nowadays, on account of the exotic user interface.
ddaa
Love the Visual Studio graph. That's certainly what it feels like, at least.
MusiGenesis
Uh? What's changed "nowadays" in Emacs to make it an exotic user interface? It seems to me that Emacs has gotten easier to use for new users.
ShreevatsaR