You are a master of a programming language when you consistently write idiomatic code in that language which exploits the power of the language to solve difficult problems in an easy-to-explain way.<p>Or in detail:<p>You must <i>consistently write</i> code in the language. Knowledge without experience cannot make you a master.<p>You must write <i>idiomatic</i> code for the language. If you're just writing FORTRAN in another language, then you might be a FORTRAN master, but you aren't a master of the language you're using.<p>You must <i>exploit the power of the language</i>. If you're writing "for" rather than "foreach" loops to iterate over a collection in C# or rolling your own LinkedList class, you aren't a master of C#.<p>You must <i>solve difficult problems</i>. Writing Hello World will never make you a master.<p>You must write code in an <i>easy-to-explain way</i>. If you are the only person who can read your code, you aren't a master of the language.