Hacker News new | past | comments | ask | show | jobs | submit login
Don't major in CS: 5 reasons why (edn.com)
4 points by lpmay on June 29, 2014 | hide | past | favorite | 9 comments



"CS can’t even be expected to cover the principles of systems you’ll encounter in the next 20 years, much less your lifetime."

The theoretical parts of computer science - computational complexity, parsing with context free grammars, etc. - are not likely to go stale any time soon. (I'd forgive a physics major for being ignorant of these, but not not one who writes an article claiming to know something about CS.)

Even the fundamental design of operating systems hasn't changed much in decades: Unix, which some of the most popular operating systems today (Linux, OS X, etc.) are based on, has been around since the 1970s (probably long before the author of this article was born). A process is still a process, virtual memory is still virtual memory, a device driver is still a device driver, and semaphores, which Dijkstra invented in the 1960s, are still used today.

Relational databases have also existed since the 1970s, and most of the computer languages we use today were invented before the turn of the century. So I don't think there's much danger in everything we know about CS today being useless in 20 years. (I got a CS degree over 30 years ago, so I have some perspective on this.)


As a person with a degree in CS I have to say this is bogus.

The writer doesn't explicitly state what CS skills are but he says they will be outsourced. I take it he thinks CS means you only learn basic programming or how to install software. He then says it is good to spend time in the lab learning how stuff works. I had to learn plenty about how computers work from low level details to theory of computation to high level specifics of software design.

His second part about languages coming and going so therefore don't study languages?? seems odd since someone is apparently making all the new languages. Apart from that, understanding concepts such as oop or functional 'paradigms' are not as easy to wing although admittedly things are becoming freely available on the web.

Then he said people who build OS's are ditch diggers but if you look at how hardware has changed, building software that can handle different devices and allowing them to interact with the OS is huge! Just look at the evolution of super computers that physicists use. From vector processors to multicore cpu to gpgpu, there needs to be people who understand computer science to work on these things because computers require someone to know about computation itself.

Lastly, I had to learn computer architecture, physics up to quantum mechanics, and I had to take all sorts of deep math courses so the writer is completely wrong about the CS major.

[edit] and I forgot to add in algorithms and data structures which are themselves deep topics and no, algorithms are not useless, knowing which algo or data structure to use can save a lot of time and therefore money. I should say that theory of computation and algorithms really distinguish the major and add that currently in demand are skills such as machine learning or data mining which are subsets of the CS field.

If I was to give a reason not to major in CS it might be that the degree is very popular right now and the demand for the degree might at some point be larger than the demand for persons with the degree.


I graduated in 2002 and at the time people were really scared about outsourcing. I chose to go EE however. At the time what scared me was actually that my college education would be useless. I saw too many 13 year olds being invited to conferences, friends who never went to college becoming software engineers, etc. So I picked a field where I felt my college education would be an advantage.

In the end I got the CS masters anyway and now I realize that neither is really a threat and, despite what people say, the degree was very valuable. Depends what you do with it I guess.


This is exactly what happens when people speak on topics they have little or no knowledge of. Some of the reasons given not to study cs in "reason 0... Formalism of mathematics ... probablity and statistics ... circuit design" are topics taught in CS curiculums along with formal logic, langauge theory, discrete math, etc. Try determining the average runtime complexity of some algorithms without using probability or combinatorial math. Sadly, it seems some of his readers are just as ignorant on CS and will continue to spread this misinformation. One comment questions the validity of software engineering without mentioning the difficulty of the anology lies in the fact that our craft is unlike anything seen before -- as noted by Dijkstra long ago.


I'm actually not that concerned about CS jobs being outsourced particularly soon. I think the impulse to do it will be there - it seems like a readily outsourced job, right? just committing boilerplate code, right?! - but the reality is that determining requirements and co-located work is crucial (this is backed up by decades of research which I can go dig up if someone wants). You can no sooner outsource the development team than you can management and everyone else interacting directly with those developers. And at that point it sounds like you're just talking about a company in another country.

Reason 1 (about human culture etc...) should actually strike a cord with me since I studied Anthropology for my undergrad degree[0], but even still I disagree with this article's premise. Don't take "you should be focusing on HCI and culture" and conflate that with "you shouldn't study CS". This is a stronger case for the argument that social scientists should be taking CS courses (and vice versa) than it is for anything else.

In STEM fields I sometimes find people who condescendingly talk about social sciences and humanities students because their job prospects seem (and indeed are) grim. It's rarer that someone in one of those fields derisively fires back with crap about how shallow a CS (or related) education is, but it happens as it has here. It's not just unproductive; it's toxic. People instinctively respond by digging deeper into the trenches and preparing defensive, even offensive responses in retaliation for what seem like attacks on their intellectual passions. These posts polarize us and discourage us from engaging with people from other fields for fear that we're in for yet another flame war.

We should all be talking about how we can enrich our discourses with wisdom from other fields, not taking pot shots from our respective camps about how much better ours is than the other's. There's a lot that Computer Science can do for other fields, and a lot that other fields can do for CS.

0: to be fair, I double-majored, but I associate personally more closely with Anthropology at the moment (although for credibility's sake, I'm studying CS now).


I believe one of the key items that they are missing is that while "hip" technologies change quickly in CS, that you don't need to start from scratch when a new technology comes around. Usually, new tech is similar to an older or is a combination of older ones. So the more experience you have in CS fields the quicker you generally are to pick any new technology.


This article is so laughably boneheaded that anybody convinced by it is probably best steered away from any kind of engineering study.


There is a sniff of arrogance in the article. Coming from a physics major, of course. Because they know everything, right?


I absolutely agree about the tone. Non-CS major myself, but I don't get the impression that things like operating system design count as "ditch digging". I do think the question of whether CS is intrinsically useful in the same way as physics or engineering is an interesting one. Hope to hear a CS major's response.




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

Search: