Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Too right. People who want to be coders shouldn't be CS majors (though the better coders tend to be CS majors), they should be IT majors and study programming. People who want to understand the theories of computation should take CS. It's that simple.

It's a common misconception that programming = CS. It stems from the fact that programming just so happens to be a very convenient way to compute things, so it happens to be what most people who don't understand CS see.



In most universities, the computer science program is the best way for people to learn how to program. In the future, I think CS departments will split into software engineering (which focuses on teaching students how to program and engineer software) and computer science (which prepares students for careers researching in the field of computer science). But that's not how things are in most places.

Also, "theory of computation" is an area of computer science theory. There is much more to a CS curriculum than theory of computation.


>In most universities, the computer science program is the best way for people to learn how to program. In the future, I think CS departments will split into software engineering (which focuses on teaching students how to program and engineer software) and computer science (which prepares students for careers researching in the field of computer science). But that's not how things are in most places.

Too right. I agree with this. I think that the "field" of software has generally gone in three directions.

1. How do you compute it (or Thinking about it)? That's CS 2. How do you plan to build it (or Planning it)? That's Software Engineering 3. Go build it (or Doing it)! That's IT

Sadly, at least at my alma mater, the trend of keeping these three fields separate has reversed. Instead, with budget cuts, the departments have merged under the CS umbrella. I think this continues to push forward the layman idea of these three things being equal because of how they are co-mingled -- but really they are as separate of disciplines as Physics is from Road Paving.

Ideally the number of students and practitioners in each fields should be distributed like a pyramid (a la any other engineering discipline). Most people doing, fewer people planning, and even fewer people thinking.

>Also, "theory of computation" is an area of computer science theory. There is much more to a CS curriculum than theory of computation.

I guess I also agree with this. I've always chafed at calling Computer Science the "Science of Computing" though since it's not a science in the classical sense. But everything I ever learned in my undergrad (not counting unrelated curriculum coursework) was definitely related to "computing" in even a loose sense of the term. I just don't think calling it the discipline of "computing" makes it any more clear since "computing" - the act of using a computer (like a Mac) and "computing" the act of performing computations, are easily confused. The "Theory of Computing" has always seemed to have the best balance while providing context for "computing". But I'm open to accepting other 2 word descriptions ;)


Software engineering is a young field. While I think separate SE and CS degrees is how things should be in the future, I'm not sure it's the right thing to do now. I recognize that SE programs do exist, but we (as a species) are still new at building software. We've been doing the other engineering disciplines much longer. And as you point out, we're unlikely to see programs split in a poor economy.

(I do have to disagree with your point 3: building it is very much engineering. I consider IT management and service of computing resources and information.)


All true, I think the very fact that we can have an interesting discussion about where the three major disciplines draw their respective lines is evidence of the immaturity of the respective fields.

I have a feeling that, with the way the three disciplines overlap, when everything finally shakes out we'll probably see the formation of a few more disciplines. We've been doing math, science, engineering and building things for thousands of years, but software for not even a century.




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

Search: