The correct answer is almost always 7.
I remember when I was in school we were explicitly warned if asked “how well do you know $LANG” in an interview to never answer 9 or 10. If you do then you will be asked a language lawyer corner case which proves you don’t know what you’re talking about.
Answer too high and you get made a fool. Answer too low and you project not having significant experience with the language. I would have rated my C++ knowledge to be a 7 when I graduated 14 years ago. And if asked today I’d probably still answer 7.
7 is a very very safe answer. :)
I asked that question for years in interviews, with the follow up of "Okay you're an N, what does an N-1 struggle with?" It was always funny to hear everyone say they're a 7, and then get answers ranging from "a 6 would struggle with declaring functions" to "a 6 would struggle with template meta-programming."
It's a bit of a mind-game, but it's actually really effective.
Oh gosh you’re a monster.
“A 6 is someone who doesn’t realize the answer to this question is always 7”.