James much more of a loser in his school days than Snape, because he came from privileged, well to do family. He was a spoiled, pure blooded brat.
James wasn't punching Nazis- Death eaters did not become a thing until after James graduated. Snape was neither a Slytherian or a death eater one his first trip to Hogswart- so what was James justification for picking on Snape then? His clothes? His hair? Talking to a girl? James was picking on anyone weaker and poorer than himself because he was raised with a chip on his shoulder.
Sorry, people don't grow out of being bullied- the scars of bulling stay with people for life. Snape came from an abusive household- hating the muggle side of himself. He final was going to escape to the wizarding world where life could be better, and his first introduction was two pure-bloods verbally abusing him and Lilly. He went from one place abusing him to another. It is no wonder Snape became enthralled first with Slytherian, then the Death Eaters- they welcomed him, made him feel wanted.
Snape, while evil, is tragic. The wizarding world is just as messed up as the real world when it comes to social services, racism, class, worshiping of celebrity sports figures. Instead teaching kids to get along, the whole system of Hogwarts was set up on bullshit house rivalries. It just breeding ground for life long enemies and resentment.
In a story world, James through his on hubris and actions creating his worst enemy, Snape. I expect better from story heroes.