When you’re writing a character, don’t make them too perfect–even if they’re the good guy. I have seen a lot of fiction cross my desk lately wherein the heroes are too good. Too smart, too knowledgeable, too flawless. This mistake makes them boring, and worse: it keeps the reader from sympathizing.
We all know we have our own vices, our own pride, our own egos, our own flawed selves. We can sympathize with a main character who makes mistakes, not by accident, but because of issues they’re carrying around unnecessarily. Because we’re all that way too.
So don’t make your characters be who you wish they were. Get out of their way and let them be themselves.