4 ms·
This is a somewhat myopic and outdated description of what "code" or "software" is. I'm writing an article on this, but software is a much broader idea and doma
by bmitc 4y ago
This is a somewhat myopic and outdated description of what "code" or "software" is. I'm writing an article on this, but software is a much broader idea and domain than just getting computers to do something. At a minimum, it includes getting a computer to do something, communicating between humans and not humans and computers, and encoding a domain. All this adds up to software being "executable knowledge", which makes it far more powerful than thinking of it as just bits executing on a machine. Thinking of it this way also highlights all the problems with software, because the process of system design and encoding knowledge is downright hard and not something humans excel at. Getting a computer to do something is rarely the hard part aside from specific instances where pure performance is necessary.
It isn't surprising to me that the best software developers I have met have been those who either had no computer science degree or got it after having some degree or major interest in another field, typically a liberal arts or science field. Liberal arts are actually the study of systems in disguise because of the need to connect together various ideas, events, etc. that do not necessarily have clear delineations or relationships.
- the_af 4y agoAre you equating "computer science" with "coding"? Because it's really not. CS studies systems, complexity, requirements, domain knowledge, etc. I'm not arguing against people from other fields bringing valuable insight; I'm disputing that CS doesn't also involve the study of complex heterogeneous systems or that it is about "coding". Seems like you're describing a bootcamp or coding school instead.
- TheOtherHobbes 4y agoCS doesn't. At least not in any useful way. Systems Analysis and Knowledge Engineering typically assume corporate/industrial philosophies and goals. Broader human considerations - political, social, cultural - are very peripheral in CS. They get some token attention but they're always subservient to business values. The idea that software is primarily about human relations of all kinds is novel and rather subversive.
- the_af 4y ago> "They get some token attention but they're always subservient to business values" Hard disagree. CS education doesn't have business at its core, but science. It's all about systems design, theory, formal verification, requirements gathering, math, logic, etc. It's neither about (primarily) business nor coding concerns. You probably don't need CS for those.
- dagw 4y agoIsn't the core problem that universities have started offering far too much under the "Computer Science" umbrella. If they where to split it up into 5 or 6 different degrees, like Computer Science, Computer Engineering, Software Engineering, Human Computer Interaction, Business Systems design etc. then many of these problems of definition and meaning would disappear.
- the_af 4y agoDefinitely, multiple unrelated things are being "sold" as CS.
- bmitc 4y agoComputer science is not a science. Computer science typically bounces between mathematics and engineering, with some unique aspects of its own. But it definitely isn't a science, which typically needs a loop of hypothesis, observations, and theory.
- the_af 4y ago> Computer science is not a science That's a narrower argument that the one I wanted to make, which was that CS is not programming; it's theory/research/practice more like the traditional sciences. Whether it's a science or not is not as clear-cut as you claim [1]. There is argument about this, like about many things claiming to be "science". Here's a relevant quote from Wikipedia, attributed to Newell and Simon: > "Computer science is an empirical discipline. We would have called it an experimental science, but like astronomy, economics, and geology, some of its unique forms of observation and experience do not fit a narrow stereotype of the experimental method. Nonetheless, they are experiments. Each new machine that is built is an experiment. Actually constructing the machine poses a question to nature; and we listen for the answer by observing the machine in operation and analyzing it by all analytical and measurement means available." This does seem to leave out the more "mathy" part of CS, which isn't about building machines at all. For the record, I think CS is science. [1] https://en.wikipedia.org/wiki/Computer_science https://en.wikipedia.org/wiki/Computer_science
- bmitc 4y agoNo. Why?