Its often difficult to chose what kind of service you need.
Prefer to have one online server all the time, this should be used to showcase your work to your clients, host your personal site(s) and some of your cheap clients who do not have a traffic use case but just want a site, we call this the ‘homeserver’.
Except for .net developers, homeserver should be a linux machine which you can find on low end box. Try to have at least 512mb ram and prefer 1GB if you want to host multiple types of apps. Everything else on the server is just not that important.
Homeserver is a place where you can also keep backup of your code. Unless you are a photo editor, your code will not go over a GB even so dont worry about space. But do setup a script on your PC to sync your code (git can be helpful to auto-push it on commit). That way, your risk of losing your code is minimized to nearly zero.
In case of predominantly .net developers, you need a windows server as your homeserver with a minimum of 2GB ram. You may also like to use azure or amazon free tier services for some time.
Next you need a playground where you can install and test new tools. the playground does not need to be on all the time, use a cheap service like digitalocean or rackspace etc, which charge hourly. Whenever you feel like upgrading your apache server or doing a complex change, its wise to fire up a playground and play with it , once you accomplish your task, copy the knowledge/ settings that work to your home server destroy the playground server to not incurr any more costs . You can use hourly billed servers for high demanding projects to add more servers for the duration of the project too.
Next , if you need to plan a product for yourself or a big client where the expected usage is high , select a service which is cheap at the target size , not a service which is cheap initially . A service which is cheap at 1GB ram , may be very expensive at a 64GB ram server and vice versa.
calculate appropriate database and ram size, processing power and other specs you think will be needed and then select a host that can fit those needs and is not very expensive at that level at the same time. Reliability is also important so don’ t forget to read reviews. Start with a small server on the same host as you do can easily increase the size by a simple reboot as your application grows.
Always prefer VPS over dedicated servers.
In case if you are not that much into server technology and just want a host, go for custom hosts that offer control panels to host your site, these end up being expensive when you have more than one site but useful if you do not want to get into technicalities.
You may also chose a service like firebase or heroku in case if you are building apps with specific server side requirements.