You should learn to forgive yourself. Yes, as a human, you make many mistakes. Sometimes, you take the wrong decisions, at times you do not concentrate well on your work or you procrastinate it. You place your trust on the wrong people, and then get heartbroken later, hating yourself for that. You tend to over-analyse situations, you get un-necessarily angry, you crib a lot and you sometimes hurt the feelings of other people. A lot of times, you are sad not because something or someone made you feel that way, but because you put yourself in that situation..So in every such situation, learn to forgive yourself. Forgiveness is the attribute of the strong. If you do not forgive yourself, chances are that you might not forgive anyone else. What follows is learning from your mistakes. With the new-found wisdom, you can make amendments, overcome any shortcomings that you think you have and emerge a better person. Always remember, natural processes too tend to have errors (this example is very geeky and it is thanks to the subject I study)...eg.. a DNA polymerase makes many errors when replicating DNA, but the cell has all the machinery to correct the mistakes.. It is never too late to make the changes that you want to see in yourself. You do not have to be ashamed of any fault of yours, realizing that you have them and trying hard to make the corrections is more than enough. Lastly, never feel guilty for anything that you did..That is not to say that you can go on a mistake-spree where you think that all mistakes are forgivable. Wrongdoings of the past should be remembered so that you do not repeat them in the future..:) Its just that, it is always better to not punish yourselves too much..For one thing, you cannot change the past, for another, you will not be able to enjoy the future, and for yet another, it defines who you are.