I never seem to be happy with myself, neither mentally nor physically. I can't walk past a mirror without thinking "Why do I have to be so ugly and fat?" And recently I've been feeling like I'm a complete idiot because I'm having trouble in one of my classes. What can I do to make myself feel better about who I am as a person?
If you're so displeased with yourself, both mentally and physically, it's not so mysterious that you're falling into two common cognitive traps: perfectionism and self-downing.
Feeling better about who you are as a person means talking to yourself respectfully and rationally. You wouldn't speak so harshly to your worst enemy. Calling yourself names doesn't help, and only makes things worse. Fortunately, there are some issues you can address to counteract this tendency.
Perfectionism has many aspects, including the valuable desire to "do better," "look better," and generally keep to high standards. So far, so good. However, since even Olympic gold medalists fall short of perfection most of the time, we'd better accept that perfection simply doesn't exist. Striving toward betterment is great. The quest motivates us, and keeps us on a good path for the long run. But the idea that you can and should attain perfection will crimp your style, stunt your growth, and make you miserable. The solution, fortunately, is within your power: Talk gently and rationally to yourself about your goal and give up the need for perfection.
Secondly, the self-downing habit is a facet of perfectionism that also makes you do less well and contributes to your feeling badly about yourself. Why include a rating of your entire self (your very being) for having trouble in one of your classes? You're making your performance at this task, at this time, a measure of your worth as a person—and you don't have to.
It's much better to keep your high standards, and give up the idea that you have to be perfect. Scratch the idea that if you're not a sparkly Brangelina, you are therefore totally undesirable and incapable. You'll start to do much better in many ways when you get off your own back and focus on what you can control.