Earlier quoted context omitted.
I basically found this in college too, I quickly gave up on computer science as a major. I'd rather just go out and learn how to build what I want to build versus hearing a 3-hour lecture about how the jvm works. The answer is it's magic and no one cares, now let's go build some games
Firstly, and this is worth pointing out, "computer science" is not about programming. It's about science, in this case specifically the science that makes computers work. At school I thought "computer science" meant "programming" - which it doesn't. So well done for recognizing this before wasting your much time. (Seriously, not sarcastic.) programming can easily be learned outside college. To other general readers h…
There are theoretical parts of computer science, but it is fundamentally a practical subject. All of it is in service to programming. Type systems are about typing programs. Algorithms are implemented using programs. Data structures are for use in programs.
The very worst computer science lecturers are those that forget it is a practical subject and try to teach it like abstract mathematics, because they believe (whether they realise they believe it or not) that it is more prestigious to teach abstract concepts than practical concrete things.
It is the same in mathematics, where unfortunately there has developed a tradition since Bourbaki of trying to teach abstract notions as fundamental while concrete problem solving is left to the engineers. The result is that many engineers are much stronger mathematicians than many mathematically-trained students, and those students have to relearn the practical foundations of the subject before they can make progress at the graduate level. If they don't, they get stuck doing what looks like maths, but is actually just abstract roleplaying.