James Potter hated Snape because
Snape was a Slytherin. Possibly the easiest reason because of the ongoing rivalry between the two houses.
James had always been interested in asking Lily Evans out. But she used to hang out with Snape all the time. James was probably jealous of all the time he got to spend with her.
Snape was weird. He looked weird. Greasy hair, large hooked nose, uneven teeth - it makes anyone appear sort of seedy. One thing that we all know is it's easy to hate someone who looks different from you unless you know better. His weirdness made him an easy target for bullying, which James engaged in with his friends, because well, he was kind of an asshole too till a while. It is a classic "Jock bullies nerdy kid" story.
Snape was interested in the Dark Arts. He used to create curses like Sectumsempra on his own. It didn't help with the bullying.
Snape was kind of a bigot. He called Lily a Mudblood, although I am sure he did it out of spite, and didn't mean it. But it didn't help his image.
Snape also never missed a chance to curse him, so obviously he wasn't one to stay put.
Source:
Quora