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.
Or in detail:
You must consistently write code in the language. Knowledge without experience cannot make you a master.
You must write idiomatic 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.
You must exploit the power of the language. 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#.
You must solve difficult problems. Writing Hello World will never make you a master.
You must write code in an easy-to-explain way. If you are the only person who can read your code, you aren't a master of the language.
Comments
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.
Or in detail:
You must consistently write code in the language. Knowledge without experience cannot make you a master.
You must write idiomatic 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.
You must exploit the power of the language. 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#.
You must solve difficult problems. Writing Hello World will never make you a master.
You must write code in an easy-to-explain way. If you are the only person who can read your code, you aren't a master of the language.