Why not get some hosting sorted out and then install Wordpress or any other contact management system, there are plenty of free templates about and with Wordpress you can have a site up and running a lot quicker than it would take you to learn html & CSS.
Cheers
Ian
Ian makes a good point - in fact you could set yourself up on Google or Wordpress.com with a blog and be away in no time. If, however, you want to build something yourself, then with respect to learning HTML, CSS etc, I don't think there are any shortcuts.
W3Schools was mentioned. This is an excellent resource for starting to learn most if not all of the skills required to build a functional site.
I would also investigate implementing a web server on a PC, Mac or Linux box. Something like XAMMP on Windows or Mac, or just install apache on a Linux box. This way you can develop everything locally and upload it once you're happy with it.
As far as development tools are concerned - a simple text editor is OK, but something that highlights the syntax and any errors is worth having. I use Eclipse, which may be overkill for 'just' HTML and CSS,but a real boon if/when you want to start to run PHP.
Firefox supports a suite of development tools which enable you to check your HTML /CSS syntax, highlight CSS etc. This is worth doing to make sure that the code you write is compliant with the HTML and CSS specifications.
All of the things I have mentioned here are open source and thus free to download and use.
Time spent thinking about the design of the site - by this I don't mean the layout, but how the site is structured logically is time well spent (in other words, a site map). This will have a bearing on where components such as images, css files and so forth are stored. It will reduce the risk of having to rework the site as and when things develop.
FWIW I'm starting to think about redesigning my site for the third (or is it fourth?) time. This time it will be built using the Zend PHP framework, though this is probably a bit hard-core for a first site! It uses a design model called MVC or Model View Controller, which means that database (model), layout (view) and logic (controller) are separated. The best thing about it is that most, if not all of the things that a site needs are available in the framework.