The Future of Computer Science, and Why Every Other Major Sucks By Comparison(scottaaronson.com)
scottaaronson.com
The Future of Computer Science, and Why Every Other Major Sucks By Comparison
http://scottaaronson.com/blog/?p=442
33 comments
I went through a period where I worried a bit about that, but I've stopped. Regardless of how bioinformatics is structured politically, there's either going to be heavy CS involvement or, well, trouble.
The thing is, in general, a "person" might be able to hack together a small program that works for a particular problem most of the time, but it takes a computer expert to create a program that works essentially all the time, with good performance and strong reliability. If someone in the biology department is capable of doing that, it's probably because they're a "double-major", for some value of the term. A normal biology education will leave them unprepared, and trying to hack together a strong understanding of OpenMPI or something is certainly _possible_ but also extremely likely to leave gaping holes in their education. (Even if one has the brains to become both a biology expert and a parallel computing expert, one must question if that's necessarily the best use of one's time.)
CS keeps making it easier to write programs, but the cutting edge will remain CS's domain for a long time, and academia for some crazy reason tends to like the cutting edge. As specialization continues its march onward it will continue to become more and more difficult to be an expert in both $FIELD and computer science.
The thing is, in general, a "person" might be able to hack together a small program that works for a particular problem most of the time, but it takes a computer expert to create a program that works essentially all the time, with good performance and strong reliability. If someone in the biology department is capable of doing that, it's probably because they're a "double-major", for some value of the term. A normal biology education will leave them unprepared, and trying to hack together a strong understanding of OpenMPI or something is certainly _possible_ but also extremely likely to leave gaping holes in their education. (Even if one has the brains to become both a biology expert and a parallel computing expert, one must question if that's necessarily the best use of one's time.)
CS keeps making it easier to write programs, but the cutting edge will remain CS's domain for a long time, and academia for some crazy reason tends to like the cutting edge. As specialization continues its march onward it will continue to become more and more difficult to be an expert in both $FIELD and computer science.
This viewpoint seems to go against the HN zeitgeist -- a lot of programmers are self-taught, especially in the sciences. Just by necessity, students in molecular biology and genetics learn some scripting and how to push data around on the command line, and from that point a fair number of them really get into it and start studying the finer points of software engineering on their own.
(NB: Nearly everyone in bioinformatics has to accept some gaping holes in their education -- who has time to become an expert in each of biochemistry, medicine, computer science, and statistics?)
(NB: Nearly everyone in bioinformatics has to accept some gaping holes in their education -- who has time to become an expert in each of biochemistry, medicine, computer science, and statistics?)
There will be CS influence in informatics and data science, but I'm guessing the influence will come from individuals with CS backgrounds rather than CS departments. These individuals will leave CS departments to join other departments involved in domain-specific data science or more formal data analysis and learning methods (e.g., statistics).
The modern field of CS is too broad for a single department. Perhaps more universities will follow CMU, creating a school of computer science with specialized departments. Until then, expect to see CS undergrads and Master's students involved in informatics/ML joining non-CS Ph.D. programs.
The modern field of CS is too broad for a single department. Perhaps more universities will follow CMU, creating a school of computer science with specialized departments. Until then, expect to see CS undergrads and Master's students involved in informatics/ML joining non-CS Ph.D. programs.
After a couple years in industry, I personally have come to appreciate getting an Electrical Engineering degree instead of CS. For me, a C background was enough to get me thinking, and "on the job" programming problems drove me into higher & higher languages. I don't think I'd pick up basic physics, signals processing or Maxwell's equations on the clock, though. I'm glad I had a chance to study all that in school.
YMMV
YMMV
For what it's worth, my CS education included all of those things, though I suspect you probably went deeper with signal processing than I did. Basic physics and electromagnetism were required by the core, signal processing was a 400-level course so while I will admit I only took one, it did cover quite a lot at a deep level, it wasn't a sophomore introduction.
You have an interesting idea of failure.
I anticipate CS will become a more narrow discipline, just as math has (remember that almost all of theoretical computer science and much of theoretical physics and theoretical economics was once considered part of applied mathematics...). I would not consider that a failur though. Those who wish to focus on the theory will stay with CS and those who wish to focus on the application will drift into the field of its application, again much as math, and much as you described.
I would hardly call that either a failure nor would I think CS would be reduced to teaching intro classes. First, remember that in the parallel of mathematics, people in math heavy disciplines will continue taking math classes throughout their undergrad. Again, there is a real demand for people with math degrees both working in applied mathematics for the industry and because it makes a good basis to branch out to other fields (I am getting a masters in math and work as a DBA...) So, I would hardly call that a failure, just a narrowing of focus, which can be a good thing. Those who want that focus will stay with it with less baggage in the applied side, and those who want the applied focus can target that with less baggage on the theoretical side.
I anticipate CS will become a more narrow discipline, just as math has (remember that almost all of theoretical computer science and much of theoretical physics and theoretical economics was once considered part of applied mathematics...). I would not consider that a failur though. Those who wish to focus on the theory will stay with CS and those who wish to focus on the application will drift into the field of its application, again much as math, and much as you described.
I would hardly call that either a failure nor would I think CS would be reduced to teaching intro classes. First, remember that in the parallel of mathematics, people in math heavy disciplines will continue taking math classes throughout their undergrad. Again, there is a real demand for people with math degrees both working in applied mathematics for the industry and because it makes a good basis to branch out to other fields (I am getting a masters in math and work as a DBA...) So, I would hardly call that a failure, just a narrowing of focus, which can be a good thing. Those who want that focus will stay with it with less baggage in the applied side, and those who want the applied focus can target that with less baggage on the theoretical side.
>One "failure" scenario (to use "failure" loosely, since it's subjective) is, I think, the math one: CS becomes a narrow discipline of theory-of-computation, systems, and PL type theory, sort of like pure math.
I had a conversation with a friend only yesterday where I proposed exactly this. Some of the things that are now CS but I don't think will be in the future: graphics (as you said), HCI, robotics, and maybe eventually AI. I wouldn't be surprised to see both theory and systems (OS, parallel, etc) remain under the CS banner, though.
I had a conversation with a friend only yesterday where I proposed exactly this. Some of the things that are now CS but I don't think will be in the future: graphics (as you said), HCI, robotics, and maybe eventually AI. I wouldn't be surprised to see both theory and systems (OS, parallel, etc) remain under the CS banner, though.
Google docs link to slides: http://docs.google.com/viewer?url=http://www.scottaaronson.c...
Seems to be missing the jokes that the author wrote were included in the Powerpoint notes below the slides.
I uploaded it to slideshare with Scott's permission, and the notes are certainly included there: http://www.slideshare.net/llimllib/the-future-of-computer-sc...
I might be going off on a tangent here, but that site provided a rebuttal to that PPT...
http://www.slideshare.net/gmaney/computer-science-is-the-pro...
...though reading that presentation made me feel like I was reading Time Cube quackery. What the heck is "Automation Science?" Google didn't bring up anything specific...
http://www.slideshare.net/gmaney/computer-science-is-the-pro...
...though reading that presentation made me feel like I was reading Time Cube quackery. What the heck is "Automation Science?" Google didn't bring up anything specific...
Open office handled it just fine, thanks. And the notes are on the "notes" tab of the main display.
Thanks very much. I stopped downloading the 7 MB PPT file. Google Docs surely is the better option.
As a side note, do you think academia or startups are leading the charge in revolutionary technologies? As a post-grad, my point of view was firmly skewed towards academia, but the pace of iterative technological improvements by startups makes it seem as if in the short term, startups are driving new technologies more than academic research.
A lot of startup founders are people who leave academia for one reason or another (graduates, ex-academics).
Also, a lot of excellent ideas (e.g. the Web) were of almost no interest to academic researchers in relevant fields at the time - they dismissed it as a toy. And perhaps from a purely academic viewpoint they were right - but that doesn't mean that it isn't of use to billions of people.
Also, a lot of excellent ideas (e.g. the Web) were of almost no interest to academic researchers in relevant fields at the time - they dismissed it as a toy. And perhaps from a purely academic viewpoint they were right - but that doesn't mean that it isn't of use to billions of people.
The last line in the slide notes is the best, "you COULD come to MIT and do something other than CS, but it would be like going to the greatest steakhouse on earth and then ordering a salad."
As long as new digital products are produced, it still needs the basic software for its basic functionality. Unless if every device is using the same technology and the same set of software.
Bringing women into computer science is also an important task. Of course we need also to address keeping women in computer science, but since this presentation is about admittance, we need to be sure women are not isolated.
Slide 6 represents Facebook with an attractive woman. (why?) Slide 13 compares steak to salad. (why?) (and note that it's not as if women do not eat steak, but culturally steak is a more "manly" food than salad)
Slide 6 represents Facebook with an attractive woman. (why?) Slide 13 compares steak to salad. (why?) (and note that it's not as if women do not eat steak, but culturally steak is a more "manly" food than salad)
"Bringing women into computer science is also an important task"
Why? Because political correctness says so?
I don't understand this obsession with "diversity" in the U.S., I really don't. Personally, I think that we should instead bring intelligent and motivated people into CS. If they're all white males, so be it. They could be black-asian mixed-blood muslim lesbians... who cares? Just as long as they're interested. People who choose a career based on the "coolness" factor dictated by the clueless masses are like people who choose jobs based on the title (I will kill the next person who claims to be hiring code ninjas)... they are sheep. We need wolves, not sheep.
Why? Because political correctness says so?
I don't understand this obsession with "diversity" in the U.S., I really don't. Personally, I think that we should instead bring intelligent and motivated people into CS. If they're all white males, so be it. They could be black-asian mixed-blood muslim lesbians... who cares? Just as long as they're interested. People who choose a career based on the "coolness" factor dictated by the clueless masses are like people who choose jobs based on the title (I will kill the next person who claims to be hiring code ninjas)... they are sheep. We need wolves, not sheep.
No, because people of different genders/ethnicities bring different perspectives to the table. Because if a field is dominated by say, white males, the few women or non-white males are going to feel (frequently with good reason) like they're not taken as seriously by, or seen as being as competent as, the other white males. This is regardless of quantifiers such as actual competence, knowledge, or experience.
While I agree with you that ideally the most motivated, competent, intelligent people should be in X field and those are the only criteria one should care about, the reality is all too often quite different.
While I agree with you that ideally the most motivated, competent, intelligent people should be in X field and those are the only criteria one should care about, the reality is all too often quite different.
"No, because people of different genders/ethnicities bring different perspectives to the table."
What does that even mean? What you want is diversity of opinion (so that, if one person has a bad idea, everyone else will call them on it instead of nodding like sheep), and diversity of talent (so that everyone doesn't share the same weaknesses). I suppose those correlate with gender and ethnicity to some extent, but why not try to hire people with lots of different resumes (coders at big companies, startup founders, independent consultants, people who've lived abroad in different countries, etc.)? That would be way more efficient.
"Because if a field is dominated by say, white males, the few women or non-white males are going to feel (frequently with good reason) like they're not taken as seriously by, or seen as being as competent as, the other white males."
Proof? Some fields are obviously like this, but why all of them, or even most of them? If a field is dominated by people who are born in the winter (as many professional sports are), is someone born in June going to be assumed to be less competent?
What does that even mean? What you want is diversity of opinion (so that, if one person has a bad idea, everyone else will call them on it instead of nodding like sheep), and diversity of talent (so that everyone doesn't share the same weaknesses). I suppose those correlate with gender and ethnicity to some extent, but why not try to hire people with lots of different resumes (coders at big companies, startup founders, independent consultants, people who've lived abroad in different countries, etc.)? That would be way more efficient.
"Because if a field is dominated by say, white males, the few women or non-white males are going to feel (frequently with good reason) like they're not taken as seriously by, or seen as being as competent as, the other white males."
Proof? Some fields are obviously like this, but why all of them, or even most of them? If a field is dominated by people who are born in the winter (as many professional sports are), is someone born in June going to be assumed to be less competent?
> No, because people of different genders/ethnicities bring different perspectives to the table.
Do they?
Note that if they actually do, the logical implication is actually less diversity within a given task area because different task areas benefit from different perspectives....
Do they?
Note that if they actually do, the logical implication is actually less diversity within a given task area because different task areas benefit from different perspectives....
If you're competent, you will be seen as competent.
No you don't want a product made by wolves. Because no sheep will buy it ever. Why do you need diversity? I've heard this story about a japanese stereo system. Nobody bought it, and they searched why. There were too much buttons on it - it had been only designed by a team of men, all engineer. You want diversity in the product conception because you want your product to appeal to a diverse (global) world. Of course that maybe be not valid for a plane autopilot system, but this is the case for many jobs (think of Web programming).
"Why do you need diversity?"
You want diversity of opinion and diversity of talent. The question he's asking is: why do Americans care so much about diversity of skin color? Why does it matter if the engineers are all black or white or Malay or whatever?
"There were too much buttons on it - it had been only designed by a team of men, all engineer."
Yup. Because all men are incompetent at UI design, just like how girls can't do math. </sarcasm>
"You want diversity in the product conception because you want your product to appeal to a diverse (global) world."
What does that even mean? The vast, vast majority of products are only intended for First World use, because only First Worlders have the money to buy them.
I really don't like how people use the words "cultural diversity" as a feel-good buzzword without actually understanding what it means. Real cultural diversity doesn't consist of dark-skinned people with bright-colored clothes doing some sort of ritual dancing. Real cultural diversity is like http://www.youtube.com/watch?v=OFkeKKszXTw - things that seem horrifying, disgusting, and wrong to us. (Biblical culture is roughly as distant from ours as many African cultures are.)
You want diversity of opinion and diversity of talent. The question he's asking is: why do Americans care so much about diversity of skin color? Why does it matter if the engineers are all black or white or Malay or whatever?
"There were too much buttons on it - it had been only designed by a team of men, all engineer."
Yup. Because all men are incompetent at UI design, just like how girls can't do math. </sarcasm>
"You want diversity in the product conception because you want your product to appeal to a diverse (global) world."
What does that even mean? The vast, vast majority of products are only intended for First World use, because only First Worlders have the money to buy them.
I really don't like how people use the words "cultural diversity" as a feel-good buzzword without actually understanding what it means. Real cultural diversity doesn't consist of dark-skinned people with bright-colored clothes doing some sort of ritual dancing. Real cultural diversity is like http://www.youtube.com/watch?v=OFkeKKszXTw - things that seem horrifying, disgusting, and wrong to us. (Biblical culture is roughly as distant from ours as many African cultures are.)
You're missing the point. I was talking about CS, not about product design. Turing machines have nothing to do with iPods.
Engineers are supposed to design systems given some specs. The specs are to be compiled by someone else. The designers are the ones who should worry about the buttons in the product. The engineers should worry about making the electronics and software work.
So, I say it again: we need wolves. Not just in electronics and software, but also in design, manufacture, etc. People who go along with the flow make good, loyal employees at some big corporation, but they will never create anything new... and the main reason is that they lack the motivation to create something new. If they had such motivation, they would be wolves.
Engineers are supposed to design systems given some specs. The specs are to be compiled by someone else. The designers are the ones who should worry about the buttons in the product. The engineers should worry about making the electronics and software work.
So, I say it again: we need wolves. Not just in electronics and software, but also in design, manufacture, etc. People who go along with the flow make good, loyal employees at some big corporation, but they will never create anything new... and the main reason is that they lack the motivation to create something new. If they had such motivation, they would be wolves.
I don't see the relevance between "wolves and sheep" and the rest of your argument. The point is not that we need to pressure women into CS, or market it to them in a glitzy fashion; instead, we simply need to make CS as comfortable an environment for women as it is for men, so that women who have the talent to succeed in CS choose to study it more often. In other words, we're missing out on a great deal of talent that CS could benefit from, and we want to try to bring that talent into the fold! Measuring the number of women in computer science, as compared to their proportion in the overall population, is just a proxy for our success in this task; assuming that men and women have aptitude for CS at equal rates, we expect them to be equally represented in the discipline, so when they aren't it suggests that other factors are keeping female talent out of CS and we want to fix that problem.
I don't pretend to know every reason for the gender imbalance in CS, but I can suggest a couple of factors that likely contribute. One is cultural stereotypes about the type of person who would get a CS degree. The stereotypical CS person in the US (and in the UK as well, if the BBC's TV shows are any guide) is an introverted, socially awkward, physically weak male. This stereotype is pervasive enough in our culture to harm many peoples' interest in computers from a young age; it likely keeps both men and women out of CS, but I suspect it has a disproportionate effect on young women due to the particular social pressures they face. Working to eliminate this stereotype would help everyone involved and bring more talent into CS.
The other factor is that CS can be a bit of a boy's club at times. I've seen some of my CS professors make comments that frankly shocked me about things like the role of women in the workplace. There's no excuse for this attitude; it can do nothing but push talented people out of our field, and anyone involved in academia should show no tolerance for this kind of behavior.
Frankly, I think this discussion of "wolves and sheep" is nothing but an excuse to sweep very real cultural problems, both in the general US population and in academic institutions, under the rug.
I don't pretend to know every reason for the gender imbalance in CS, but I can suggest a couple of factors that likely contribute. One is cultural stereotypes about the type of person who would get a CS degree. The stereotypical CS person in the US (and in the UK as well, if the BBC's TV shows are any guide) is an introverted, socially awkward, physically weak male. This stereotype is pervasive enough in our culture to harm many peoples' interest in computers from a young age; it likely keeps both men and women out of CS, but I suspect it has a disproportionate effect on young women due to the particular social pressures they face. Working to eliminate this stereotype would help everyone involved and bring more talent into CS.
The other factor is that CS can be a bit of a boy's club at times. I've seen some of my CS professors make comments that frankly shocked me about things like the role of women in the workplace. There's no excuse for this attitude; it can do nothing but push talented people out of our field, and anyone involved in academia should show no tolerance for this kind of behavior.
Frankly, I think this discussion of "wolves and sheep" is nothing but an excuse to sweep very real cultural problems, both in the general US population and in academic institutions, under the rug.
I don't know about "an obsession with 'diversity'" but that was not the point of my comment. The point was to find ways to avoid isolating women. It may happen that in completely "politically correct" disciplines there are, say, more men than women (or vice versa) but why would that be the case? Because of something biological? That's a bit absurd.
It's perfectly ok to value competence and interest-level over diversity. But why are there significantly fewer women in computer science? Because they are less competent or interested for some biological reason? Absurd.
Few women are in computer science for a host of reasons (and probably more we do not know about). Perhaps the slides I pointed out in the presentation are part of the reasons. It's hard to be sure but when we give presentations about joining CS, perhaps we can specifically try to avoid isolating women. (Of course, I have not solidly argued that those particular slides do isolate women.) And I mean specifically, intentionally avoid isolating women. That is, read over the presentation twice; the second reading is to find such issues.
It's perfectly ok to value competence and interest-level over diversity. But why are there significantly fewer women in computer science? Because they are less competent or interested for some biological reason? Absurd.
Few women are in computer science for a host of reasons (and probably more we do not know about). Perhaps the slides I pointed out in the presentation are part of the reasons. It's hard to be sure but when we give presentations about joining CS, perhaps we can specifically try to avoid isolating women. (Of course, I have not solidly argued that those particular slides do isolate women.) And I mean specifically, intentionally avoid isolating women. That is, read over the presentation twice; the second reading is to find such issues.
Slide 6 shows a college-age girl who doesn't match the CS stereotype uploading her brain to the great interbot -- it shows that tech is for everyone, not just unattractive and friendless geeks.
Slide 13 compares CS at MIT to steak at a steakhouse, and salad to any other major. As far as I can tell, most women prefer steak to salad, given the choice and no strong social pressures either way.
I'd say this slide set is much more encouraging to women in CS than discouraging.
Slide 13 compares CS at MIT to steak at a steakhouse, and salad to any other major. As far as I can tell, most women prefer steak to salad, given the choice and no strong social pressures either way.
I'd say this slide set is much more encouraging to women in CS than discouraging.
I'm not sure slide 6 counts as a positive viewing of women. The Facebook page is obviously doctored (such as "Sex: San Francisco, CA"). Her "Activities" are "food stuff, art, fixing up the house, friends." She is supposedly a Stanford Alum but remember this talk was at MIT. She also works at "NoddaCorp."
I also feel slide 6 is generally a negative view of CS, since it refers to "The Matrix", and the joke in the notes is about how people already upload their brains to the web and escape "real-life". Finally, "these are some of the LESS interesting things we talk about in computer science!"
This slide does not show that creating tech is for everyone, simply that, in this case women at least, make significant use of it (for better or worse...).
I also feel slide 6 is generally a negative view of CS, since it refers to "The Matrix", and the joke in the notes is about how people already upload their brains to the web and escape "real-life". Finally, "these are some of the LESS interesting things we talk about in computer science!"
This slide does not show that creating tech is for everyone, simply that, in this case women at least, make significant use of it (for better or worse...).
One "failure" scenario (to use "failure" loosely, since it's subjective) is, I think, the math one: CS becomes a narrow discipline of theory-of-computation, systems, and PL type theory, sort of like pure math. To get money, it spends its time teaching intro classes to other majors that the professors don't care about: the way math teaches everyone Intro Calc, CS will teach everyone Intro Java. And all the cool applied stuff, in this scenario, happens in other departments, which in 10 years will all also have computers, and many will know how to program. Not that likely, I don't think, but something to think about.