How to Learn Drupal
People seem to ask this question a lot. When you’re learning something, it’s comforting to know that you’re doing it correctly and efficiently and that you’re not learning the wrong way or the long way.
Therefore, once and for all, here’s my official 1 minute guide to learning Drupal.
General Advice
As with most things programming related, the best way to get up and running is just to do it already. Download Drupal, install it somewhere, and build a blog just to learn the ropes. You’re going to see terms like “node”, “taxonomy”, “module”, all kinds of words you’re not familiar with. They key is to research stuff like this as you come across it, and make sense of it all as you go.
I’m completely against reading all about something and trying to learn it before actually doing anything with it yourself; it makes a lot more sense to start doing it yourself and use the resources to help you along the way.
If you’re still going to read something before you get started no matter what I say, then read What Is Drupal by Tim Millwood.
Recommended Steps
There are, in my opinion, four basic steps to becoming a Drupal expert. Those are:
- Learning to use Drupal core for content administration. To learn: build a multi-user blog using only Drupal core.
- Learning to use the big boy contributed modules (such as Views and CCK). To learn: build an image hosting site complete with image resizing, a lightbox, categories, etc.
- Learning theme development (including the cool stuff that goes on in template.php). To learn: Build a theme suitable for releasing on Drupal.org.
- Learning module development. To learn: Find something that no contrib modules handle (something really weird like a mortgage calculator for California residents), and make a module to handle it.
Once you have a good hang of those four, then you can start cranking out some truly awesome stuff with Drupal.
As for some resources to help you along the way…
Books
If you like books, there are two great ones to pick up.
- Using Drupal - a really good intro to both Drupal site building and content administration with Drupal.
- Pro Drupal Development - the big boy in coding Drupal sites, complete with loads of info on creating modules and themes.
Screencasts
If you’re like me, you’d much rather see something done than read about it. If that’s the case, then the following sites have some really good Drupal screencasts for you to get up and running with.
- Drupal Therapy
- Learn by the Drop
- Mastering Drupal
- Finally, there’s a collection of slightly outdated but still good screencasts.
Getting Questions Answered
You’re no doubt going to have questions along the way. Whenever I have questions, here’s my typical process:
- Google it for at least 5 minutes, and if you can’t find anything…
- Ask in IRC. The #drupal channel at irc.freenode.net usually has about 500 people at any given time (although most of those people aren’t active at any given time), and that’s the hangout for core and contrib devs, so you’ll often get some really good help.
- If it’s related to a specific module, then ask your question as a “Support Request” in that module’s issue queue on Drupal.org.
- If all else fails, ask on Stack Overflow. There’s about 3 or 4 active contributors to SO that are more or less Drupal experts, so you’ve got a good shot at some help here.
- Post in the Forum on Drupal.org. I’ve never had good luck with this so I save this as a last resort.
If, at the end of this process, you still don’t have the answer, then my advice is to go back into IRC and ask your question every 3 or 4 hours until someone answers it or points you in the right direction.
Conclusion
Drupal is what some have called a “wall” project. That means, some projects have learning curves, and Drupal has a learning “wall” that seems impossible until you all of a sudden jump it (i.e., the lightbulb moment) and it all makes sense. Just stick with it until it starts to make sense and you’ll be just fine.