I ask this question because it is in relation to Scott's thread here. I understand we have a WordPress stack exchange but I wanted to know before I dive into WordPress how designers have approached learning. Did you find it easier or beneficial to just dive into traditional themeing or did a pre-existing framework help? I've debated frameworks and I have spent months researching possible issues because I would like to implement Woo and BuddyPress in my CMS but I'd hate to dive into a framework and realize that it isn't compatible with what I need to do. What experiences have you had and is gantry a possible solid solution?
I have built a WordPress theme from scratch only once, it wasn't fun. There weren't a whole lot of resources out there for themeing from the ground up; most guides I came across were for an older version of WordPress and already obsolete. Unless you are already familiar with the WP architecture, diving right in and trying to build your own template from absolutely nothing can be overwhelming.
I really did not want to just modify a pre-existing template to hack together the design I was aiming for. I eventually found a useful resource, the BlankSlate template:
I wouldn't really consider this a framework, but if I had to create a WP theme again this is where I would start.
Using WordPess is not so much about front-end development as it is about back-end function.
To me WordPress, or any CMS - Drupal, Joomla - isn't about design, it's about structure. Building a secure, functional, database user system is not as easy a task as designing a front-end appearance and layout. Wordpress is very easy to "skin" but the back-end PHP can be challenging to structure from scratch. Especially if you don't fully understand PHP.
While I don't really use Wordpress in favor of my own CMS, I do see a great deal of value in the plug in architecture of the PHP. This allows for easy deployment of back-end features. This is something which can't be accomplished by most designers. After all, knowing HTML and CSS doesn't often mean you know PHP.
In terms of "theming"
All CMS systems can be themed or skinned. Some easier than others. There's nothing overly complicated about skinning Wordpress. It's really a simple matter of familiarizing yourself with the CSS primarily, then knowing enough about CSS to alter it accordingly. The same holds true for Drupal, or Joomla, or almost any CMS system I've seen.
I would not jump into a CMS system simply for design. But if you need actual content management, well.. that's what they are there for. Knowing how to skin the various CMS product can be beneficial to any designer. I've skinned many a site I didn't originally set up.
As for using lesser, more proprietary CMS products, I'd avoid them for client work. Primarily because they are not as tested as the big boys. I know that if I have to alter a Wordpress/Drupal/Joomla front end I can and it'll remain solid. Some smaller packages integrate code in such a manner as to make edits more difficult and in many cases dependent upon each other.
If you must use a CMS, I strongly suggest sticking to one of the more popular systems and learning how to use that system even if it appears more complex.
When I learned how to theme, I didn't really know PHP at all, so I modified Kubrick - the default of the day - to get what I wanted. That's obsolete now, but it might do you well to find a theme that's similarly simple and well-supported and modify it in order to get a feel for how WordPress theming works.
These days, I'm working with _s (pronounced 'underscores'). It's made, if I'm not mistaken, by people who work for Automattic (the people who make WordPress), so I trust that it's made by really competent people and it'll work well with the WordPress core. It's free, too! They wrote an article to explain the theme - they bill it as a "1000-hour head start."
The way I look at it, if it really is a 1000-hour head start, then there's really no reason for me to not work with it (or a similar bare-bones framework). I don't know WP's code inside and out and therefore if I build something from scratch I'll probably not account for every use case or just miss out on the full power of what WP does.