I went to a small public school for most of my secondary education. Up til 11th grade I had no choice but to put up with the limited educational opportunities it offered and, since the school was far more interested in its football program than anything else (admittedly they were actually pretty good, 3A champions for a few years running), I wasn't very happy with it.
Then I got the opportunity to go to OSSM (Oklahoma School of Science and Mathematics) for my junior and senior year. I still had to go to public school to take care of English and stuff, but since I was only there for half of the day I luckily got to skip past all the stupid bullcrap everyone else had to go through. Mind you, I wouldn't have had switched earlier, going to a public school and being the main target for bullying due to my intelligence gave me a thick skin and the will & guts to stand up to injustice. However, by junior year I had moved past all that irrelevant stuff, and public school was only slowing me down. I'm so glad I got to go to OSSM, it gave me a very good fundamental understanding of calculus and physics that I took with me to my college engineering classes. My physics professor, in particular, was the best teacher I've ever had. Even though he was an outright a$$hole, he instilled in me an intuitive understanding of physics that many of my peers were without when we first entered engineering classes.
I don't think that would have been possible had I gone to a private school. True, I most likely would have been able to study more interesting topics in high school, but public schools gave me the social skills I've needed. I've seen the difference among engineering students between public schooled and private schooled, and it's not pretty. The private schooled, while still very intelligent, didn't know how to handle themselves around other people as well, and they stuck out like a sore thumb. So yes, I'm more in favor of public schools, but with the caveat to seek out extra opportunities for learning as well.