Try to understand and study first of all, paradigms.
Technologies follow paradigms, such as object orientation, events, sequential, etc. The important thing is that you understand what you are writing, know how to plan and design before writing or worse, copy something you could have done better. The main characteristic of a good developer is to understand the problem and have the solution before writing anything.
In this way, I understand that you should start with introductory courses on Object Orientation, Design Patterns and Programming Logic. This is enough to start and then apply in any language, Java, Groovy, Python, C# and etc.
After that you will manage to guide yourself in a much more objective way, the path of the stones will become more profitable.
Question out of scope, so much content could be clarified in chat.
– Alexandre Peluchi
He has no reputation for chat.
– Renan Gomes