I hate Mary-sures. Don't even get me started on Gary-Stus (We'll talk about him next week.).
But, like all first-time writers, I wrote them. I remember being a part of Fanfiction.net when it first came out and, like all girls, had a crush on a character and decided, "Hey, since I can't actually be with them in reality, I'll write a character who looks like me but prettier and who acts like me but is perfect." And, since I didn't particularly like this characteristic of the hero, I changed it.
(Don't worry, I'm cringing even as I write this.)
Then I got scathing reviews.
After I bandaged the pain, wiped my tears, and forced myself out of bed, I realized I deserved them. And more than that, I realized that perfect characters aren't that interesting to read about. As I grew as a writer, I realized that writing perfect characters is boring.
Give your characters flaws. Real flaws that real people have. For instance, my character in my pirate novel, Remy Cutler, is spoiled. She judges people based on their physical appearance and thinks she has better judgment than people beneath her station. Then, she's forced into a situation where status doesn't matter. She has to wear dirty clothes, socialize with pirates, and worst of all, is forced to wash dishes.
There's tension and - best of all - she learns.
Therein lies character development.
And the thing is, I love when Remy learns. It makes me proud, as if I was her mother. (Which, I guess, I kind of am.) Other people will too. Your readers will. They'll see she's a spoilt girl, maybe relate to her, and then develop into the person she was destined to become. Your readers will love the journey you take them on - that is, if you create a compelling enough character.
That's the key, you see.
Your reader has to care about your characters.
And if your character is perfect (I'm looking at you, Mary-Sue), no one's going to care.