Getting started with Drupal
A few friends recently have asked me for advice on how to get started developing websites using Drupal. I put together some information and thought I should post it to the web in case other people find it useful.
For starters, there are two books I would recommend:
- Using Drupal by Angela Byron and a number of other authors.
- Pro Drupal Development, Second Edition, by John VanDyk & Matt Westgate. (Make sure you gets the second edition, which specifically covers Drupal 6. There is an earlier edition for Drupal 5 which is now out of date.)
Of the two, Using Drupal is by far the easier book to read, but Pro Drupal Development offers much more in-depth information about Drupal's internal architecture and the technical details of Drupal programming. I would recommend starting with Using Drupal, because it can get you started building websites before even learning any actual programming code. The authors of Using Drupal include some of the top Drupal programmers around, but you can actually get a couple of hundred pages into the book before they even make you read a line of computer code. The book is largely written as a how-to guide for "click-together" website developers who build website by simply installing and configuring code that other people have already written. It is structured as a series of tutorials that walk you step-by-step through the process of creating a number of websites with different features.
To use either book, of course, you'll need to get a copy of the Drupal code, which is available as a free download from the Drupal website:
Drupal consists of "core" code and "contrib" code. "Core" is the basic system that runs on every Drupal website. It is carefully maintained and managed by Drupal's community leaders and is therefore very stable and reliable. Much of Drupal's power, however, comes from the more than 3,000 "contrib" modules that have been written to extend the core. Broadly speaking, most contrib code falls into two categories: "modules" and "themes." Modules provide additional functionality: calendars, the ability to handle audio, video and other file formats; integration with other websites such as Facebook; an online shopping cart that can be used to sell merchandise online; photo galleries; etc., etc. Themes don't add functionality but change the appearance of the website — the layout of individual web pages, colors, positioning of elements, fonts, etc.
Drupal's contrib code is contributed by numerous numerous people and varies widely in terms of quality and reliability. Just about anyone can contribute a module or theme, and some are so badly done that they don't work at all, while others are very powerful and stable and are used on tens of thousands of websites. A big part of the art of Drupal development involves identifying the right modules to use when building a site.
The Drupal website also has a lot of documentation, although sometimes it is less well-organized than I would like. Here are some recommended links:
In addition to the website, a number of Drupal-specific IRC chat rooms make it possible to ask questions and get them answered in real time. IRC (internet relay chat) is a form of real-time Internet text conferencing. You can access IRC chat with free software such as Colloquy or LimeChat. I use Colloquy myself but have heard that Limechat is more user-friendly. Both Colloquy and Limechat were written for Macs, which is what I use. I'm sure that Windows computers also have IRC client software that would work, but I don't know offhand what to recommend.
The best IRC chat room for general Drupal support is #drupal-support at irc-freenode.net, which usually has hundreds of people in the conference at any given time, so questions that you pose there will often get answered quickly. The Drupal website has additional information about their other IRC channels at: http://drupal.org/irc
The Drupal website has several specialized subdomains that provide additional information. For example, you can find the full code of each individual Drupal function documented here:
Finally, "Drupal groups" has hundreds of discussion groups organized by area of interest (subject area, location, etc.):
Oh, and one more thing: The most recent DrupalCon in San Francisco featured a number of talks for people just getting started with Drupal, all of which now have archived video online:
http://sf2010.drupal.org/conference/schedule
You can also find and download the videos from the Internet Archive: