This goes back to a conversation I've had with my girlfriend. I tried to tell her that I simply don't feel adequate enough in my programming language (C++) to call myself good. She then asked me, Well, when do you consider yourself good enough?That's an interesting question. I didn't know what to tell her. So I'm asking you.For any programming language, framework or the like, when do you reach a point were you sit back, look at what you've done and say, Hey, I'm actually pretty good at this.? How do you define good so that you can tell others, honestly, Yeah, I'm good at X.Additionally, do you reach these conclusions by comparing what others can do?Additional InfoI have read the canonical paper on how it takes ten-thousand hours before you are an expert on the field. (Props to anybody that knows what this paper is called again)I have also read various articles from Coding Horror about interviewing people. Some people, it was said, Cannot function outside of a framework. So they may be good for that framework, but not otherwise in the language. Is this true? 
When can you call yourself good at language X?
programming languages;experience;comparison