First, I don't know that I agree with the first bit. One may certainly dabble in art history (or many other liberal arts-type majors), but one won't get quite as much out of it as someone else who dedicates hours and hours to it over months and years. This holds true for all deep, non-trivial subjects.
Further, one certainly /can/ 'engage with CS on a casual basis'. People do it all the time, and they certainly don't always have "the world's best teachers" to guide them. Mentors, teachers, and professors play an important role, but many people do quite well in their chosen fields without that extra boost.
http://the-paper-trail.org/blog/?page_id=152 (from HN recently) http://overhack.wordpress.com/2011/06/01/self-directed-compu... (my own)
Many people simply don't read math papers for casual intellectual stimulation.
Computer Science is the study of computers, the science behind them. It's data structures, algorithms, compilers, math, discrete math and so much more.
Programming is just one tiny aspect of CS. Programming is the implementation of understanding not the basis for it. Compare Programming to writing English, you need to understand verbs, subjects, adjectives, nouns, adverbs, pronouns & how to assemble them coherently. The implementation of that understanding is what we call sentences. As akin to programming, Computer Science is the study and understanding while Programming is the implementation for the computer to function.
> I was tempted to switch into art history
> to escape the huge engineering workload.
My association with friends in the fine arts indicates that that would've been a horrible decision; probably depends on what college/university you're at, but while engineering majors seem to have a pretty consistently high workload, visual design, music composition, and art history majors seem to get periodically slammed with horrendously massive workloads.I thought about switching to animation for a while, and then realized that there's no way I could handle the load in the introductory-level classes. I suspect it's because there're lots of people who would like to do fine arts, so they make all of the 100-levels incredibly intense to filter in just the ones who are really talented and dedicated.
Sometimes I wish they'd do the same thing with the CS department.
> Computer science is impossible to engage
> with on a casual basis. It requires a massive
> and highly focused investment of time and
> energy, ideally with the world’s best teachers
> guiding you at the same time.
I believe this to be true as far as the theoretical, mathematics-based discipline of computer science goes. But it should be noted that you can become a fantastic programmer with very little formal CS background and casual engagement.This used to be somewhat traditional, to have a hardcore 100-level CS class as a weed-out, but my impression is that curricula are moving away from it. Partly, there's a worry that it mainly rewards how much knowledge you have coming into college: if the CS-101 course is really hardcore, the people who pass it are those who learned a lot about computer science on their own in high school. But if the university is supposed to provide an education program that can teach CS to people who don't already know it, that isn't quite what you want.
It also tends to work directly against universities' recruiting goals: they're spending all this effort to try to convince "non-traditional" CS majors (i.e. people who weren't already high-school computer enthusiasts) that it's an interesting and useful field to study, in which case you don't want to immediately kick them out in the first semester for not already being proficient enough.
Moreover, a CS degree is overkill for most of the programming people do.
In most places, I sense, CS is a ticket into a better position but for most people CS is overkill for the type of programming most .Net shops require. It comes down to learning basic control structures, syntax & utilizing libraries. It nearly becomes mindless & trivial for CS majors yet challenging and overwhelming to the kids taking C#/.Net classes.
Hasn't quite went down like that, has it?