I was around 15 when I purchased my first domain. Of course I used GoDaddy. Since then I have tried many other registrars, including (in no particular order):
In my experience, most people can't tell the difference between all the registrars. What could one registrar possibly offer to make it worth paying an extra $2-5 a year? Turns out, a lot.
First, the one registrar you want to avoid at all costs is GoDaddy. They have been known to buying domains that you have searched for in the past and then try to sell it to you at a higher cost. They also try to upsell you on extra domains or features that you probably don't need. If you are new to buy domains, avoid being scammed by using a better registrar (maybe from the ones I will talk about next).
If you just want to buy a domain without being bothered about any other features I highly recommend iwantmyname. They are a no-frills domain registrar, so they only sell domains. If you need email, hosting, SSL, or anything else, you need to purchase them somewhere else. They have a clean UI and is, in my opinion, the easiest to navigate since they don't have endless menus to go through. They also automate setting up your DNS records with many services such as Fastmail, GitHub Pages, and Tumblr.
This is where it gets interesting. If you are a large company, stop fooling around and just go with MarkMonitor. MarkMonitor only works with large companies (or anyone who is willing to pay their fees I imagine) who have business critical domain names. Registrars for businesses should mainly offer the following services:
MarkMonitor can pretty much check all of those conditions. It is amazing how few registrars check points 1 and 2 which should just be standard. Points 3 and 4 might not seem obvious at first so let me explain. Point 3 basically means that someone else can create an account at the registrar and be able to handle billing, DNS changes, etc. themselves as well. A lot of registrars don't allow this so you have to share credentials for the one account that can manage those domains, which is not ideal especially if you want to use 2-factor authentication. Point 4 helps prevent the issue where you card details are out of date or for some other reason the registrar is not able to charge you for a renewal. This can cause headaches later on when you find out that the renewal did not go through because your site, email, and services relying on your domains are down. They will renew the domains, then invoice you (and escalate if they don't get paid).
Now, what if you want some of the features MarkMonitor provides but aren't willing to pay the thousands of dollars needed for them to take you on as a client? This is where I believe Gandi comes in. They have a service called Gandi Corporate Services which is for companies that want more help managing their domain portfolio. This includes the important invoice payments that few registrars provide. The service costs $65 a month and you can cancel at any time.
Gandi also offers the largest selection of TLDs I have seen anywhere, although some of them require you to subscribe to their Corporate Services to purchase, supposedly because it requires more work on their end to register.
Other features Gandi has include:
These are the reasons why I use Gandi for personal and business use.
So my registrar recommendation is as follows: