Reminder: Nobody is a "perfect" or "finished" programmer after just one course of C++! On the contrary. You have just started. Your feeling of not having learned enough is right. Don't let that frustrate you, let it spark your future endeavours!
Approach: For solo development, start learning a language and trying to develop a game (or some small project) in parallel might be beneficial. Because you learn new things to experiment and reproduce during reading about game development techniques, this automatically drives you to learn new concepts of the underlying language to realize those tasks. You also stay focused on game development this way. Trying to "first master the language" will carry you far (off), and maybe waste time on things you do not really need later.
Language: C++ is common in the gaming industry. When you go solo, you have the opportunity to also use different languages which are easier to learn at the beginning. Unity for example uses typescript (a kind of JavaScript) or C#. Especially typescript is more forgiving than other languages, but because of the things you can leave out, it might also be harder to grasp the underlying concepts. Also consider
3D or 2D: Depending on the type of game, maybe a simple GUI/window is already what you need and a full 3D engine is overkill. Consider Java for a few months, just to get the basic concepts of GUI development, might help a lot. There are plenty of tutorials and very good IDEs for it (IntelliJ IDEA, Eclipse).
LUA If you want to stick with C++, check out QT for GUI development. LUA or Python may also be worth to have a look at (depending on your project demands).
Delphi/Freepascal: Concerning GUI/2D also consider to do some Freepascal experiments. Download LazarusIDE and look for tutorials for Freepascal or Delphi (they are essentially the same). I know no other system where you can do GUI stuff so quickly and intuitively. Having buttons do something or an image moving around the screen by key presses is done in virtually no time (mere seconds, if you know what to do). Because of the ObjectInspector concept to change properties of elements, it serves as intermediate step towards Unity nicely.
3D-Engine: In my opinion Unreal is far more capable of supporting also huge games, while Unity is more of a sandbox and for smaller games. This can be very helpful at the beginning and enables you to make progress quickly. But also have a look at Unreal at some point (with more experience) to see what benefits you get there. The switch to C++ might be harder, because you are used to C#/typescript in Unity then. Don't get repelled by that, if you think switching would benefit your projects. Be prepared to start over. Also keep in mind that even if it says "3D-engine", you are very well able to do 2D games with them as well. With the added benefit of having support for sound, networking, animations, nice graphics and other stuff.
AdditionalAdvanced knowledge: Game development is a broad field. There is not only graphics to it. Also modelling, animations, sound, input, story, saving+loading, level design, multiplayer/network, databases, saving/loading, etc. are part of it and have different tools to get familiar with.
Also some lessons in clean code, unit testing and refactoring, and non-programming related topics like marketing, how to publish, monetize (micro-transactions), founding a business, doing taxes, and "getting things done" e.g. structured approaches for development and work organization, might be very helpful.