Drupal is a major improvement over our previous CMS solution. I like the fact that it uses standard web technologies that are widely used. I like that I can go back to the source code to answer a question or address a problem. I like that it's flexible and extensible. I like that it has a large community of knowledgeable and helpful users.
But one thing I don't like about drupal is it's documentation. For the most part it's pretty good (it's better than many other open source projects). In fact, A good portion of Drupal is very well documented, especially older features. If you're needs are basic or you are familiar with Drupal 6 you should be able to get by without too much trouble. However because Drupal is a somewhat large project, there is a large amount of documentation. This can make getting up to speed a daunting task for new Drupal developers. This is compounded by the fact that Drupal was designed to be a modular system in which many apis have an impact on the end result of any code. This means that after you grasp the Block api well enough to create the traditional 'hello world' block, to do more you need to go read the Database api, then the Render api, then the Theme api, and so on.
Additionally, Drupal 7 introduced substantial changes, and the documentation has not entirely caught up yet. Some of documentation for the api changes are still in transition or incomplete (see Field api, Field Attach Api, Cache api).
Despite the documentation issues, drupal is still a pretty great platform to work with. And with some persistence there is enough information available to get you started. One of the best is the Examples module http://drupal.org/project/examples. api.drupal.org has some good information on it, but it can be difficult to navigate. Don't forget about "<?php drupal_set_message('<pre>' . print_r($whatever, true) . '</pre>') ?>" for when you need to examine the contents of a variable. And if you're really stumped, you can always go back to the source.