I struggle with low self-esteem. I've actually struggle with it less as an adult than I did as a kid, but it still creeps in to my life here and there.
Around Christmas, our Pastor did a series at church called It's a Wonderful Life. His messages are usually quite powerful, and give me a lot of comfort. Two services in this series were about recognizing the bad spirits in your life, identifying them - and getting rid of them.
We've all heard "the first step to fixing a problem is admitting you have one." It's not enough just to say there is a problem, though - you have to give it a name. That's how you take away its power and figure out how to deal with it.
[Sort of like Lord Voldemort in the Harry Potter series - not saying the evil wizard's name bred fear, which gave him tremendous power. Saying his name out loud was how good wizards fought him.]
When something has control over your life, you are going to make mistakes and miss opportunities. If you believe in God, and His plan for your life, you believe this is because you're giving control to someone or something other than God. Even if you don't believe in a higher power or plan of any sort, you still have to admit that if you're letting someone else steer the ship, then you're not living up to your potential or plan. Just because you're not in charge.
So what do you do? Name the problem. Whether you do it on your own, or through prayer, or counseling, or talking to your friends until they don't want to hear it anymore - identify the issue, give it a name, and figure out how to give it the boot.
Why did you make that bad choice, or let that thing happen, or say yes (or no) when you should have done the opposite? You know you knew better - so what was the problem? Once you can answer that question, you are on your way towards setting things right.