lil is wise, and gives sage council.
Personally I have struggled with self-hate for a long time. Then I was upset at myself for hating myself.
When I started being mindful, and when I started accepting, just a little bit, that I might actually be allowed to be loved, I started to forgive myself. It didn't happen quick, and I still have to work on being forgiving, but it is possible.
Now, when I make a mistake, forget an assignment for school, burn some food, spend too much money, etc. My first response isn't 'You idiot, how could you be so stupid!' or 'Greedy, weak willed bastard, how could you do that?' Well, it is sometimes, but less of the time than it used to. My first, and healthier response is instead 'You are just as human as anyone else. You are allowed to make mistakes. You wouldn't judge a loved one so harshly as you judge yourself, so why would you judge yourself that way?' and in recognizing that, also recognize that if there is a way to make right what was wrong, to do it, and happily.
The reason that I judged (And still judge) myself more harshly than I judged the mistakes of others, because I did not have the same love for myself that I did for others. I also hold myself to a higher standard than I hold others, but that's a separate issue.