I needed to add this as the title but it's too long to add. " How to become an Expert in Programing or any programing language(C++,Java,PHP) by self studying ? "
As you can see above. That is exactly my question.
Although I am doing self study, But I really need to get an answer from experts here. I know most of you guys did self study even for one language.
I decided to ask this because even I do self study I feel I am not doing it well.
So you guys will give me clear idea how to do. Such as
how to memorize codes well?
how to practice coding?(I mean exercises and the other stuff)
how to become a master of a language?
how to learn the other stuff(I mean as all you guys say, "Programing is not only about coding" there are so many other things of it. I need to learn them too)
how to use a language to solve any problem we get?(Computer problems I mean

how to think like a programmer?
how to find steps of solving a problem?(Like understanding the problem and what to do to resolve it?)
can a good programmer solve any problem?
And all the other things that I missed. I may have asked those questions before but I like to know them completely again.
Please give me a complete detailed answer.
Thanks