I'm in the staircase generation, it's how I've been taught my entire life.
What is the "staircase generation?" And so what? You don't need to let how you've been taught previously constrain you. I'd argue that you're going to have to break out of that mould to be a half-way decent programmer regardless, so why not start now?
The difference being?
In the former case, structure (in the form of a curriculum) is decided and imposed on you by somebody else. In the latter case, structure is generally decided and imposed on you by yourself, based on the things that you want to do. Sure, there may be "curricula" for specific tasks that you want to carry out, but you need to decide what you want to accomplish before you can do that.
What you're telling me is the equivalent to telling someone who is learning basic math to figure out advanced maths by using reference books with no particular order or structure. It doesn't make sense.
That's not a particularly good comparison for the specific aspect of programming I'm speaking of. Learning individual programming languages and computer science theory might be somewhat like that, but the fundamental spirit of programming is just problem solving - in particular, learning to program is really about learning to solve problems using the abstractions you have available by taking something that looks hard and decomposing the problem into a bunch of smaller tasks that are easy to perform using those abstractions you know. Learning to program is not learning facts, it is learning to think about a problem in a particular way. Learning to program is more like learning to prove things with mathematics than learning what (e.g.) an integral is.
Now, you haven't really told us explicitly where you are in this whole thing. The impression you gave me was that you'd already learned the most basic stuff, and just haven't yet figured out how to apply it. Judging by other posts in this thread, it seems like I'm not the only one. Is this not the case? Are we talking about learning to program or learning facts that can be used to program? If the former, write code. If the latter, get a beginner book (any language will do, really) and follow it from cover to cover, doing all of the examples and exercise (if there any) yourself. THEN write code.