boot
Most of what I see here is way too hard or complex and will result in burn out early on, here are my suggestions:
Firstly, learn python, the basic concepts of coding apply to every language (data types, if/while/for etc.) and will allow you to pick up a more complex language like C# and C++ in a much shorter time and with the benefit of understanding the basic concepts thereby allowing you to focus more on learning more advanced concepts like memory management. (Do not spend too long on this, at most, I'd only learn the basics before moving on, it's boring and the next step will teach you the depths of the language.)
Secondly, get pygame, and focus on cloning old classic games, starting with pong. Set yourself a deadline too, say you will have a complete version of Pong in 3 days. You won't make it the first time, and you may not the second time, but failure is important. Failure will teach you the management and organization skills required in making a game, as well as start getting you thinking in that game design/engineering mindset and structure.
While you do this study Programming from the Ground Up by Johnathan Bartlett, it will teach you many core concepts essential to programming in any language for any purpose, use the cloning games as a way to learn and understand the syntax and the book to get a solid grasp on the advanced details like how your processor handles memory.
Once you've cloned a few classic games, move onto C++ & Graphics Programming and aim to build your own rough and simple game engine. Even if you're planning to use UE4 or Unity it is an immense help going into pre-made engines/frameworks with an understanding of how they're made and structured.
Good luck, this process will take time and you may even hate what you're doing, but just remember, you're not learning how to make games just so you can code. You're learning so you can provide fun & entertainment to the world, that's all that matters in the end.