Re:Learning to Code vs Learning Computer Science
by randomsearch on Monday February 10, 2014 @12:10PM
(#7212148)
I should really write a blog article about this, but let me make a few meta-points on the subject of CS:
1. I don't think it should be called CS. Not everything in CS is a science. It could be called "Computing" instead.
2. CS is not a branch of mathematics. HCI is not mathematics, for example, and HCI is an important part of CS.
3. CS is as a unique and inter-disciplinary subject.
4. Programming is not a science, or an art, or a branch of mathematics. Most of the time. The best description I have come across is that programming is a craft. CS involves and supports programming. You can program without a CS degree, but knowing CS will make you a better programmer than you would have been without it.
5. The term "Software engineering" is very unfortunate, just like the term CS. I'd prefer "software development", and as indicated above I consider it not to be like traditional engineering (Safety-critical systems etc. excluded). Software is not like bridge building, as many many people have previously pointed out.
6. Making analogies with other academic subjects is not particularly helpful, as CS is quite unique. Physics, Chemistry and Biology mostly study natural systems. In CS we are usually studying systems we have created ourselves.
I think it's all very frustrating, as our young discipline continues to seek an identity. There's a false dichotomy between CS being science or engineering; we need to get past that.
1. I don't think it should be called CS. Not everything in CS is a science. It could be called "Computing" instead.
2. CS is not a branch of mathematics. HCI is not mathematics, for example, and HCI is an important part of CS.
3. CS is as a unique and inter-disciplinary subject.
4. Programming is not a science, or an art, or a branch of mathematics. Most of the time. The best description I have come across is that programming is a craft. CS involves and supports programming. You can program without a CS degree, but knowing CS will make you a better programmer than you would have been without it.
5. The term "Software engineering" is very unfortunate, just like the term CS. I'd prefer "software development", and as indicated above I consider it not to be like traditional engineering (Safety-critical systems etc. excluded). Software is not like bridge building, as many many people have previously pointed out.
6. Making analogies with other academic subjects is not particularly helpful, as CS is quite unique. Physics, Chemistry and Biology mostly study natural systems. In CS we are usually studying systems we have created ourselves.
I think it's all very frustrating, as our young discipline continues to seek an identity. There's a false dichotomy between CS being science or engineering; we need to get past that.