After all this effort, you still haven't learned about functional programming; you don't know how prototypal inheritance works under the hood; how do you actually use generators?
How much more time before you become a master and finally take that next step?
It's easy as developers to want to see the entire picture before taking the first step. It's admirable to think ahead, but only if you aren't paralyzed by all the things you don't know.
Don't worry about not knowing enough. There is always time to go back and learn more.