I'm sure I could just go from language books to intermediate and then do whatever I feel like,
If there ever was a "standard path," this was it; you already know what it is. Most of the programmers I know learned to code by reading tutorials or books and coding whatever they felt like coding. The ones that went this route tend to be the better programmers, in my experience.
I tend to get overwhelmed because I have no idea what programming can do or how to do them,
If you don't know if you can do something, try doing it and find out. ;)
I have a hard time understanding how I can go from basic programming to writing my very own program. What exactly are the next steps?
It's really very simple, in principle at any rate (note that steps 2 and 3 are often done concurrently):
1. Have an idea for a program.
2. Design the program.
3. Write (and debug) the program.
Which part are you having trouble with?
All I want is structure, I can't just go look up random shit I want and learn efficiently. It's just not what I'm comfortable with doing. I can do it when I have to, of course, I just don't want my entire learning to be from reference sites.
It sounds like you want to take a programming course, not teach yourself how to program. What are your options in that regard?
In the real world (as in, if you have a job as a coder), a lot of your learning will be done via reference sites, so you will want to get used to that aspect if you want to be a programmer. If for example you're working on the "latest and greatest" proprietary console hardware, quite literally all you will have to learn from is the reference documentation provided by the hardware vendor; there won't be any tutorials online, no classes for you to take, and if it's truly new hardware you may even be the first of your coworkers to program for it! Furthermore, whether you're coding for yourself or somebody else, if you have (or are given) an idea for a program to write that nobody else has written before, there will be nobody to tell you what to do but yourself. I would say that being able to give yourself structure and figure things out for yourself is therefore a highly-prized ability if not outright essential to being a good programmer. My advice is therefore to practice giving yourself structure by deciding what you want to accomplish, then figuring out what is necessary to accomplish that.