Hacker News new | past | comments | ask | show | jobs | submit login
Why Computer Science (carterac.tumblr.com)
69 points by abfabry on June 12, 2011 | hide | past | favorite | 18 comments



Passions such as art history are far easier to pursue in life by constantly reading books, going to museums, and attending lectures. 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.

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.


I don't know how common it really is for someone to casually teach him/herself CS. Sure, a lot of people teach themselves to build websites or mobile apps, but ask them to, say, search/filter their results and it's pretty easy to see there's not a whole lot of scientific thinking going on. Learning Computer Science is very different than learning to code (i'm not saying it doesn't happen, but from my experience most casual coders don't care very much about the theoretical underpinnings - and don't often need to, with modern languages).


Of course, many people don't ever cross the gulf between "i can haz programming" and actual computer science. That doesn't mean they /can't/ self-direct themselves.

http://the-paper-trail.org/blog/?page_id=152 (from HN recently) http://overhack.wordpress.com/2011/06/01/self-directed-compu... (my own)


I agree, computer science is an applied goal-oriented branch of mathematics.

Many people simply don't read math papers for casual intellectual stimulation.


I've noticed this with philosophy; I did a CS degree, and was self-directed "interested in philosophy", but found my handful of philosophy-minor classes massively helpful compared to only self-studying. I still mostly read philosophy on my own nowadays, but I often feel that I'm missing some of the more solid grounding that I'd have had if I'd done a full degree in it. Giving myself crash courses on background I'm missing by reading Stanford Encyclopedia of Philosophy entries isn't quite the same. I think it would've helped in my actual area of research as well (some AI problems are closely related to philosophy problems), but there's only so much time in undergrad, at least if you plan to graduate in a reasonable amount of time, and the CS was probably on the whole more relevant than more philosophy would've been.


.... Computer Science is NOT the study of programming. I wish people would get this out of their heads.

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.


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.

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.


And you don't need much hardware investment; practically any miserable computer of the last decade will challenge you enough. In fact, having a shit-hot workstation to do your exploratory programming on might be bad for you. (Of course, I'm an old fart about this -- carved bits out of mother stone, hand-cranked our ALUs, etc.)


I think the debate is more about self-learning vs a formal education.

Moreover, a CS degree is overkill for most of the programming people do.


I would whole heartily agree. I'm a CS major working at a big company this summer. I've met people with no background in CS work in software development. Some people who should not even be developers at all. Others who are expert coders but shutter at the mention of a search algorithm.

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.


You can go too far either way. On the one hand are the CS theorists with their heads in the clouds. On the other are those devs writing naive algorithms and arguing that you should just buy more hardware who wouldn't know big-O if it jumped up and bit them on the nose.


I agree, but without a CS degree then its likely what you're doing is a study of programming but not actual computer science.


Such essays should be included in the literature given to students who are choosing a major.


"Computer science gives you the ultimate freedom to pursue your dreams." Great quote.


This is also really interesting for everyone else's majors as well - really seems to come down to pursue what interests you.


Computer science students should be preparing to be outsourced to Hyderabad.


I've been preparing since the year 2000--the first time I started hearing about how all development jobs were getting outsourced to India.

Hasn't quite went down like that, has it?




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: