Shared: You get a portion of a hosting server and it's resources (disk space, RAM, bandwidth, etc...). It's cheap and there are usually some restrictions in place to stop you breaking the server for everyone using it.
Dedicated: You get an entire server. to yourself There's usually two types of dedicated servers - managed and unmanaged. Managed ones are supported by the web host and usually have some restrictions and pre-installed software (like CPanel or Plesk) to help you setup and control the server. Unmanaged have no restrictions and you're free to do what you want with them (within reason).
Reseller: These are usually managed dedicated servers. The general principle behind them is for you to be an affiliate for the hosting company and sell hosting to other customers. Essentially, you'll be using the server to sell shared hosting.
It's your choice which one you go for but the number one rule with hosting is that you get what you pay for. Cheap hosting is usually unreliable and badly supported.
DigitalOcean sell a type of unmanaged dedicated hosting. You'll get a very flexible and reliable server but it will have nothing on it (just an OS) and you will have to install everything through SSH and command-line interfaces (CLI). They do have an extensive range of tutorials on how to install and run pretty much everything on their servers but I wouldn't recommend it if you're not comfortable with using CLI to access a server. You can use a service like ServerPilot (https://serverpilot.io/) to make the initial process easier as it will automate install the essential config for a webserver (eg: LAMP stacks)