> Competent staff was hard to retain and enrollment was skyrocketing.
And, from my experience being part of that skyrocketing enrollment, quite a lot of them wanted to learn to "make stuff" and were complaining well into their third and fourth years that they weren't learning how to "do anything" in their computer science classes, since it was mostly theory.
The thing is, they were teaching theory because that's the harder stuff to pick up on your own. Want to learn a specific language? Just do it. It's not that hard, and there are online resources and plenty of books. Want to learn how to make some particular thing? harder, but also mostly doable from self study. But what would spur someone to learn theory of computation topics, or how to do algorithm complexity and runtime assessment? That's the sort of stuff that really benefits from a knowledgeable instructor, and only a small percentage of self-taught people will likely stumble into learning. Computer science is a science, and that's what they teach in school. It also makes you a better programmer, but it pays off in small ways over many years through more intricate knowledge, instead of front-loading all the gains into making you passable right now. That the better solution for some people, but not all.
> Want to learn a specific language? Just do it. It's not that hard, and there are online resources and plenty of books.
This is why I always find myself skeptical of boot camp type programs. So many of them seem focused on specific tools: node plus react! rails plus angular! etc. On the other hand getting a top down view of things is also useful. But I think this is what I enjoyed about my college program; there was time for both. Bottom up theory can seem pointless and unmotivated, and top down practicum can be hard to extend and generalize. The combination is powerful.
And, from my experience being part of that skyrocketing enrollment, quite a lot of them wanted to learn to "make stuff" and were complaining well into their third and fourth years that they weren't learning how to "do anything" in their computer science classes, since it was mostly theory.
The thing is, they were teaching theory because that's the harder stuff to pick up on your own. Want to learn a specific language? Just do it. It's not that hard, and there are online resources and plenty of books. Want to learn how to make some particular thing? harder, but also mostly doable from self study. But what would spur someone to learn theory of computation topics, or how to do algorithm complexity and runtime assessment? That's the sort of stuff that really benefits from a knowledgeable instructor, and only a small percentage of self-taught people will likely stumble into learning. Computer science is a science, and that's what they teach in school. It also makes you a better programmer, but it pays off in small ways over many years through more intricate knowledge, instead of front-loading all the gains into making you passable right now. That the better solution for some people, but not all.