I was in choir in high school with a young woman. She had an excellent voice, but never believed it. She was perpetually hard on herself and overly critical. One afternoon there was about half a dozen of us, including out choir teacher listening to her practice. We were all complimenting her and telling her that she sounded amazing, because she did, but she wouldn't listen to what we had to say and maintained that she was terrible at singing.
By the end of it I asked her if she really thought she was terrible at singing. She said she did think that, so I asked her if she was so terrible then how she thought she knew better than all of us, even our teacher. Fast-forward to when she was being judged on her solo, as everyone had to be, and an impartial judge gave her a perfect grade on that solo which she thought was so terrible.
Self loathing, self deprecating, being overly critical of yourself, whatever you call the situation I described above, is far too common in today's society and in this generation. For me, and a few others I have spoken to about the issue, the source of self-loathing is a fear of arrogance. They are so against being arrogant and find it so distasteful that they look to the other extreme and would rather hate themselves than give themselves a compliment, but self-loathing is a form of arrogance.
Back to the story I was telling: the singer was in fact insulting all of us there who were listening to her. Of course we didn't say that because it would've just made her feel guilty on top of everything, but ultimately, we were sharing our opinions and observations and she was saying that we were totally wrong. She was saying that either we were just lying to her or we were ignorant. That our choir teacher was ignorant of what it actually meant to be a good singer.
Above that she was saying that she knew better than all of us. That she was right where all of us were wrong, and that she knew more about singing than all of us, and I imagine anyone who told her that she was a good singer.
Everyone has received a compliment at some point. It would be a statistical impossibility to have never been complimented, but when we deny compliments we insult the person giving them, often to their faces.
If someone says that you're beautiful and you call yourself ugly, you are saying that their standards are too low and that they need to correct their perception because if they had standards as high as yours there would be no way they would call you beautiful. If someone calls you smart and you call yourself stupid you are telling them that they have no idea what it actually means to be smart, and if they knew better like you do then there's no way that they would've called you smart. If someone calls you talented and you say otherwise you are telling that person that they really don't understand the game/sport/skill as well as you do and if they knew as well as you then they defiantly wouldn't consider you skilled.
If we are actually as terrible as we think we are then who are we to pass judgement on ourselves? Moreover who are we to deny the judgement of someone we say is better than us?
I am far from perfect in this area. It is very likely that within 24 hours of writing this I will deny someone's compliment, or I will insult myself. It cannot be me who corrects myself, but those around me. From now on whenever someone insults themselves or denies my compliment I will tell them that they have just insulted me, and I ask that everyone I know does this to me as well.
This is not a problem that will end overnight by any means, but at least now when you don't know what to say to your friend who is being too hard on themselves I hope that this will come to mind and you will be able to give them a new perspective.