Problem with the Drupal learning curve
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.
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’?
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
- View slides from Design4Drupal at Stanford: Mastering Drupal: Getting Up the Drupal Learning Curve
- Discussions of the learning curve in Drupal by Ronald at Istos.it (July 2010)
- Watch 50 Drupal 6 videos to help you climb the Drupal learning curve at DrupalLove.com
- Is Drupal THAT hard? - The "Drupal Learning Curve" is a Myth! at Drupal North Carolina (Jan 2009)
Photo of Aaron playing twister by Hoyasmeg on Flickr, (cc)