You've been criticizing yourself for years and it hasn't worked.
Try approving of yourself and see what happens.
Are you your own worst enemy? Are you the first one to put yourself down to ensure that no one else will, or perhaps it is just the way you talk to yourself? What do you see when you look in the mirror? Many people snub themselves, avoiding mirrors out of shame or disapproval. These behaviours would stem from unresolved childhood issues, bullying, or low self-esteem etc. Any form of self-critical conduct, especially if obsessive, drains your energy, confidence and will delay your progress.
In addition, this form of self-talk will give the wrong message to the universe. If you feel that you are not smart enough, pretty enough or simply not good enough, the universe will do whatever possible to ensure that this wish is fulfilled.
This self-debasing attitude isn't usually deliberate, the majority of people don't even realize that they do it, until it is pointed out to them. It's is a habit of a lifetime. Just pay attention to your self-talk, it is self-destructive.
You need to give yourself some respect and stop judging each flaw (real or imagined) so harshly. You are who you are ... perfect. So accept what you have been given and treat yourself with kindness, love and approval. You cannot control what others say about you, but you most certainly can work on loving yourself, just as you are.