As always, things depend on what you're trying to achieve. If you are into game engines, I would rather focus on understanding how to achieve what you want within the framework of the engine itself. If you over-focus on strict programmatic principles and architecture you will eventually hit walls which I think is unnecessary. You are anyway attaching smaller scripts to various nodes and maybe routing some signals between them.
Personally, I discovered that the language itself is not that important - I was a bit put off by GDScript in the beginning, but in the end it turned out quite OK - it is efficient, it gets thing solved without to much fuss.
For game programming I would rather focus on patterns like the one in this great online free book: Game Programming Patterns
Sorry for not answering the question directly, but I just get the feeling that you're putting up an unnecessary barrier for yourself if you want to make games :-)