Possible Duplicate:
What metrics would be usable to determine expertise level in a particular programming language
I understand this is a subjective question and very likely could be closed, and although there is no right or wrong answer I do believe its a legitimate question.
At what point do you no longer consider someone a beginner (ie knowledge of loops, encapsulation, instantiation), an intermediate (design patterns, reflection, delegates, interfaces) or an expert (architecture, multi-threadding).
My rationale for asking such a question is two-fold, first, when do I stop labeling my questions as beginner and during a job interview how should I categorize myself?