Early in any freelancer, college grad, high school student, or any other developer's career, there is a need for a website. This website will need a domain, an email, and HTTPS support. In all honesty, most new developers have a small budget. Lucky you, this tutorial is budgeted for anywhere from nothing to fifteen dollars (USD).
You always want to know who you want to host with before you do anything with the rest. Who you can host with can determine anything from DNS, the HTML/CSS, the email service, and where you can buy the domain. There are several hosts to pick from, and some are not free. I will mention only absolutely free ones.
Heroku is a PAAS company owned by Salesforce. It is one I see recommended very often and has support for many languages. Heroku is not user-friendly, at least for some. Heroku is also very limited in terms of free plans, with a significant amount of limiting.
Netlify is another PAAS, like Heroku, but independently and privately owned. It only permits one person on the account, and some limitations of its own, but is one of the more lenient hosts. Like Heroku, it is not user-friendly for most but has a better workflow for static websites. Heroku would be more suitable for complicated websites, while Netlify is a reldigntityiable middle-ground solution. However, most developers need a reliable, long-lasting, and static website, where would one of those be?
GitHub Pages is a sub-service for web-development developed for GitHub users. GitHub Pages allows for a static website, it doesn't have to be simple, but without a backend. You would not be allowed to run anything with a database, for example, for several good reasons. GitHub Pages are available to public repositories, and there are hundreds of users using GitHub Pages, so they want to limit resource use.
Now there are several other solutions out there, both free and paid, and you can host your own if you wish. These are what I recommend.
It is probably best to know who your DNS manager will be before you buy the domain. Not only will it help you pick email services a little easier, but even HTTPS management, and even subdomain management. For this, I usually recommend Cloudflare, as you can kill two birds with one stone. Three if you want to buy a domain from them. '
For SSL, you have many choices, such as Cloudflare and LetsEncrypt, as the two most popular free ones.
Before you pick your domain registrar, know where you can host your email. Why? Some email services allow you to buy domains with their service, like Hover and Zoho, for example. Some website hosts will also provide either free or paid email services. Also, note that no two email hosts are equal. For example, many people will go to Gmail as the first solution, but Gmail is limited. Some providers will allow for custom domains for free, paid once, paid monthly, and free but limited. Others run on BYOD only. Some seem paid only but have free options hidden. Some have email limits, some limits are high, and others are low. The point is, email hosting has a lot of options, but I come with three. One has free unlimited emails but no free custom domains, one is a provider that runs near-exclusively on the BYOD system, and the other is a balanced mix of the two.
Gmail is a well-known email provider. Google owns Gmail but is known for its privacy concerns. Gmail is centralized in many ways and is suggested if someone is using a Google product. Gmail only allows for accounts with the @gmail.com email, and common names are harder to get simple email addresses.
Zoho is a lesser-known email provider. Zoho is a company with many services, with Zoho Mail being one of them. Zoho is also known for web hosting, domain buying/management, and much more. Zoho Mail has a hidden option for a free custom domain but is not hard to discover.
Migadu is a somewhat unknown email provider. It forces you into bringing a custom domain, at least when I first set it up an hour before writing this. It is free, but you will get up to 1GB of email space. Migadu admits it is not for everyone, and it is not.
Where to buy the domain then? Well, it's not the best to go by that metric. In all honesty, pick the domain extension you want and find where it is cheapest and allows you to work with your tools. I recommend Name.com and Namecheap. People will say "use this" or "use that," but it doesn't matter. If you want a free domain, but with the costs of limitations, the time you can use it, your soul, and your dignity, then Freenom is where you would get those. Freenom does limit which TLDs you can get for free, but they exist.
The only real limitations with your registrar might come from if you buy it from a web host or email host. Other than that, you have no real major issues.