Drupal is Lego, not a "learning curve"
In the LinkedIn group Drupal Community Network, there has been a discussion started by the question: "Drupal for a novice or newcomer? Good Bad , Ugly and why?"
This was my response to that question:
Drupal = good, whether novice or expert. The thing to remember is that novices don't stay novices. Why start with something "easy" just to have to start all over again with something else when you outgrow it? But you can't outgrow Drupal. Drupal will more than keep up with you as your site grows and as your knowledge grows.
A good part of why Drupal is (in)famous for having "a steep learning curve" is because when people hear of all the things Drupal sites can do, they tend to want their Drupal site to do those things, too. And they want to be able to do everything right away — but there is no system in the world that lets you do everything and anything —easily— right away.
Right out of the box, Drupal —even Drupal 6.x— can easily be used for a personal blog or basic news site. Add one of many free themes (just a matter of uploading & expanding a file and then clicking a few buttons), and it becomes an even better looking site. Start with Drupal 7.x (released in January) and it is even easier and nicer right out ofthe box.
But it is unreasonable to expect to be able to create complex sites like Whitehouse.gov or Grammy.com easily as a novice. Of course, if you are building such complex sites, it is easier to build them using Drupal than in anything else I'm aware of (which is more than a good part of why those sites were built with Drupal).
So, yes, Drupal is good —great, even— for a novice or newcomer, whether you're just new to Drupal or new to website building entirely. It is incredibly powerful, but you can start simply and learn as you go along.
As the discussion progressed, and as people shared their own experiences with Drupal and other CMSes, coding was mentioned. I've noticed a lot of discussions of the merits of various CMSes, especially Drupal, tend to get bogged down in discussions of coding, as if being able to code was essential to building websites using Drupal. This is not the case at all! As I noted in the discussion:
I build flexible, complex sites using Drupal 6.x and 7.x without touching any code at all. The few times I have done any coding, it was only in the subtheme. (Most of the time all that is needed for the subtheme is to change the CSS.)
Coding is a last resort in Drupal. "The Drupal Way" mainly comes down to: Don't re-invent the wheel.
So, with regard to coding, that means use existing contributed modules to add functionality. If you do have to create a custom module, do your best to contribute it back to the community -- if you needed that functionality, chances are others want that ability, too. Share and help others, as others are sharing and helping you, so everybody can avoid re-coding the wheel.
(The Drupal Way extends to structuring your site for content, too: sites can be and should be set up so users enter content once, and then it shows up in as many different places as desired, automagically.)
After some more talk of coding (which I contributed to —my bad!), Steve Ringwood made an excellent point:
There is a fair amount of talk of coding here. I like to encourage new folks to look at the "legos". Between content types, views, panels and others (I like the display suite) you can achieve a lot without any coding. I think it valuable to understand what you can do first, before writing code.
The Legos analogy really suits Drupal. In Drupal, just as with Legos, you can build very simple things (CayucosLioness.org) or you can build very complex things (MTV.co.uk). You can use just the original rectangular Lego bricks (Drupal core) or you can add specially shaped Lego parts for added functionality (contributed modules). You can even, if you want, mold your own pieces (custom modules —though I'd say the analogy breaks down a bit here, because it is much easier to write your own modules than mold your own Lego pieces!)
Yet despite the Lego professionals who build incredibly detailed custom models or even the Lego fans who build the large and complex Lego kits of the Taj Mahal, Tower Bridge, and the like, nobody talks about Legos having a "steep learning curve". To the contrary, we tend to think of Legos as a child's toy, suitable for 5 year olds!
Just like Legos, Drupal grows with you. And, like Legos, your imagination is the only limit to what you can build with Drupal —including building simple websites easily.
So let's stop perpetuating this false notion that Drupal has a "steep learning curve". Drupal is Lego. Come play!