Learning how to program is a complex skill.
You won't reach the skill level of a hacker by simply accumulating languages.
You need to learn how to think about programming problems in a general way, independent of any one language.
You should reach a point where you can pick up a new language in days by relating to what you already know to the manual.
So what is the way?
Is it books and courses? YouTube videos?
Sure you can learn language features, bits of knowledge, from these, but that won't turn you into a good programmer.
The mindset that turns that knowledge into a living skill can only be learned by practice and apprenticeship
So, what will do it is by reading code and writing code. Lots of it.
Learning to program is just like learning to write good natural language.
The best way to do that is read some stuff written by great writers, then write some things yourself. Read a lot more, write a little more ... rinse and repeat until your writing begins to develop the kind of quality you see in your models.
Peter Norvig has a great essay: Teach Yourself Programming in Ten Years. Pay close attention to his "recipe for programming success".
But where can you find good code?
Open-source software, programming tools and operating systems are widely available.
Read and tinker with the code base. Browse through the issues. Break stuff, fix them. Interact with the community. Write code. Solve problems.