I have been programming for 5 years since middle school. I have learnt pretty much all the basics of programming and went through C/C++ and Java language. However, the college in my country is not really offering me the knowledge that will help me improve on in my programming career. Therefore, I have to self-educate myself. Lately, I have been picking up native windows api and give it a try on making window application according to what I have in mind. However, I failed constantly and found myself lacking knowledge in all directions: Low-level machine (system, arch, asm, etc.), Windows internals (kernel, system, etc.), Networking (TCP/IP etc.), Designing skills, Graphics programming, and many more of those advance topics. Therefore, right now I'm at the edge of deciding whether to continue with windows development, or to dig deep into low-level machine structure, or to dropout all of that and go for internet-oriented programming, or to do any other available options.
Ideally, I would want to know all of them (I really love all of the topics in programming) and would want to deeply understand every one of them. However, I don't know where to start.
So any guideline from professional programmer of how should I continue my learning path? And what would be the best resources?