Part 1:
1) Create a database
2) Manually input test data
3) Make a page to list all of your posts
4) Paginate your posts
5) Give your posts permalinks and their own pages
Part 2:
1) Create a simple login system
2) Create a page that lists all of your posts
3) Create a page to add new posts
4) Create a page to edit posts (you can reuse the "add new posts" code)
5) Create a page to delete posts
6) Allow posts to be scheduled in the future
Part 3:
1) Use the same method above to allow users to sign up for your blog and post comments.
This is exactly how I learned to code. I started with a small core problem ("I want to display posts from a database") and started tacking on features one-by-one. There was no end goal, no todo list, no lofty requirements -- just me seeing how many features I could build by myself.
While you could certainly find a benefit in moving to the Bay Area and networking or joining a "learn to code" program, I think there's a lot to be said for just sitting down and churning away at a project like this. Once you get the hang of things, you can pick up contract work, which will both offset your living expenses, and let you improve your skill on someone else's dime. It has the added benefit of forcing you to work on problems you might not normally encounter, like parsing email sent to your server.
Mainly, before anything else, coding should be fun. If you get yourself into the swing of things, you'll have a hard time not working on your startup.