I think this should be thrown in, too, going from experienced of performing several branding exercises in SharePoint myself:
Ensure you build a decent foundation of how to efficiently build large numbers of CSS customisations.
If you want to overhaul the look of a SharePoint site to some significant degree, then there are A LOT of CSS classes that you will end up having to override. The last exercise I did resulted in a CSS file that was over 2000 lines long (before whitespace reduction/shorthand).
The most useful skill to have is being able to effectively use CSS selectors, including direct descendants (p > a {...
), sibling elements (span + a {...
), hierarchical selectors (#unique-element .container_class div span {...
), and the like.
The easy way to do it is to use something like Firebug to select an element, find out what CSS class is giving it the current style you want to change (like the font colour) and re-apply/override that style in your CSS style sheet. This can get you so far, but for a full customisation your CSS file will soon become uncontrollably big when filled with these 'hacks' as you go in to change more and more in your customisation.
Always ensure you understand load order of CSS files, too. Make sure your customised CSS file is loaded AFTER corev4.css, so your use of !important is kept to an absolute minimum.