As a general direction, if your main aim is to make games, using a game engine is a good choice, as it frees you from a lot of details that the engine handles for you. On the other hand, if you want to learn programming, or aim to understand how to write a game “from scratch” learning a programming language is a good choice. In such a case there is not much taken care of for you, nothing works “by itself”.
With respect to your question, I would start with the freely available guides. Buying a book for that is a waste of money, since you'll pass the first phases for the basic stuff quite quickly and afterwards never look back. Did you try finding free game programming books or guides or wikis? I'd be very surprised if that didn't exist. An alternative direction is to look for free learning programming by writing games. For example: Python wiki: https://wiki.python.org/moin/PythonBooks Some are from regular book publishers, while others are freely available https://inventwithpython.com/ or a more game-oriented direction there https://inventwithpython.com/pygame/ No doubt there are other resources.
You may not be aware of it, but you're fighting at least 3 fights at the same time currently: a) Understanding how to program a computer (how it works, what it can and cannot do), b) Understanding a programming language (how to explain to a computer what I want it to do), and c) Understanding how to go from global idea “make a game” to an actual program that works like you want.
Try to take things more slowly. Delay your dream-game for now, and aim for something more simple first. Try to make simple games. Hangman is good first. Classic games like space invaders, tetris, etc work too. In that way the goal you aim for is much simpler, so you can spend your effort on writing and debugging code.
In time, you will find writing code will take less effort, and then you get room for the 3rd fight, how to convert an idea to running code.