I would say that real, fundamental computer science is one of those things that universities are better suited to teaching. Other comments seem to agree with that.
The point I was trying to make is that college forces you to learn a lot of things that you may choose not to study if you're learning on your own. And those things you're forced to learn end up being more worthwhile than the skills you wanted to learn, whether you realize it or not.
I did actually used linear algebra and mathematical analysis on couple of projects and if I did not had math background before, I would not be able to understand what I needed.
I discovered programming at high school. If the teachers did not showed it to me back then, I would not even think about programming as a possible career.
The value of high school and college was in having me to learn things I would not learned otherwise. The things I would learn by myself, I learned by myself.
All the education that came before that was to complement that on the job specialization. You start out very general (walking, talking, basic social behavior) and then dive into an increasingly narrow funnel of stuff that is somehow related to your future X,Y and Z that you will learn on the job, but is not not identical with them. Education is for learning the things practice won't teach you (an extreme example: knowing a bit about Plato or Cesar would likely be more relevant to making sense of Z than understanding the halting problem or being good at regex).
Am I insane, or really bad at programming? Because with the exception of biology and physics, the other things you mentioned are significantly easier and more intuitive to learn on your own compared to say, computer science concepts and math.