Getting more involved with Drupal

I’m really excited about the global sprint weekend for Drupal this weekend, so I wanted to share how I started to get more involved with Drupal, as well as some great resources that I’ve found helpful.

I started working with Drupal over five years ago now. At the time, I preferred to hand-code HTML and CSS for sites that I built, although I wrote some custom backend code with PHP and, yes, ColdFusion. I’m a team of one in my organization, so front end, back end, UX, information architecture, content strategy, those are all on my plate.

I’d put together a couple thousand page site that relied on a combination of Dreamweaver Templates, XML and XSLT, hand-coding, ColdFusion, a SQL Server database and probably some bailing wire. As I like to tell people, everybody builds their own content management system at some point. Once.

By the time I was ready to take on my next major task, overhauling our intranet, I found Drupal. I was very ready to use a flexible system that still gave me a lot of power and control, without having to develop everything from scratch. I got the go-ahead, and so I started to try to figure out how this whole Drupal thing worked. I read a bunch of books, looked for blog posts that addressed the problems I couldn’t solve, dived through the issue queues, and quite frankly, banged my head against the desk quite a lot.

Eventually, I figured things out, built a site, and I started building some Drupal sites on the sides too. I guarantee you that I did tons of things wrong. I still remember one of the sites I built, and I really cringe to think at how I set up the theme on that one.

Now I’m transitioning the main site I manage to Drupal (some of the live site is on Drupal, some is still on the previous system I built). I’ve learned a lot in the last five years, but I’m still learning so much.

For those first few years, I didn’t contribute back to Drupal all that much. I’d report an issue on now and then, maybe get involved in a discussion of why something should be this way or that way. I didn’t really like the command line interface, so patches confused the heck out of me.

About a year ago, I started to feel like the entire world of web development had changed, with tons of frameworks that I didn’t even recognize, and I frankly felt a little bit lost.

So I decided to start to do something about that. I started by signing up for Code School, and I’ve gone through a lot of their courses to help familiarize myself with newer front end techniques.

I also decided that I wanted to get more involved with Drupal. At first, I tried to just pipe in on issues where I felt like I knew something, particularly with the mobile initiative, as I’ve been doing a lot of work with responsive design.

Then I found some really great resources that helped so much with contributing to Drupal.

First of all, Drupal Ladder:

Drupal Ladder has a lot of lessons that help you to take small steps to get involved with Drupal. You start with things like installing Drupal on your computer. Installing git. Taking tour of the issue queue. Each step along the way is easy to do if you’ve done a previous step.

Then you can do things like practice how to test a patch or write a patch. I had been using Drupal for five years, and I’d never managed to learn how to apply patches. Thanks to Drupal Ladder, I gave it a shot.

One of the things that’s really great about the Drupal Ladder is that there are a lot of free videos from the awesome team at Drupalize Me that help to explain how to do some of the steps. You can find links to the videos through the Ladder site or by visiting the video series page:

Drupalize Me also has a larger guide that covers some additional things you might want to know when working with Drupal, such as basics of how to use the command line. Again, this set of videos is free, and I found them very helpful.

If you find these videos useful, you may want to look at subscribing to Drupalize Me at I’ve had a subscription through my work for the last month or two, and I’ve found it incredibly helpful. I’ve learned things that have filled in some gaps: techniques I probably should have known but hadn’t come across when trying to teach myself and figure things out on my own.

Another thing that has been enormously helpful has been Drupal Mentoring hours. Twice a week, there are two-hour blocks where some pretty knowledgeable people are available to help you out, one on one, to try out some Drupal core contribution tasks. They help you find tasks you can work on and then help you work through any issues you are having.

This mentoring is done through IRC, which if you haven’t used it, is basically a chat window. Very simple and straightforward. Again, Drupalize Me has a free video to show you how to use IRC:

One other challenge I ran into while working on mentoring tasks was that I didn’t completely understand how some of the code in Drupal 8 core was working. One of the things I’ve been doing to figure that out is to watch a whole bunch of session videos from DrupalCon Prague. I stumbled on one that I found particularly helpful, called Drupal 8 Ready.

This session goes through all the different skills you may want to try to learn to be more familiar with how Drupal 8 works.

What’s really great is that this session has a companion website that provides resources for each of these Drupal 8 skills, including links to videos of relevant sessions at DrupalCon Prague or other recent DrupalCons. I’m still going through these videos, but I’ve found them very helpful. Here’s the site with all the links:

There are other great ways to learn about new things in Drupal 8. Drupalize Me has been posting videos about different aspects of Drupal 8 on their blog: I’ve also found that another Drupal video training site has some free videos about new technologies in Drupal 8:

I plan to keep working on learning throughout 2014. Drupalize Me, Code School and a lot of other websites have video tutorials and more that are helping me to get up to speed. I’m trying to participate in Drupal mentoring hours, and I’m also trying to attend more local events. I’ve gone to a number of coding meetups and gotten some great tips from others at those meetups.

Since I’ve gotten started, I’ve helped work on six patches that have made it into Drupal 8 core. I’ve also written one change notice and drafted another. I’m hoping to do even more in this next year.

While Drupal 8 has a lot of new technologies I don’t yet know, I also feel there’s never been a better time to get involved with Drupal. There are so many books, so many blogs, so many video training resources: far more than when I first got involved.

I was intimidated for a really long time to try the command line, to write a patch, or even to test a patch. The resources above helped me to overcome the barriers I’d faced before so I could start getting more involved.

This weekend, the Drupal Global Sprint is a great chance to get the support you need to get involved. If you have a chance before you come, maybe take a look at Drupal Ladder and try a few of the steps. Getting Drupal installed on your computer is a really good first step. But if you don’t get a chance to do that beforehand, the awesome thing about a sprint is that there will be others who can help you out.

In many ways, I feel far more like a mentee than a mentor. There is so much I still need to learn. But really, that will always be the case. You blink your eyes, and the entire world of web development has changed. The only way to keep up is to just keep trying new things. And even if you feel like you don’t understand everything, share the bits that you do know with the folks who are working to learn those bits. The magic is that the person you teach something to probably knows something you could stand to learn, and by each of us sharing and participating, we all get better.

So if you haven’t yet tried contributing back to Drupal, give it a shot. There are a lot of resources to help you out, and it feels incredibly rewarding when you accomplish something that helps Drupal.

Hope to see you this weekend!

Twin Cities sprint information:

Global sprint information: