If you already have a web host, obtain from them the names of their primary and secondary nameservers. Don't worry if you don't understand what these things mean. Just save the information somewhere. The information can usually be obtained from their FAQs or other documentation on their site, usually under a category like "domain name" or "DNS" or "domain name transfer" and the like. If you can't find it, email them. You'll need the information to point your domain name to your website after you buy your domain. Having said that, if you don't have a web host yet, don't worry. Just read on.
My personal preference is to register the name directly with a domain name registrar rather than through my web host. I've heard stories, in the past, of less-than-reputable web hosts that registered the domain under their own name, making them the owner of the domain rather than you (although I don't know if such web hosts still exist today). Registering direct with a domain name registrar allows me to make sure that I am registered as the owner, the administrative and technical contacts. Being the owner is vital — if someone else places himself as the owner (such as your web host), he can always decide to charge you some exorbitant fee for the use of the name later, and there is little you can do. The various other contacts are less vital, but may still play important roles, depending on your registrar. For example, for some registrars, the administrative contact's approval is required before a domain name is transferred out of a web host (or at least, it used to be). If he/she cannot be contacted, the technical contact is used.
Is your domain name portable if you change service providers? I’m starting a non-profit and I want to hold the name, but eventually I will fire someone to do the website development and want them to be able to use the platform they think they can work most effectively in. If I were to register with GoDaddy for services and get a free domain name… do I lose it if I switch to another web-hosting provider?
Your domain name is how visitors easily find you online. It is often the first step in getting your website started because it is like establishing your website’s street address on the internet. If you did not have a domain name, you would have to give out your IP address to everyone who wanted to visit your website, which would get confusing and be easily forgotten.
A great domain name is a concise, easy to type, and memorable URL that reflects your brand or your website’s subject matter. Avoid using hyphens, strings of numbers, or unnecessary words to make it easy for your visitors to remember and find your website. Remember: A great domain name is one that your visitors can type correctly on their first try.