Ive done a bit of googling to try to figure out how to host a website, but most point you to Wordpress to set up a website with a template.
I understand how to purchase a domain and web hosting, but how exactly do you upload your css, html, and js. To the host (any) for it to become a website.
Without using templates just code.
You get a vps, setup apache and or nginx, and dump your css/html/js in the path your webserver is watching. /home/wwwuser/www is common. This is just for a static site. For dynamic content, you have to point your webserver to the code, or reverse proxy to some service. This depends on the language and deployment.
You've got a long way to go son. If you want to get running quick, just get a full service hosted environment with cpanel or some shit.