Once, the vp of a fortune 500 cost the company 1 million dollars with a bad business decision. When he turned in his resignation to the C.E.O the response he was given was, "I just invested One Million dollars in your education and now you are trying to leave? I do not accept."
I grow tired of managers and other workers who are quick to blame a mistake on someone being a rookie or assuming that they are incompetent. There is only one way to become a good designer and that is to f@$% a few up. I don't care if my employees make a mistake, I care if they make the same one multiple times. The question is, how humble and how teachable are you? When someone presents your error to you, do you defend yourself first, or hear them out? If you are one of the rare guys who can swallow his pride and learn from it, then you are worth hanging on to. Anyone who you lose respect from for making an error once, is not someone who deserves your respect.
I personally had to rewrite the first two projects I designed at least twice, but you know what? I learned a ton, and though my employers were perturbed at the time, that was quickly offset by the efficiency I gained over time by being willing to learn from my mistakes.
As to the humiliation aspect and how to recover, I have two pieces of advice. First, people forget over time. Also, when someone else has the spotlight on them, they will screw up too. Then all will be equal again. Second, don't be an asshole to others when they make honest, learning, mistakes. In fact, you should encourage them unless they just really need a firm kick in the ass. You can over time help change the culture of your team by remembering how you felt when you made an honest mistake. You will eventually inspire people to be better programmers, designers, and human beings.