All right everybody. I've got to admit, I'm frustrated.
I'm frustrated every time I'm deep in Drupal code, and I come across an issue where Google sends me to an unanswered question in a Drupal forum. I'm frustrated when somebody asks me the best way to learn Drupal and I have to tell them that the resources are pretty sparse unless you get paid training and books. I'm frustrated when I search for an error message in quotation marks, only to find 3 results linking to comments in issue queues of modules I don't use. Really? Drupal powers 2% of the web. I KNOW that I'm not the only person who has seen this issue before.
I'm talking to you.
So that's why I'm talking to you, a relatively unknown, unassuming Drupal developer. Maybe you do Drupal during the day, and come home too exhausted to think about Drupal anymore. Or maybe you're spending your nights and weekends trying to beef up your Drupal skills, since nobody will pay you to do it during the day. If you're anything like me, you don't have hundreds of core patches, you haven't been working with Drupal since version 4.6 and you haven't spoken at Drupalcon.
I'm not talking to the webchicks or the eatons. I'm talking to you, who feel like your small contributions don't make much of a difference because they languish in obscurity. You with that contributed module that's only being used by a handful of sites. And you, with a Drupal.org account, and no contributed projects at all. I'm especially talking to you.
Because here's the thing. You and I live and breathe and love open source and we love the open web. We love phrases like "the sum of all human knowledge" and thinking about how a kid in Africa or India could potentially get on a computer and educate himself out of poverty. But then when it comes to the work we're doing, we're getting challenged on all fronts and we can't find the answers we're looking for without trying to figure out how IRC works. That vision hits reality and breaks down in a big way.
You've solved problems the hard way.
If you're like me, then most of the knowledge you've gained about Drupal comes from solving problems the hard way. It's come by var_dump-ing monstrous arrays to your screen over and over, just so you can see what is going on. It's from chasing down one function after another as you get deeper and deeper into something you don't understand. It's from that very first white screen of death, which brought everything to a screeching halt, and you tried in vain to remember what changes you made last (Version control? What's version control?).
The abstractions in Drupal make it tough to ask the right questions. My first slideshow in Drupal was a joke, because I didn't know that I when I was looking for slideshows, I was supposed to be looking for nodequeues, views, and the jQuery cycle plugin. How was I supposed to know that a single image being displayed in a slider was supposed to be built with a view. Views were for making lists. This doesn't look like a list.
We can't keep relying on people verbally passing down knowledge about the right module combinations to use in obscure IRC conversations, or in closed discussions at work. That's the old way. It's like 200 years ago, when all the knowledge was held in the universities, and you had to pay to get in so those people could tell you how the world worked. That doesn't scale, and it's not how knowledge will be distributed in the future.
You're doing it wrong.
At least somewhere along the way, you felt that you were doing it wrong, and you were right. I was doing it wrong too. I'm still doing it wrong. I know that because I always find myself working around Drupal in a certain way, only to have a friend or co-worker show me a much better way to do things. "Oh, you should use dpm()." Say, what? The most recent revelation was the "examples" module. Where was this 8 months ago? How was I supposed to know this was here?
I KNOW there are things that I'm still doing wrong, but nobody's ever showed me the right way. Unfortunately, I don't know what I don't know, so until I do, I'm still going to continue doing it wrong.
Real artists click "Publish"
That's why it's so important that you take that thing that you just figured out, copy and paste it into a body field, and click publish. There are probably a lot of reasons why you haven't done this already. Reasons like deciding whether you have the time to maintain your own blog, or not feeling good enough about your design chops to make it look the way you want. Reasons like, "nobody's going to read it," or you're "not a writer," or your spelling is bad, or you want to, but can't seem to get around to it.
And I'll be honest, you're right. You are not a writer, and your spelling IS bad, you'll hardly have anybody reading it, but that doesn't matter, because every time you click publish you're telling the world that here, in the Drupal community, we give whatever we can offer to make our community stronger. It doesn't have to be perfect. It doesn't even have to be good. Are you a coder? Just copy-paste that code in into a body field, add a sentence that says what problem you solved and click publish. Are you a site-builder. Just write "How to ____________" at the top of the page and post a series of screenshots. Start there, and don't worry about posting garbage, because most of the stuff on the internet is garbage and at least your garbage is well intentioned. You let Google worry about identifying how your garbage is useful, and bringing it to the person who needs it. They're getting better at it every day.
We need more voices, and we need more diverse voices. We need voices from the southern hemisphere. We need voices that worry that their English isn't good enough. We need the voices of people just starting out and feeling slow and stupid. You just learned where the logout button was? Cool. Tell us about it. You made a mistake and blew up your site? Bummer. Tell us about it. Whatever you're working on, I want you to tell us about it because if you get in the habit of telling us about it, then that habit will pay dividends over time and everybody will benefit together.
And if you find that it's taking too long to write it out, then stop trying to write really well, and start writing with your own voice. It won't sound perfect, but that's ok. This isn't a research paper. It's a good thing too, because nobody likes reading research papers.
Again, don't worry about readers, but if that's important to you, just know that it's pretty easy to get on the Drupal planet blogroll (shockingly easy… like way easier than getting project maintainer status). Don't feel guilty that you're not adding it to "the docs." Yes, it's great to contribute to the Drupal docs, but you don't always have the time or energy to find the most relevant documentation page, write your contribution out clearly, and post with confidence. And don't worry about the design for your blog. I contributed a blogging theme for developers, so you can use that if you want. Or just use Bartik. Or Drupal Gardens. Heck, use Wordpress. I don't care. Use anything… just use something.
More than just code.
We're at a time in Drupal when we desperately need to help each other. Drupal 8's coming fast, and people are starting to port their modules. API's are still shifting and documentation's thin. We've got projects being forked and a lot of unanswered questions. All the while, Drupal's reputation is getting stronger as it's used for bigger and better projects across many industries. We're going to get through this and come out stronger on the other side, but we need your help. Together, we can show that Drupal isn't just a pile of code, but a community of people of all who love to learn and want to share their knowledge and experiences. Not just their code.