I think that a lot of the people who call Snape a hero and a good person must have only watched the movies, or in they read the books it was a long time ago, which is fine. The movies are great by themselves, but they do leave out a lot of detail that shows us who all the characters truly are because there’s so much plot to put in.
But here’s why I think this:
In the movies, a lot of Snape’s bullying is passed over or mentioned very off-handedly. Outside Harry’s first Potions lesson where Snape puts him on the spot (and in the book docks points from him, but not in the movie), a few snide remarks towards the trio (such as in the duelling club when talking about Ron’s wand), Neville mentioning Snape is his worst fear (which is never fully addressed), and the Occlumency lessons, I can’t think of many examples of Snape being a bully, and even these are fairly tame.
But in the book, we see Snape bullying the Gryffindors a lot more. Rowling makes a point of Snape going around during Potions to look at and remark on every student’s potions, often ignoring the Slytherins even when they do poorly, but he stops at Neville’s multiple times, berates him, humiliates him in front of the class, and on at least one occasion, simply Vanishes the potion because it’s so bad there’s no point trying to grade it so Neville gets an immediate 0.
As well, after Neville sees Snape come out of the wardrobe in drag, the story spreads like wildfire and Snape treats Neville even worse than he’s treated him before and Neville (a 13 year-old-kid) becomes nervous wreck.
There’s also the time in (pretty sure the 4th book), where Malfoy calls Hermione a Mudblood again and Harry and Ron try to hit him with a curse and Crabbe and Goyle do the same. One of the curses hit Hermione and causes her teeth to grow at an alarming rate. Hermione, who is already very self-conscious about her buckteeth tries to hide them so no one can see. At this point, Snape comes and sends Malfoy to the hospital wing and Ron angrily shouts “she was hit too!” and forces Hermione to show her teeth to Snape (Harry notes that they’re growing past her chin at this point). Snape looks straight at her and says “I see no difference,” causing Hermione, a 14-year-old girl who’s already self-conscious about her teeth to burst into tears and flee to the Hospital Wing, where she has her teeth permanently altered so they don’t stick out (she says her parents wanted her to use braces but she didn’t want to wait that long).
Another time, after Harry accidentally sees Snape’s worst memory, and Snape is yelling at him to get out of the office, and starts firing curses in Harry’s direction to scare him, since Harry won’t leave (he’s trying to apologize), and Snape explodes all the jars around the door, showering Harry with glass and pickled things. And then, later on, in the Potion’s classes, Harry gives Snape a sample of the Potion to be graded, and Snape just drops it, in front of the entire class. And since Hermione has already Vanished the rest of his potion, he gets an automatic 0.
Finally, the last example I can think of is when the students are brewing a growing potion and Snape realizes Neville mixed up the order of the ingredients, making it go bad. Again he berates him in front of the entire class with some very choice nasty words and claims he’s going to test the potion on Trevor at the end of class - if the potion was done correctly, he’ll be fine but if it was done incorrectly, he’ll die (remember Trevor was Neville’s present for getting into Hogwarts, and represents one of the few times his Gran has expressed that she’s proud of him). So Neville is about to have a complete meltdown but Hermione helps him correct the potion so when Snape gives Trevor a few drops, he just gets very large. And instead of awarding Hermione points for fixing a ruined potion, he takes points from her for interfering where she isn’t wanted.
So yes, I’ll admit Snape was a complex character with an interesting story line. But that’s all he is. He’s not a hero, and I personally think it’s insulting that Harry named his child after him.