I hear very seasoned senior developers with wealth of experience, always make this statement, i.e. The Mastery of Core Programming Concepts is the key and that a language of choice is just then used as a tool, hence the aforementioned Core concept mastery can be ported over to learning other languages.
So my question to Senior seasoned developers is thus, can you list this core concepts? I believe that if one can identify these core concepts and then get to master them, via drills and exercises, that will bring about proficiency.
I liking this to my knowledge of the Martial Arts and I am sure this is true of other skills that one acquires. So with the Martial Arts, you start with basics, that is Stances, which is your foundation, proper form, then you get into punches, strikes etc. and then you get to work on all these individually and in combination, regularly, so as to build muscle memory, this polishes your proficiency over time. You are also taught forms, what you will call in Karate a Kata, which will encompass the stances, strikes etc that you have been taught individually, but now as a pre-arranged sequence, which helps you to some extent understand the implementation of the basics / techniques.
So in my mind, if this can be broken down and thought of and structured when it comes to mastering programming, I believe it will make the learning curve less steep.
Please I will appreciate your feedback.