Problem with the Drupal learning curve

kids playing Twister
What's so wrong with saying "Drupal has a steep learning curve?" Well, it's not the most helpful analogy. And it's one of my pet peeves. I agree, it is a myth. Yes it is.
We have to keep in mind that the curve is not the path, and the initial sensation of difficulty comes from getting one's habits unstuck. Using this tired analogy perpetuates a misunderstanding about Drupal. Instead, I'd like to talk about opening doors, welcome mats, and crossing the threshold. Once you've made it through, you'll see a big difference.
Why?
Because we all want to make Drupal better, and a little bit of knowledge is dangerous. The most egregious errors are made not by people new to web development, but from experienced programmers who sneak into Drupal from a side window and re-write entire parts of Drupal on top of it. These are amazing feats of mis-understanding we see in our Client Advisory Team... and it comes from not understanding the fundamental threshold concepts of Drupal.
Drupal is peculiar- and when you get to know it, it makes a lot of sense. New Drupal users need to get familiar with what are referred to as threshold concepts, to lessen that initial sensation of disorientation. Good trainers can scaffold the learning experience, to bring learners through this process, and teach essential best practices.
At our first Drupal training with our partners, Dataflow in Belgium, Wim Mostrey, the instructor, reported that participants were so surprised "Drupal was easy"! They kept on looking for the complicated way to do things. This is where scaffolding comes in.

Mind the gap

I was reminded of the Vygotsky's "zone of proximal development" and the importance of scaffolding in teaching when I read a recent article about one man's struggle to learn VIM, a peculiar text editor. In Everyone Who Tried to Convince Me to use Vim was Wrong (July 2010). Yehuda Katz writes about his perennial struggle to learn VIM. The most helpful response he got was "You’ll just have to put up with the pain until you get used to it." Attempt after attempt ended in frustration and he abandoned it- going to the plain and familiar Textmate. Spoiler alert: He finally masters Vim! He does so, not by plowing through and suffering, but by taking Vim on incrementally. He finds a way to go from what he does know, to what he wants to know. "I was able to get here because I used ... a whole slew of other common idioms, instead of grinding to a halt and trying to switch all of my practices at once." His post is a great snapshot of someone struggling to learn something so different from their prior experience.
A learning curve isn't the same for everyone. Likely, his friends who found VIM easy where already familiar with CLI (command line interface), and VIM isn't as much of a jump from that experience. I like to use the analogy of a Twister game. Have you ever played it? You match your "right hand on red, left foot on yellow", etc. The first time around, it's easy to position your hands or feet in the right colors. Yet each time, it gets progressively more difficult to make a switch; add other people to the mix and it's very difficult (which makes it more fun). This is a bit closer to how your mind works as well, your prior experience will affect how you approach something new.
Why does the notion of a "steep curve" bug me so much? Well, the analogy breaks down, and we seem to confuse the idea of a curve with a path.

First: Our paths aren’t all pointing in the same direction


In Dries’s graph of the Drupal learning curve, he showed the level of kick-assedness in proportion to time. This graph struck a chord in the community, and you see it referred to from time to time. Yet the more I looked into this issue, I discovered the flaws.
The "curve", really a path, implies, that over time, one will become increasingly versed in Drupal development finally culminating in being a full-fledged Drupal Developer. But not everyone’s goal of kick-assedness lies there.

  • A content manager may never want to learn theme and module development as Drupal use may be only a portion of their work priorities.
  • A site builder may not want to create custom themes.
  • A front end developer/themer may never want to touch on security audits or performance tuning.

Not everyone is on a path to becoming a core developer. Yet each of those roles has a viable path of its own.

Second: Misunderstanding steepness

I often read and hear people say “Drupal has a steep learning curve”. Well, not really. OK, this is nit picking, but a learning curve is measured by time spent learning to skills/tasks learned. Attempts (x) versus progress (y).
Does the graph below look ‘steep’?
a steep curve example, starts vertically, then levels to a plateau

Maybe it looks-intuitively- like it’s starting out hard, running up a hill. In fact a ‘steep curve’ represents big gains at the start with less gains over time, to a plateau. Things with steep curves are actually easy.
OK, I'm splitting hairs. It's just a turn of phrase, after all. I can concede that the notion of steepness of the experience does resonate; the metaphor of struggling up a mountain rings true with what a learner is facing. Somehow though, we’re misunderstanding the challenges of someone coming to Drupal to simply say “it’s a steep learning curve, just keep chugging away.” It's like the VIM story.
We should instead focus on scaffolding the learning experience and ensure that learners grasp the key threshold concepts.

Third: Not everyone’s paths originate from the same place.

The steepness new users experience is Drupal’s peculiarity. The features that make it powerful also make it very different from other systems. This is a conceptual problem. We don’t come to Drupal with a blank slate. We’re imprinted from other systems. We have expectations of how a new system will behave based on our prior experience. And when it doesn’t behave that way, someone will either think:
1) “I’m stupid” or
2) “The system sucks”
... perhaps depending on that person’s level of confidence.
A good teacher or mentor tries to gauge where a misunderstanding is. You detect where the conceptual gap is, and bridge it. The best way to do this is to frame the learning experience in terms the learner can understand. You come from a Dreamweaver HTML background? You come from Wordpress/Joomla? You come from .NET/Java development? Each background is going to prime you with set of biases that give your own special conceptual gap. Yet there are commonalities, and this is where the craft of teaching and training comes in.
In teaching, you are always trying to lessen the gap between what you teach and what people learn. What people can learn is a relationship between what they already know, and what they are capable of digesting at that time. The “zone of proximal development” that psychologist Vygotsky outlined in his theory, delineates this gap. Learners need appropriate challenges; too little challenge, and they’re bored. Too much challenge, and it causes anxiety.
It's important to find the commonalities and build the bridge from there.

How to overcome this?

Yehuda, who mastered Vim, is happy now. He has, at his fingertips, a really powerful text editor. It's peculiar, quite unlike Word or Text mate or any other simple editors. Now he can see, it works really well, much better than the other editors, VIM is built for text manipulation. What Yehuda was able to do is bridge the gap from the familiar to the new. I think Drupal is a bit like that.
Remember back in Drupal 5, there was an attempt to change from the word "taxonomy" to "categories"? It didn't work. We can't change Drupal's fundamental concepts to just be like every other system. It is these qualities that make it unique and powerful.
While we look forward to an improved friendlier looking UI in Drupal 7, new users will still face challenges approaching Drupal. I see this sometimes with new users at Drupal Gardens. Someone can circumvent Drupal, and lose some of the power and benefits. As easy as Drupal looks now, it is still markedly different from other systems.  We're also dealing with this in our materials and plans with Acquia's training program.
I'm open for ideas on how to help users overcome this. What we need are clear in-roads for people coming from different backgrounds. I’m hoping in the session I’m planning for DrupalCon: “Communicating Drupal visually” we can replace some of the metaphors with something better. We'll learn a bit about how to apply visual language and visual grammar to tough-to-grasp ideas. We'll be making useful visuals to be used to documentation, presentations at DrupalCamp, training and pitches to clients. I hope you can make it to DrupalCon, and join. This requires novices to work together with experts, so I'm hoping for a good mix.
Over the next few weeks, I'll be writing more about these threshold concepts, and we'll tackle them in the session in Copenhagen! If you can't make it, but would like to participate, please do contact me.
And of course, if you'd like to find out about how our Client Advisory Team can help or how Acquia Learning Services can build a great learning experience for you or your team, please contact me: http://acquia.com/training/contact

Link love:

Photo of Aaron playing twister by Hoyasmeg on Flickr, (cc)

Comments

Posted on by mathieso (not verified).

Metaphor for learning paths

Nice post, Heather.

Here's a geeky way to explain the learning-as-path metaphor, using state transitions.

The objective of learning is for a learner to be in a goal state. The state is defined as a collection (set) of procedural and declarative knowledge elements. Each learner starts out at some other point in the state space. The state space is very large, as there are many combinations of the set elements. It's unlikely that in a group of, say, 100 people, that two will be in exactly the same state to start with.

There are many paths from a learner's start state to the goal state. Each state transition is a change in procedural and/or declarative knowledge. Each transition costs a learner work. Different transitions cost different amounts of work. For a particular transition, different learners do different amounts of work. For some, a particular transition takes a lot of work. For others, just a little.

A learning curve is an abstraction of this process. It summarizes the work expended in following a particular path (or the average of a set of paths) through the state space.

But there are many paths that are possible. They are not all equal. The goal of an instructional designer is to support learning paths such that the work required for any transition on the path is less than some maximum.

Choose paths well, and learners will think that the software is easy to learn. Choose poorly, and learners will think that the software is hard to learn. It's the same software, of course.

This is just a metaphor. The psychology of learning Drupal is too complex to allow this kind of mapping. But it does show that:

* There are many different ways to learn. Some are more effective than others.

* Instructional design takes work and insight. The skills needed to design and then execute a learning plan are as difficult to learn well as the skills needed to write a module.

Kieran

Posted on by ultimike (not verified).

Heather,

Great post, but I think you danced around one issue a bit without coming right out and saying it: there is no single Drupal learning curve. There are many learning curves depending on the student's desired goal. The "myth" is not just that Drupal has a steep curve, but also that there is just one.

Dries's graph of the the Drupal learning curve is still relevant, as you correctly pointed out, it only applies to a small segment of people using Drupal. The learning curves for other groups of people are all very different. Clearly, the learning curve for a content manager is different than the learning curve of a Drupal themer.

Thanks for clearing up the bit about "steep" learning curves - now all you have to do is convince everybody to stop equating "steep learning curve" with "difficult"!

-mike

Posted on by Joyy (not verified).

Heather,
I am a drupal newbie and after searching through drupal information I decided to make an intro page for new drupal users. Though I have just started making it and is long way for completing. Hope you find it interesting. Check here, http://drupal.org/node/877140
Joyy