There are loads of online resources to learn programming, but they are all still very.. well, dumb. What I mean is there are fixed paths to learning it, but human brains are not fixed - each one is unique. Each one has it's own way of learning, it's own predisposition. So it's kind of like sitting in a classroom with 50 people for many years just to learn what could have been taught in a few months.

This is why I suggest to find a mentor. Whether an online forum or an actual person. People are smart and can answer your strange questions and help you along your path with ease. But how could we improve the interactive teaching platforms?

CodeCademy for example is a very popular and a very good platform to learn on. I even started there myself something like 5 years ago. Problem was it got do tedious that I quit half way into it. I got the basics down, but finishing would have saved me from a lot of headaches later on. What was so annoying about it that I had to quit? One problem was it kept giving me very similar tasks, of which I got tired of. Second problem was it was always expecting a very specific answer. If one space character was off then that was that - you couldn't pass.

Creating software is a creative process (duh!). Solving any problem can be achieved in any number of ways. So learning it shouldn't be about getting to a specific answer, but rather figuring out how to approach a problem and writing the solution.

Learning software is learning how to be creative with solutions and writing it down in a language.

Any concrete learning path is not very creative. The first thing a student does in my class is to pick a project. Any project. A game or some practical piece of software. Then I help them figure out how to build that software and give what lessons are needed along the way.

If a software was to simulate my teaching style it would be a pretty sophisticated piece of AI. I don't mean to brag, I'm saying artificial intelligence is hard to do. Ideally the software would watch you program and when you get stuck suggest to you what lesson you need to take to advance. Pretty simple in concept, but as projects range from racing games to data processors predicting what someone will need to write is going to stay a mystery for some time. Chatbots that answer a wide variety of questions will be of use though.