I won't say that Drupal is for everyone. If you want your site up today, Drupal really isn't for you. It takes some work, some research, some trial-and-error, and some patience. However, if you're looking for something flexible, secure, and robust, Drupal might just be for you.
My hosting provider is GoDaddy.com. I purchased the domain name and hosting plan from them before I knew I was going with Drupal. Fortunately, they include all the tools you'll need to get going with Drupal. In fact, they will even install and configure a base Drupal website for you if you choose. I decided to go the long way, however, because I wanted the full experience of installing and configuring Drupal.
Drupal can be downloaded as a .tar.gz file directly from Drupal.org. Once I got my hands on the .tar.gz file, I pushed it up to GoDaddy.com's server via an FTP link I'd set up in Windows Vista. I decided not to uncompress it locally since I wasn't sure how permissions would be affected by the transfer from Windows to *nix, and GoDaddy gives you access to a SSH shell, so uncompressing on the server is no big deal. Once the .tar.gz package was on the server, I logged in to SSH and uncompressed with a "tar -zxvpf drupal-6.11.tar.gz". This created a folder with the Drupal files in it. I then issued a move command that placed all the files from the newly created "drupal-6.11" folder into my html root folder.
Now, if you didn't understand the last several sentences, don't give up! There is a load of really good installation documentation on the Drupal website. Yes, it helps to have some knowledge of command-line computing. Yes, it helps to have some knowledge of how web servers work. If you're a little short on either one of those, don't be discouraged. Read the documentation carefully, and go step by step. If all else fails, have GoDaddy do their auto-configuration for you.
Ok, so now the files were on the server. The next step is to set up the database. Drupal, by default, is configured to use MySQL server for it's backend. Since GoDaddy provides up to 10 MySQL databases, this was no problem. I got into their MySQL configuration manager and set up a new database. I found out there is a catch to this: MySQL databases are actually set up during a job GoDaddy runs over night, so you might have to wait to continue your setup. In hindsight, I probably should have set up the database the day before installing the Drupal files, since having an unconfigured site just hanging out there isn't a great idea. But it worked out for me.
Another thing to keep in mind if using GoDaddy as a host is that their web servers and MySQL servers are different, so you'll need to know the hostname of the MySQL server to properly configure Drupal. Fortunately, this is on the MySQL configuration page at GoDaddy. I just copied and pasted it into the Drupal configuration... which we'll get to next.
First Run and Configuration
The first time you point a browser at a new Drupal site, it runs a configuration page that allows you to set everything up, including your database, timezone, name of your site, and other global settings. It's really quick and painless, but like other parts of the installation, there are some gotchas.
First of all, you'll need to make a copy of a settings file in the sites/default directory on the server. This is outlined in the Drupal documentation. Second, you'll need to temporarily set the permissions of your settings file to allow the server to write to it. Again, this is easily found in the documentation. Not doing either of these will cause Drupal to throw errors at you, and the configuration won't go through.
Once you work your way through the configuration screens, you'll be dumped into your site. One of the things that people complain about with Drupal is that it's administrative screens are actually integrated into the main site. People say this can lead to confusion. I understand where they're coming from, but after a while, I got to understand the difference between the site and the admin pages. It takes some getting used to, but once you use it for a while, it really isn't a problem.
As a programmer, I can appreciate the complexity of a system such as Drupal. They refer to it as "Community Plumbing", which is a really great way to describe what Drupal does. It's not the face of the website, though it does contribute to the design and look of it. However, it does more than that. It allows administrators to control, really very finely at that, the functionality of the site. They make no claims at being the prettiest system out there. They're much more concerned with being the most flexible, extendable, and functional.
Drupal is going to take a lot of work. Perhaps more than some of the alternatives. But in the long run, I think I'm going to be very happy with my choice. I'm looking forward to learning about the API, as well as how to properly upgrade and maintain the core software. Everything I learn, I'll share. Just look for "DRUPAL" posts here for more information.