You are standing in your own way. Your self-deprecating words swim around in your head so quickly that it pours out like a flood upon your lips. You think it's normal. You think you're supposed to be "hard on yourself." But, there's a huge difference between being disciplined and being destructive.
What do you accomplish by telling yourself you're no good?
What do you get out of beating yourself into the ground?
What's your productivity like when all you do is sit around and replay your failures over and over and over again?
You get absolutely nothing.
The truth of the matter is that we all go through our own periods of ups and downs. However, the same energy you are using to beat yourself up can be used to build yourself up.
Stop wasting time marinating in negativity. Get up and do something. Push through the pain and keep rising to the occasion. You are not always going to feel good and everything won't always be perfect.
I know because I'm living it. I'm sitting here with tooth pain, a strained muscle in my back from moving things around my classroom, and a sore throat. But, as much as I want to sit around and moan and groan about my circumstances, I know it won't accomplish anything.
Get out of your own way and for the love of all things good and holy, take some steps in a positive direction.