The Drupal Learning Curve - Myth or Reality?

Does Drupal really have a steep learning curve? If you read the usual CMS comparison posts around the web that seems to be the general consensus. But I don't believe that is entirely fair and, as most things, it is all about relativity - how steep the mountain is depends on what is at the top of the mountain once you get there.

Most discussions regarding the relative merits of various content management systems end up presenting Drupal as a potentially powerful system but with a steep learning curve. People blame the weird terminology Drupal uses and a user interface that is not immediately intuitive. Terms like nodes and taxonomy don't directly relate to actual things likes pages and categories and once you install it is not clear what you are supposed to do next.

On the other hand, talk people that explain Drupal to clients and other website builders daily and you get a rather different story. Users seem to get how things work easily, after just a short initial walkthrough and before a day is over they are doing things in minutes that only a few years ago would take a team of skilled web developers several days to implement.

So what gives? Does Drupal have a steep learning curve or is it actually quite easy to pick up?

The answer is, as ever, a bit more nuanced. If you download Drupal and try to figure out on your own it presents, unfortunately, a bit of a challenge. But, crucially, if someone who has already gone through the nasty bits explains it to you it then becomes much much easier. I don't want to say that the Drupal UI is perfect as long as someone explains it but if I am able to (over skype) empower someone who has never managed a website to add pages, menus and generally manage their website in about 20 minutes that is not that bad either.

It also depends on what you call steep. If after one day of training one is able to go away and built a site with sophisticated navigation, a variety of content types, search and filtering based on a number of different criteria and with user interaction built it I wouldn't call that steep.

On the other hand, Drupal can do so much more than what I just described above. Any new user is able to realise that and gets drawn in to learning more and more. With over 4000 modules available and some of them easily competing in complexity with the basic Drupal system itself there is just so much more you can always do with Drupal. So it is not so much of a steep curve - more like an endless journey. But it's a journey with some amazing sights along the way.

Commenti

I think what you're not covering here is documentation. As a programmer, my 'default' method of learning something new is to sit down and RTFM. Drupal 6's 'manual' is very poor, and if it weren't for the excellent 'Pro Drupal Development' book, and some great IRC support in #drupaluk, I would have struggled a lot more.

Good documentation is crucial, and I can only hope it gets better in Drupal 7. You touched on Drupal's unusual concepts such as 'nodes' and 'taxonomy' - there are others, too, and when you face a function that has no documentation at all, and an unusual concept that you have never seen before in the wider programming world, you are forced to read the 'alien language' of the code in order to understand it.

A lot of effort is being put into Drupal 7's documentation by some great people. Let's hope it lets us shallow out this learning curve a little bit.

Matters are also made worse because a lot of people don't even touch on documentation (which is really improving all the time). They install and hope that they will be guided somehow or that the next action will be obvious. Talking with someone in a way makes up for the lack of documentation and the lack of wish to read the documentation.

I have to agree with you guys about the documentation, Pro Drupal Development really is the missing manual, for me RTFM for Drupal didn't help much.

On the other hand what I think people generally mean by steep learning curve is that anybodies first encounter with Drupal is going to be in the line of "What now?" and that scares people away.

With Wordpress for example you can just sit down and use it without any hassle whatsoever. But if you actually want to develop anything for WP it's probably an even steeper learning curve than with Drupal. I believe, and I think so does Mark Boulton and the rest of the Drupal 7UX team, that people who just want to use Drupal, people who are not programmers or other IT people, can do it without having to really learn anything. Then if you want to dive deeper you can, but that really isn't for everyone.

Documentation is *somewhat* the issue, but I have a different perspective on it.

What I find myself searching for (in vain, mostly) is anything that explains *why* would I do "x" instead of "y".

There are so many modules available, some with overlapping features, that for me the hardest part isn't answering the question "How do I do this?", but rather "I can see many ways to do this, which of these methods should I use?"

As a specific example, the results on a search for "Theming forms" for Drupal 6 ends up producing at least four distinct and unique ways to do it. Now, I'm sure each of those methods have their advantages and disadvantages, and there are probably some circumstances where each is appropriate depending on the amount of control you need. But nowhere do I find a comparative discussion on that point. So I end up trying all of them to see if I can identify the sweet spots for each. I know I haven't come up with an optimal solution, but it works for me, and fits into the category of "good enough for what I'm doing." I am sure I learned more in the process, but it took a lot more time than I wanted to spend on that issue.

Another example is the process for setting up a simple blog. I saw an article somewhere else (can't find it right now) that stated that if you wanted to set up a blog, you don't want to use the blog module! Their opinion of the "best way to do it" was to use views and (something else I don't remember). I remember thinking that it was an interesting idea when I read it. It wasn't an intuitive solution, and the author never explained _why_ you would make that choice, or how they came to that conclusion. But it was a creative answer to a fairly common question. Unfortunately I was left wondering, is that a good idea? Or is that just one person's opinion?

(I'm sure I could come up with other issues, but this response is too long already.)

Ken, I guess any sufficiently complex system will allow you to achieve the same goal in different ways and then we enter the rather nebulous world of patterns, best practice and that is a bit also where programming becomes more of an art than a science since we still don't have a way to mathematically prove that method A is definitely better than method B!

As a non-programmer, mostly designer and now web manager, I suggest people take a look at drupalgardens.com which is about to go into open-beta. Aquia is setting up a fairly painless way for beginners (and web devs who want to set up sites for small businesses, orgs and individuals) to dip their toes into the Drupal universe.

They are still working on the business model (free and premium accts. etc), but have developed a wonderful theming system, some basic installs (blog, product/service, campaign, etc.). They will upgrade the core and modules, are working on a basic set of contributed modules they'll support, and have a good Forum and also issue tracking set up.

They are developing an introduction to DrupalGardens which explains the main Drupal terminology, like content types and views (they have Simple Views, which of course doesn't do all that Views does, but is much simpler). There's still much to be done, but they are doing very well with it. For some sample sites, check out: http://sampler.drupalgardens.com/

It's a great introduction to Drupal and it will have much more flexibility than wordpress.com by the time it hits 1.0, imho.

That is very true. Drupal have learning curve, but it is much easier to overtake if somebody can give little bit guidance.

My friend started his first Drupal project and he was quite confused after beginning. I wrote short email explaining block system and give hints how to make very simple views. That was all help he needed, after while website was up and runnung.

My first approach was like a peek into the unknown. I "feel" that it is easy to do things with drupal but I didn´t known how to do it.
So I looked around and found a lot of great sites with tuts and/or great vids about drupal.
I.e. cocoate.com/de/drupal-6-deutsch (that was my start)
or mustardseedmedia.com (declares a module in 6 minutes, great)

The best way to learn drupal is to get a feeling of it. Install it, and poke around. Look what you see here and there. In that way you get an insight.

BUT: start with the beginning. Don´t try to set up a "facebook" or "amazon" at once.
Read tutorials about how to start. Or how to understand the philosophie behind drupal. Or how to understand "nodes".
Start with what drupal is. Get motivated by posts about why you better use drupal to set up a site.
It is a kind of a different approach drupal uses. So you sometimes have to reprogramm your brain.

I´m getting more familiar each day I´m working (playing) with drupal. And yes you can do things allways in different ways. And you get used to the sentence "I think there is a module for this" so you don´t have to reinvent the wheel.

Drupal gets easier the more you work with it. The easier it gets the more you work with it.