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

To me, Computer Science is about the theory of computation, and the analysis of algorithms, and to some degree about the design of computer programming languages.

Software Engineering is about the efficient[1] production[2] of larger-scale programs that adequately meet the need[3].

Software Development as a separate topic... maybe, for some things like games and UI. I don't really see it as a separate field, though.

[1] "Efficient" is actually a lie, but the sentence was already long enough as it is. I really should have said "somewhat less inefficient". You can never make it efficient. (The fundamental problem is that brain-to-brain transfer of technical information is slow, inefficient, and lossy.) But if you don't control the inefficiency, it's going to destroy your project.

[2] Production and maintenance. Larger-scale software also tends to be longer lasting; if you don't build something maintainable, you fail.

[3] This does not mean bug-free! But it means that the amount and severity of the bugs do not destroy the usefulness of the software.



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

Search: