People who replied my question asked about my current skill set, so when I tested my skills through Pluralsight assessment, following was the result.
As for learning how to program, I don't see it as a linear process. I see it as an evolution - that as time passes in a linear fashion, you evolve as a programmer based on what you have learned, and how you have been applying that to your coding. You don't always have to delve deep into a topic, but as you come across concepts that you don't understand, take the opportunity to then dive deeply into that topic - that is how you will become a more proficient programmer and progress past being a junior developer.
As for learning resources (all of these are free):
Ultimately: writing code and delving deeper into topics past the basics is what is going to make you more productive/proficient in any programming language.
Hope that helps!
So maybe you provide some more details about your background and then we can help you further. :)
I'm a react developer but the object manipulation given there has enhanced my understanding really well.