Have a solid understanding of C++ fundamentals and how these fundamentals can be applied to games. Question everything you learn in C++ like "why is this useful and how can I use it to make my life as a programmer very easy?"
I started off having this mindset ever since I started programming. Sometimes, you won't have an idea of how to implement the feature to your game. But guess what many people before you probably got stuck on the same problem you have. You can READ posts and threads of how other people solve it. Don't look at the code but read the ideas of the approach. And then start to struggle with how to implement the code yourself now having the ideas in your head. This will improve your thinking!
Making a game is mostly problem solving! So read , question and apply at the same time!
Start off small because #1 you can get it done. #2 I guarantee even the small project will test your ability as a programmer and project scope and time constraints. Whatever you learn in C++, START applying all of those concepts in your game. If you do not apply, you will not remember it. It's how the brain works.
Once you learn the procedural programming of C++. I would recommend starting with Java after having the fundamentals of C++ down so you can think in an object-oriented way.