Nouns are very crude in how they label people, and I am sure that teachers are advised not to use them to criticise pupils. In ordinary English, I expect nine people out of ten would not distinguish between "you know-nothing" and "you idiot", and "idiot" must be a hundred times more common, at least.