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 here though I'll say that understanding the science can be really helpful over a career. It's not terribly applicable in getting that first job, but as you progress more and more of those theoretical fundamentals come into play.
Ultimately there are a small fraction of people who need to understand how it all works, all the way down, because those people build the things that programmers use to build everything else.
It depends on where you took computer science. I took a few foundational classes at community college.
It very much felt like a Wikipedia article on the history of computers somehow stretched out over an entire summer.
I have my own issues with the way college is generally setup. Do students really need a massive amusement park when self study along with 3 or 4 exams would provided the same value. Will spending 70k per year in total cost of attendence at said amusement park serve them?
I don't really like boot camps either, personally I'd like companies to be more open to actually training people again. I doubt it'll happen though.
Well, yeah. That's true for any field of study. Every college has strengths and weaknesses- its the opposite of a franchise.
>> I took a few foundational classes at community college.
A few foundational classes is somewhat different to classes you take in prep for a major. I did a foundational class in astronomy, designed for students who were just looking for an introduction. It was very different to my comp Sci classes in tone and style.
Yes there was some math involved, but not much in the comp science classes. Math was a pre-requisite though so we got our math in, well, math.
This is one of the only skills you can learn for practically nothing. A cheap laptop is all you need. I taught myself enough to get a middle class job with nothing but free time and 3$ iced coffees.
I just don’t like the idea of gate keeping it behind an expensive degree. The source code for most popular frameworks and tools is free for anyone to read.
It’s not like medicine or something where you need to drop 300k on education.
No, it's certainly not like medicine or law. And you can certainly aquire skills on your own.
Of course, in this field, learning is continuous. You're not going to use just one language (much less one framework) over a decades-long career. It's also likely that your domain will change, your focus area and so on.
A good college course doesn't prepare you for programming in one language, but all of them. (In the sense that once you understand the theory of programming, language is just syntax.)
You get exposure to different types of languages (imperative, functional etc).
I think for me the critical takeaways though were research, critical thinking and communication. The "skills" are easy to learn yourself, but the formality in which you place that learning is harder to do yourself.
Which is not to say a degree is a requirement- it's clearly not. But it's helpful because it builds a strong foundation on which the self-learning can rest.
This is a myth. Computer science absolutely is about programming. The science that makes computers work is called physics.
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.
This might be just a semantic argument, but if you mean "programming" as in "configuring a machine to implement one or more algorithms" (which I would assert most people do when they use the term), computer science is emphatically not about programming, although programming is taught for much the same reason that artists learn how to use a pencil. Computing, as a discipline, predates the machine (although the machine justified the existence of a whole discipline for studying it because the force multiplier it represented made it worthwhile to dive deeply on the subject of algorithm development and execution, the nature of algorithms, the nature of computability, formal logics, etc... Before the machine, it was just a subset of mathematics).
This was a point repeatedly driven home in my undergraduate curriculum, and in fact, they made a point of having multiple classes where a computer was completely uninvolved.
Yeah, I'm more in this camp too. We did a lot of practical modules, things like OS development, databases and so on. So yeah, learning programming was the first couple months, then programming becomes the tool to express progress in knowledge depth.
It's probably fair to say that although we learned some history, we had the privilege of learning at a time the field was exploding. That history you learned, I lived and worked through that. It's somewhat surreal to realize that my career is your history class.
As mentioned above though, it'll vary a lot from one school to another.
The answer is it's magic and no one cares, now let's go build some games