How to make any character a little more likable in two easy steps:
Step 1: Create a different, more unlikable character.
Step 2: Have the unlikable character hate or harm the character you want your readers to like.
Result: your readers, who don't want to identify with the more unlikable character, will take the opposite side and the opposite view.
You can expand on this technique by having a likable character change their opinion along with the reader. Be careful, though, because if you push this too far, your writing will seem manipulative to some readers.
Some other, tricker strategies:
Consider your own experience or opinions about people in your life. If one of them did what your character did, or behaved as your character does, what would make you like him anyway?
- You know him and already had a good opinion -- give the readers some history or experience with the character as a good guy
- He has a reason for the bad characteristics, but doesn't use it as an excuse -- share enough of the backstory that readers can identify with the bad behavior
- He is not (always) annoying -- in fiction, murderers can be more likable than someone who constantly whines. Pull back on the annoying elements of his character. You don't want to make him irredeemable
- He is entertaining or charming -- if readers are having fun when they read about a character, they're more likely to end up on that character's side