If you are or have ever been a perfectionist, you know what it's like to keep your weaknesses a secret. You don't want anyone else to find out that you're not 100% all of the time or that you don't know ALL the things. This practice is unattainable if you're a human, which I'm presuming is the case if you're reading this.
Even if you can keep yourself from revealing your weaknesses to others, you'll eventually get tired enough or sick enough or overwhelmed enough to let something slip through for all to see. You'll think this is a bad thing, but it isn't. Having weaknesses and faults is human. What you do with them determines your character, and in some ways, your success in your career and life.
First of all, you can't improve on your weaknesses if you don't acknowledge them. If your inner voice is criticizing you every time you make a mistake, it may be time for some self-assessment. Separating your ego from your strengths and weaknesses fosters improvement without judgment. Being your own cheerleader only works if you have goals to make. Being perfect is unattainable. Make the game about building stronger character.
Secondly, being comfortable enough in your humanity to show others your faults will defuse any attempt to use your faults against you. This isn't about self-effacement or self-flagellation. Being honest about parts of you that need work can keep the haters at a distance. You've taken their ammunition away.
Thirdly, embracing that you're on a journey of continual growth and recognizing that you will always have weaknesses to work on, makes you relatable and accessible to others. When you're able to embrace your imperfectionism, you're able to forgive others their faults as well. Humans are messy and complicated. We're never going to get it right all the time.