First, my current standing:
I know C++ at an.. advanced beginner level?
I've gone through a book, I know the syntax well enough, I know a fair amount of standard library functions, and I've programmed some simple console stuff with it.
I'd probably be able to program more with it if I knew how to structure a program, but I just can't seem to wrap my head around the whole concept of structuring something remotely complex.
I've messed around with Java for a day or two, and the syntax was extremely easy to get the hang of, except that I didn't really know any functions.
I'm plenty willing to learn, and to work hard to do so, but I don't really know where to go from here.
Now, at the risk of sounding cliche, what I'd like to become is someone like the great three of id; Carmack, Romero, and Abrash. To be considered a genius. I believe anything can be learned, and nothing mentally limits anyone except lack of desire to learn. But I don't know how to learn this. They learned by doing, and making do with what resources they had. On the other hand, I have access to almost any books I want, access to the internet, and access to a more than capable computer and software.
Should I learn more languages? Assembly? LISP? BASIC? Haskell?
Should I dive straight into advanced topics like OpenGL? Or should I wait until I feel I've come closer to mastering the simpler things, like console programs, first?
Should I follow tutorials? Should I follow books? Should I just dive into writing something and follow a reference manual as I go?
What order should I do all this in? How should I do it?
I want to completely master this; to be considered a genius. The most perfect career I can imagine is to start the next id. I have the drive to do it, I just don't know where to begin...