Stuff Goes Bad: Erlang in Anger
erlang-in-anger.com
erlang-in-anger.com
Erlang the language has me tearing my hair out on occasion. That's not Erlangs fault, it's clearly mine, I grew up with 'BASIC' and moved on Assembler and from there to 'C' and a whole bunch of other imperative languages besides so functional languages are always harder for me to learn.
That said I'm making good progress and Freds book was instrumental in that.
No, seriously: Erlang shares some features with Prolog and learning Prolog lets you learn those features in isolation, without unnecessary distractions (like, say, processes and sending messages, or gen_server/gen_fsm/supervisors or rebar, applications, releases...). For example "=" not being an assignment, and pattern matching in general, starts making a lot of sense. Looping via tail-recursion (only), single assignment variables, and even some of Erlang syntax stops seeming intimidating quickly.
I think the best metaphor for this would be learning to swim via jumping into a deep water, nearly drowning but learning the most important parts (like don't try to breathe underwater) and then going to shallow water to leisurely practice swimming there. It's certainly not for everyone, but for me it sped up the Erlang learning process by many weeks, if not months. (And also, I learned a bit of Prolog along the way.)
It has nothing to do with driving..
That's the 'informal use', as in, everyday communications such as, but not limited to comments in online communities.
The "informal" usage stems from people not knowing what they are talking about. No need to perpetuate it if you know better.
* http://www.salon.com/2013/08/22/according_to_the_dictionary_...
The term is often used in common English with the meaning of a difficult initial learning process. Nevertheless, the Oxford English Dictionary, The American Heritage Dictionary of the English Language, and Merriam-Webster’s Collegiate Dictionary define a learning curve as the rate at which skill is acquired, so a steep increase would mean a quick increment of skill.
Arguably, the common English use is due to metaphorical interpretation of the curve as a hill to climb.
[1]: http://en.wikipedia.org/wiki/Learning_curve#.22Steep_learnin...
I like the exercises at end of chapters. Most of it is Erlang specific. But some chapters like "Planning For Overload" are interesting in general if you are running distributed system at scale.