It all depends on whether your Ubuntu 18.04 machine is intended for use as a local workstation or a web server exposed to the Internet.
If it's your local workstation, you should absolutely just make a sub-directory in your home directory.
I like to keep my projects in ~/repos/clientname/projectname/
directories. I call the directory repos
because I recommend always keeping your project in a local git repository and pushing all your changes to a private repository on github/gitlab/bitbucket or wherever. That way you can always pick up work on a new computer if yours crashes.
Your local workstation is probably not (indeed, hopefully not!) the server where you will expose your Drupal site to the Internet. You want a local copy that you can break and fix a dozen times a day without taking the real site offline.
Then, you want a way to serve that to yourself on localhost. Check out my other answer here to see one way of serving the files locally. I recommend Lando for newbies because it manages a lot of the complexity for you, providing Docker containers for web server, database server and other services as needed. And you can easily free up system resources with lando stop
and switch to another project with lando start
. See my linked answer for more details.
Then you can worry about deploying the site to a production server ... ideally, multiple environments for Dev, Stage (Test), and Prod (Live) environments.
There are many ways to approach this depending on your hosting. Just take things one step at a time, start with local development and work your way up to DevOps concepts like automated testing and deployment.
If your Ubuntu 18.04 installation is intended to be a web server, then you'll want to install a complete LAMP stack and set up the directories as @pinueve suggests in his answer.
There is also a middle ground. You can test deploying your site from the local dev instance in your home directory to the local Apache server, but just be aware that you can run into port conflicts between your Ubuntu host's Apache server and the Docker guest's Apache server if you try to start both at once. This can be mitigated by changing your default Apache ports.
Edit the VirtualHost entries in /etc/apache2/sites-available/000-default.conf
and change port 80 to something like port 8080:
<VirtualHost *:8080>
If you do this, you can browse the host machine's Apache on http://localhost:8080
and you will still be able to start and stop your Docker containers with Lando.