Word for someone who is helpful but not very nice about it?
I'm looking for a word to describe this kind of person.
e.g. "Hey dude what's the square root of 9 again?
"Oh my God are you really asking me that? It's 3... you idiot."
Solution 1:
Condescending
behave as if one is [...] descending from a superior position
or patronizing
treat with an apparent kindness that betrays a feeling of superiority
or snobby
condescendingly patronizingly rude.
Solution 2:
grudging, defined by Merriam-Webster
done, given, or allowed unwillingly, reluctantly, or sparingly • Grudging compliance
Grudging doesn't fit your example sentence well; justifiably exasperated fits your example sentence better. (Who doesn't know the square root of nine?). Grudging does fit the broader meaning of your question. For example:
Hey, dude, I overslept and missed English class. Can I scan your notes into my computer?
Oh god, not again! OK but be quick about it; what do you think I am -- your Personal Assistant? Get an alarm clock, will you?