Binary Redneck

Prerequisites

I was recently asked what one needs to know before becoming a Drupal developer. It’s a tricky question, both because Drupal draws strength from the diversity of our community, and because it’s hard to pinpoint the precise point where one becomes a dev. Below is my attempt at an answer; feel free to suggest additions or changes:

The Basics

Have Patience

Rome wasn’t built in a day, nor will your Drupal-fu be. Prepare for trial and error; it’s part of life in the open source world.

Speak Fluent English

While Drupal itself has been translated for use in many languages, the lingua franca for development is English. English is spoken in the issue queues, on the [contributor IRC channel)(irc://irc.freenode.net/drupal-contribute), and at DrupalCons. If you don’t speak, read, and write English fluently, you will miss out on most of what is going on, and you will never reach a high level of Drupal developer-fu.

Use Drupal

You might think this goes without saying, but we do get wanna-be devs who don’t really grok what Drupal is or how to install it. It’s not necessary to be an expert Drupal admin before your first issue queue visit, but you should have installed drupal at least once and be be using it regularly.

Understand Your Computer

We’re accustomed to walking new contributors through using git, rolling patches, etc. We’d rather not have to teach you how to use:

  • Your OS (desktop and server)
  • A web browser
  • email
  • IRC
  • A syntax-highlighting editor with *nix-style line-endings
  • SCP / FTP
  • SSH
  • Your web server
    • basic set-up
    • configure domains
    • view logs
  • Your database server
    • basic set-up
    • create databases
    • create users
    • dump and restore databases
    • empty a database
    • manage permissions
  • A search engine
  • A syntax-highlighting pastebin
  • An issue queue
  • api.drupal.org

Understand Markup

A basic understanding of HTML and CSS is needed, nothing extreme.

Understand Programming

It’s not necessary to come in knowing PHP, but if you don’t, you should have enough programming knowledge to pick up a new language quickly. Some of our devs also know Javascript (especially jquery), some don’t; its usefulness depends on what kind of Drupal work you like to do.

Finally, and most importantly,

Know How To Be Worth Helping

  • Ask each question in the right venue.
  • Pay it forward by supporting others, doing issue queue triage, testing patches, contributing code, and documenting things.
  • Be patient.
  • Observe good IRC/forum/ML/issue queue courtesy.
  • Have thick skin; take criticism well.
  • Ask Smart Questions
  • Don’t be a Support Leech.
  • Be willing to try things out.
  • Embrace Best Idea First

Bonus Round

You don’t really need to know this stuff when you first show up, but any of it that you do know will be helpful in some way:

Resources

Drupal.org docs api.drupal.org Drupal.org Forums Drupal IRC Channels groups.drupal.org Drupal Planet Drupal.org Mailing Lists The Cathedral and the Bazaar The Jargon File Using Drupal Pro Drupal Development New Drupal Developer Toolkits W3C