It is very common for people to have a hard time starting out with Drupal and gradually improve their relationship with it–I mean both the software and the community! I'm going to take the liberty here of sharing some of the insights I have gained over the years that can help you in and help you through the tough spots.
My history in open source
I started actively contributing to the PHP community in 2000 and Drupal a few years later, so I have had time to figure out how you can find your place and become an active member of an open source community. I presented sessions titled Come for the software, stay for the community and This is horribly broken - how can we fix it, at Drupalcon Copenhagen 2010 and Drupalcon Chicago 2011 respectively, approaching the problem from two different angles.
Get into Drupal, the software
While Drupal is great software, you still need to add modules to get the features you need for your website, and themes to dress it up. Most people find it hard to pick the right modules and figure out how to assemble their site with the thousands of more or less compatible building blocks available. Thankfully, help is available nowadays, in the shape of books like Using Drupal, a stream of Drupal.org success story posts detailing site recipes, and the increasing numbers of ready-made distributions. There is even a site called Drupal Distro Watch to help you find your way through the maze of distributions available – drupal.org doesn't offer a good way to follow these developments, yet.
Keeping your finger on the pulse of the community can also help you follow the constant innovation that is going on. Site recipes, techniques and technologies can be considered best practices one year and obsolete the next. Your best community resources are the Drupal Planet and Groups.drupal.org. If you don't subscribe to the planet and find the groups that talk about the topics that interest you on Groups.drupal.org, you are missing out big time!
Get into Drupal, the community
Get to know Drupal in person! Drupal is as much about its community (if not more) than its software. The best way to become part of it is through local meetups (technical and social meetings of all sizes) and Drupal Camps (usually one- or two-day mini-conferences with up to hundreds of attendees). You can find these on the Drupal events calendar (and Drupal Planet and by finding your local or regional group on Groups.drupal.org). Meeting people involved with the local Drupal community can give you friendships, contracts, business partners, employees or even just a bunch of fun.
So now you have a problem
Once you know some Drupal, some Drupal people, and some Drupal people know you, you have a better chance of getting your questions answered or getting some help when you are stuck, neck deep in your Drupal project. One thing, though: being polite and articulate gives you the best chance of getting (good or productive) answers. Being rude or expecting that your priorities are other people's won't get you very far. If you can establish that a problem you are having is a problem with some part of Drupal, learn to turn your polite articulate questions into concise issues for the module in question–include enough information to reproduce the problem, no more, no less. Submitting issues is a great way to contribute to the community and doing it well can get problems fixed and boost your reputation as a productive Drupalist. People might find your issues later and work on them, or others might decide to steer clear of a particular module when they read your issue.
Submitting issues is still no guarantee that they will be solved any time soon, if ever. Sad, but true. If you want an issue you submitted to get priority treatment, finding the right people can help! Project maintainers are listed at the top of the project page and Drupal 7 now has a MAINTAINERS.txt file where you can look up people to talk to. Most project (module, theme, etc.) issue queues have some dedicated volunteers who spend time there, too. If a module is critical to you, these people might well have similar interests and be your best audience when looking for help, but it's still no guarantee. All of the above mentioned people are busy. You might have luck with people active in popular discussions about your topic or module on Drupal.org. Check who edited relevant documentation pages recently, names that come up in commit logs and files ... if you come up with any other clever ways of tracking down helpful people, I'd love to know how you did it!
Of course my very bright colleagues at Acquia and I, don’t just know about the intricacies of various modules, we are also eager to help you architect your site and fix issues from small to highly complicated. Whether you use Drupal Gardens to build your sites, need your custom Drupal setup assembled or scale to big enterprise needs, we help you find solutions for your problems.
Everything you do with Drupal is a contribution
I looked at Drupal.org statistics while preparing for my Drupalcon Chicago session, and saw that there were 2.2 million unique visitors on Drupal.org in January 2011. In that time, 7000 unique users submitted posts and 10000 unique users submitted comments. This means that for every poster, there are about 300 who will just consume the content. This means that your contributions are very valuable! Even if you only submit issues, you are making a contribution, but you’ll be exceptionally well-loved if you help issues move forward or improve documentation pages. Find places where you can help out, become a household name! And by the way, making a name for yourself by being helpful will help you get your issues fixed, too. People will know you come back with contributions yourself. Anybody can contribute to documentation on drupal.org, the documentation pages are free to edit. If you know a foreign language, translations are easy to add to and even micro-contributions are very welcome and important.
Welcome, you've made it!
If you made it this far, you are a full-fledged, card-carrying, secret-handshake-knowing member of the Drupal community. If you can find time to contribute, do so. Make your voice heard; do presentations about what you know at Drupal meetups, camps, cons; blog about Drupal and get your blog on the Drupal Planet; contribute your custom modules to Drupal.org; submit issues as you find them (and work on them yourself). You’ll be thankful you did, the rest of us will be thankful you did, and we will all benefit from being part of the community instead of just pulling down the software as it is being produced.
See you there!