>>51065596this is probably bad advice, but I'd go to r/learnprogramming on Reddit. Every week they'll have some guy post something like "How I got a job as a junior developer in 1 year" or similar bullshit. They normally post the "plan" they followed, which normally consists of similar bullshit like starting with Codecademy, getting annoyed that it doesn't teach you something, then following the MIT or the github "no school" guide for learning programming. Their experiences could be helpful to you though.
Otherwise:
It's extremely common to find that people are up to their knees in shit trying to self-teach Java, C# or some other bullshit. Sometimes at the behest of a university.
My advice to you: Get out of your bullshit IDE, get a real operating system, compile a C file.
Read K&R C. Learn to use a Makefile. Learn to do static analysis of that C file.
Learn a scripting language. Invoke a script that does something useful for you from the command-line.
Learn to use all the UNIX tools. That means cat, sed, uniq, sort, grep, touch, ls, ln, find et al.. Learn to pipe data about.
Write a little ASM. Build it into an object file and call it from your C code.
Read an algorithms book. The first volume of The Art of Computer Programming is very good. Implement a linked list.
Learn to use git. Check everything you do into git. Learn to use diffs and keep your commits clean.
Learn to use IRC. Get on Freenode. Get involved with the communities around software you use. Read the buglists. Report bugs you find. Fix something simple and upstream a patch.
Now you're ready to start learning to program.
I know 4chan users sometimes don't always post things that would be accepted by the majority, but what do you guys think of this comment? Is this what's required to be one of the greats?