step 1. getting good at solving problems in one language
step 2. get really good at that language. (ie., know how to avoid pitfalls, get best performance, know corner cases)
step 3. learn new languages that expose you to newer paradigms (ie., you know "OOP" languages, learn FP langauges next).