I decided to build this site to demonstrate some of the work I'm doing as I learn modern web development.
Some of my goals for this site were:
The first step I would recommend anyone looking to building their own site is to buy a domain first. Putting a little money down on something with your name on it will motivate you to finish your project. I've wasted too much time gooogle searching "programming project ideas" that could've been spent building. You can read all the programming books you want but until you get your hands dirty with the tech you probably haven't learned anything. Go somewhere like namecheap (note: not affiliated, but they provided a great service and got me up and running in no time), search for your name or something creative and pick up one of the cheaper ones.
Start simple. Create a layout in plain html and css first. Search for other portfolios to get an idea of the look and feel you want to create. Don't use any frameworks yet. I know it's tempting to run to run to frameworks like Bootstrap/Foundation/WhateverFrameworkIsPopularRightNow, but if you're a beginner wanting to create something original and understand what you're creating, it's best to start from scratch.
Let's get serious now. Throw everything I just told you out the window.
Well, not really. But start to think about features. Do you want a blog? You don't want to be creating html text for every post do you? I suggest sticking with static sites unless you need some server side interaction (form handling, etc). Static site generators are a dime a dozen. I went with Gatsby because I wanted to learn React, make a blog, and easily deploy my site to a free static hosting provider.
Hosting static sites is dead simple these days. I'm currently using Netlify. The process of setting up a static site with a custom domain was easy and fast, and came with a free SSL cert. Another option is Github Pages, which works seamlessly with Jekyll. Browse around, do a few Google searches, and pick one that works with you (and is hopefully free);