Hello, my question is more general than usual, think this is the appropiate forum to post it. Thing is I've been learning programming almost completely on my own and for a while now I'm facing a wall where I simply don't know what to do with it and can't find how to break through it. Wall is that I know that I should have enough knowledge to be able to build something from the ground up but the more I try it the more confused and lost I seem to be. Think that a decent analogy would be that I know a set of basic tools, how they work, and have used them in really small projects to learn them, how they complement each other and I should be able to make a crappy chair but cannot make it, completely lost on things like "Where to start?" "What are the possible options that will lead me to build it?" "Should I start here or there?" or "Am I really building a chair or am I failing at it and don't even know yet?" or stepping it up and start thinking "Do I really have the basic knowledge to build it?".
Searching and reading around the web did not help much either (that or I am asking the wrong questions to Google), the only thing I was able to find about it that gets near it is this blog post post on vikingcodeschool. Nails that feeling, think the point I am is at the beginning of the second phase (don't know how accurate is that classification). I've been checking different programming languages, Python based on MIT edX courses, 6.00.1x and 6.00.2x (foundations of Computer Science, planning to do the whole XSeries course), C++ based on this book, 'Jumping into C++' and only more or less recently dabbling with C# using Rob Miles C# Programming Yellow Book as a start. Reason for checking C# and start with yet another language is due to the seemingly consensus in that documentation is really good and easy to browse thanks to MS, and that should help for learning. I think I have most of the basics covered, from basic general knowledge, to proper class structure and inheritance and the dangers of overusing them, abstraction and interfaces, general data structures, like binary trees or hash tables, the importance of testing, basics on debugging and where to look when you have to debug and that it will take me a lot of time and thousand bugs to practice so I don't suck at debugging. Oh and not forgetting the whole, write proper documentation, write good code that explains itself and comment your code.
As far as I've seen no matter the approach I can't move past this wall. Think my best progress so far was to be able to build a 2 player TicTacToe console game on C++ (no IA or something fancy like that) and I am still wondering how did I managed to get it working (it was incredibly fun and frustrating at the same time to build though). Maybe I am not really ready yet to buiild from scratch or I am just lost. So any pointers on where I could be failing, and where should I head next based on what I know? Any resources that can assist? Should I stick with any of the 3 already mentioned languages? Projects that could be good to grasp how to start? Doesn't matter if it is time consuming, involves learning another 3 programming languages or whatever is needed. I enjoy too much programming and the whole problem solving aspect of it to not keep pushing forward and if possible make a career out of it (if possible on videogames). Thanks for the help and sorry with the long post, I can't properly explain it in less words.