Registering a domain is very simple; you just need to hop over to some domain registrar and pay for one (they typically cost about $8.00 USD per year). Whatever you do, do not use GoDaddy; they are a deplorable company and should be completely avoided. Off-hand I cannot think of any quality registrars to recommend because I have a friend who runs a registrar, so I use his to help him out. It's right here if you feel like using it, though I'm sure some other user on here and recommend a better place.
As for hosting the site itself: that depends on what it is you want to do. If you just want a LAMP stack (Linux/Apache/MySQL/PHP) then you're spoiled for choice; those are incredibly ubiquitous. I've used APIs Networks in the past and they were a solid host. I've also heard good things about Lithium Hosting but haven't used them myself.
Personally I have a VPN (Virtual Private Network) with Beta Force and have been more than happy with them. Using a VPN is more complicated, since you're just given a server with nothing installed on it other than an operating system, and it's up to you to setup your server. I personally don't like Apache or PHP, and don't recommend using either, so I use a VPN to let me use Python and Ruby web frameworks at my whimsy.
Having said that, there is certainly nothing wrong with using a LAMP stack, and using shared hosting that has all that setup for you is significantly easier, which is something you are probably going to want as a beginner. In the end it's up to you: I recommend learning Python over PHP, but using Python will make things trickier for you at first (once you learn and get used to it, it becomes second nature).
Can't really help you with designing websites though; I'm not very good at that. All I can say is you'll need some kind of image editing software (I use Photoshop) and learn how to make pretty things (I suck at that part).