The answer is it's magic and no one cares, now let's go build some games
The answer is it's magic and no one cares, now let's go build some games
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.
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 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.
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.
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.
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.
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.