Edsger Wybe Dijkstra was a Dutch computer scientist.
He received the 1972 Turing Award for fundamental contributions to developing programming languages, once said:
"COMPUTER SCIENCE IS NO MORE ABOUT COMPUTERS THAN ASTROMY IS ABOUT TELESCOPES."
CS is REALLY DIFFERENT FROM a SE. ( CS != SE ).
A CS is a scientist who has acquired knowledge of COMPUTER SCIENCE.
COMPUTER SCIENCE or computing science (sometimes abbreviated CS) is the study of the theoretical foundations of information and computation and of practical techniques for their implementation and application in computer systems.It is frequently described as the systematic study of algorithmic processes that create, describe, and transform information.
Computer science has many sub-fields for example:
- Theoretical computer science
- Theory of computation
- Algorithms and data structures
- Computer elements and architecture
- Computational science
- Artificial Intelligence
- Software Systems
Many of us don't need any of this skill in every day work or at least a little of it.
SOFTWARE ENGINEER (SE) is a profession dedicated to designing, implementing, and modifying software so that it is of higher quality, more affordable, maintainable, and faster to build. It is a "systematic approach to the analysis, design, assessment, implementation, test, maintenance and re-engineering of a software by applying engineering to the software"
As a CS knowledge he's suppose to have the knowledge to manage real complex problem without knowing any really good programming language. IMHO here we can open another thread, where a DEGREE for me is ONLY a STARTING POINT and not a END GOAL.
As SE knowledge he's suppose to have the knowledge to manage the production of this real complex problem and manage the development of a team or a project about this field.
Together make the research in science made by a CS in applied Science with the help of a SE.
I don't mean CS is better than SE, i mean CS != SE.
This kind of question is the same question that non computer people ask to themself when ask to you why, as programmers, you are not able to fix by phone the problem of the program X,Y,Z on the operation system J,M,N. ;)
Actually I'm really bored of coding after 10 years of unix system development in security field and after reading this question i get the point, i need to study more computer science and less computer language and computer system or protocol!
No one at my work can handle the difference about SE and CS! it's really a bad things.
If you think that a CS can be an excuse to bad programming skill you are really miss the point about what it's a CS and what is SE.
I suppose you are a SE, do you know for example that all language, all paradigm and all computer language related stuff can be expressed mathematically in a set of partial recursive function and whatever you learn a new language, ANY NEW LANGUAGE, you are only learning a new abstraction over the SAME recursive partial function ?
have fun :)