Learning Drupal: avoid PHP code to start with

When you are new to a technology like Drupal, it can be difficult to find your own learning path. Coming to Drupal with a PHP background, I reached for the top shelf & grabbed the heaviest-looking manuals available. I dived straight into coding. In retrospect, while this felt like a shortcut into the dark interior of Drupal at the time, it was probably a long way round. It was hard to get a bird's eye view of Drupal & all too easy to lose the thread of what I was trying to achieve. I think it would have been quicker to avoid programming until I'd understood Drupal's components & how they are stacked together. You can build and edit these through Drupal's administrative UI. Grasping the concepts of creating menus, building forms & displaying data before coding would have saved a lot of time & smoothed the learning curve. The difficulty with learning Drupal is that there are so many ways to do anything. Seeing the proverbial wood for the trees can take a long time.

My advice to a new recruit, even if they already know PHP back to front, would be:-

  • install Drupal 7;
  • work out what content types are & how to build them through the UI. Explore different data field types by building some content types;
  • play with some common modules to get a feel for how modules work. How about 'blog' or 'poll', which are installed with Drupal core? install drush (handy command line tool) & explore using it to install contributed modules, or even whole drupal sites;
  • explore building 'Entity Relationships' through the UI - ie how to relate one content type to another (eg owner and pet, or album to artist);
  • get on top of the essential modules 'Views' (lists data for you when you provide criteria & many other things besides);
  • look at 'Context' to drive your navigation & 'Display Suite' modules to help you with layout. Steer clear of any PHP until this point.

Most of these steps are part of what Drupal calls 'site building', and I would say it is the best route into understanding Drupal in the round. How did you learn Drupal? What tips would you have for learners?