Set realistic goals... or break the big goal into levels.
Example (NOT you at all, just saying) I am going to lose 40 pounds in six months!
And then, when you weigh in after a week you only lost 1 or 2... get discouraged.
Instead try saying I'm going to try to lose 4 lbs this month.
Then if you have a 1 pound week... That's Cool... 
End of the month the tally is 5 WOOT, exceeded your goal (SAFELY mind) let's see if we can do the same 4-5 next month.
And maybe, five a month for six months isn't the WHOLE 40 you were hoping for, but it is small steady little victories... MUCH better for your self esteem than one big all or nothing toss of the dice.
Just an example... but how many times have you heard about people blowing their diet because they go all out... or too strict and they can't stand it... SMALL steps... SMALL changes... that's the way to get a hard task done... 
Doesn't have to be any big thing either... could be something really small, that only you'd notice... like I'ma bring my grade average up one point... if when you averaged all your grades on your last report card up you averaged an 87... well try a LITTLE harder (not all psycho) and see if you can't make your AVERAGE hit 88... maybe it's English going up 2 points... and Science 1... while the others stay the same... small victory... something YOU can know and feel good about... but, IF it doesn't work then no worries about anyone but you noticing.
Sometimes to build up SELF you have to do things by/for SELF... THEN once you get your own vision cleared you can start giving a fig about others' opinions... if ya wanna.