Ask HN: Cognitive Science vs Computer Science

3 points by ucsd_surfNerd ↗ HN
I have been debating changing my major from Computer Science to Cog Sci with a specialization in human computer interaction.

I feel that the traditional computer science education stifles creativity and ignores important emerging areas such as web and mobile application development.

The question is would you hire a web developer out of college who did not major in computer science but had real world experience including internships at major companies.

6 comments

[ 4.1 ms ] story [ 26.8 ms ] thread
Actually it depends what classes you take. To learn web and mobile application development you mainly have to teach yourself. What I would do is try to go to a mobile / web user group and still get your cs degree. Note I am a student.
I feel engineers are born, not made, so if you don't have it in your blood, you are probably better off just picking and choosing a few good CS courses, or maybe getting a minor. It also depends on the school. Many schools have pretty lame CS programs and you're better off taking a finance class or an HCI class vs. filling out your electives with dumbed down "software engineering" curricula or boring "data structures III" classes. I switched my major to math because the first couple CS courses I took were duds and it hasn't hurt my career.

It depends on your personality, but personally I think HCI makes for a better career these days. The product managers I know make more money than engineers, work banker's hours, and don't have to deal with the stress of putting out fires or getting replaced by younger versions of themselves at age 35. You do have to go to more meetings, though.

Absolutely yes, provided they can do the job I need, and can demonstrate that they can do the job I need.

The job I need is adding value to the company, usually by programming.

Of the programmers I've hired, less than half have degrees in computing. It's interesting seeing the interactions between them, and seeing that each brings something useful to the discussions. When I interview, I'm looking for someone who can program in any relevant language, not just the ones we use, but who has an interest in a range of topics within computing, including a passing acquaintance with more than one language, more than one paradigm, and more than one context.

Can you write working code?

I did undergrad degrees in both CogSci and CompSci. Both have been virtually irrelevant to me in my software development career so far. Both were valuable to me for reasons of self-actualization. I would advise you to do what you find personally valuable.

I would not say that CompSci "stifles creativity", nor even that it ignores web development entirely (although that's a murkier point, and mobile is too new for most universities to teach it, which is just how it goes). But I would say that the overlap between what universities know how to teach, and what is relevant to working software development (in emerging areas and in well-travelled areas) is very small indeed, perhaps a few percent of each.

When advising my lead on a hire/no-hire decision, I would give absolutely no weight to the degree or lack thereof, and would give weight to a combination of 1) real experience, and 2) my (flawed and subjective) judgement of intelligence and skills.

All that said, apparently some companies still value the piece of paper. I think there are three levels of degree-ness from those companies' perspective: correct degree (cmpt, eng, maybe math), other degree(english lit, archeology), no degree. And I think that those companies will see a CogSci degree as virtually equivalent to a History degree: "Oh, I guess he's got a degree, so that's nice, but the content of the degree is not what we might hire him for".

Does anyone take academic HCI seriously in industry?

> Does anyone take academic HCI seriously in industry?

Microsoft, Yahoo, IBM, and Google have fairly big academic-leaning HCI groups as far as I can tell; they even publish quite a bit at places like CHI. Apart from machine learning, graphics, and storage systems, it's one of the easier areas for a Ph.D. to get hired in industry.

I am a philosophy major.

Algorithms are fundamental to good arguments, and in fact, knowledge in general.

Doing philosophy (especially logic & analytic philosophy of language and mind) has enabled me to see through the bullshit and know where the really interesting areas are to pay attention. Often a bunch of folks will turn off in class when discussing something that they see as just some sort of industry standard, and doing philosophy enables me to see the logical reasons why a particular strategy was adapted.

I can't imagine how anyone does computer science seriously without a philosophical interest in it.