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:
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.
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
- A syntax-highlighting editor with *nix-style line-endings
- SCP / FTP
- 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
A basic understanding of HTML and CSS is needed, nothing extreme.
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
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:
- Important Drupal concepts:
- content type
- Common Drupal modules:
- Admin Menu
- imagecache and image
- Contemplate (and why it should never, ever be used for anything)
- how to roll or apply a patch
- general troubleshooting skills
- Drupal coding standards
- Hacker culture
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