Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

Granted, every profession has it's technicalities. If you are an MD, you better know the anatomy of the human body, and if you are astronomer, you better know your calculus. Yet, you don't have to know these more advance topics to know that smoking might give you lung cancer because of carcinogens or the moon revolves around the earth because of gravity (thank you Discovery Channel). There's sort of a common knowledge (at least in more developed countries) of these more advanced topics.

With that said, why are things like recursive descent parsing, BNF, or Turing machines hardly ever mentioned outsided 3000 or 4000 level classes in a university setting or between colleagues? Even back in my days before college in my pursuit of knowledge on how computers work, these very important topics (IMHO) never seem to get the light of day. Many different sources and sites go into "What is a processor?" or "What is RAM?", or "What is an OS?". You might get lucky and discover something about programming languages and how they play a role in how applications are created, but nothing about the tools for creating the language itself. To extend this idea, Dennis Ritchie died shortly after Steve Jobs, yet Dennis Ritchie got very little press compared to Steve Jobs.

So, the heart of my question: Does the public in general not care to hear about computer science topics that make the technology in their lives work, or does the computer science community not lend itself to the general public to close the knowledge gap? Am I wrong to think the general public has the same thirst for knowledge on how things work as I do? Please consider the question carefully before answering or vote closing please.

share|improve this question

closed as not constructive by gnat, FrustratedWithFormsDesigner, Robert Harvey, kevin cline, maple_shaft Apr 4 '12 at 19:01

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.If this question can be reworded to fit the rules in the help center, please edit the question.

12  
You won't hear the general public discussing protein chains either, but that does not make the biologist's job just as hard. –  staticx Apr 4 '12 at 18:11
7  
Because the public cares more about Kim Kardashian's wedding than about your descent parser. –  Robert Harvey Apr 4 '12 at 18:11
4  
Common knowledge around some subjects, such as medicine, could be because medicine has been practiced in one form or another for far longer than computer science, and so has had much more time to enter into everyday discussions. Also, having some common knowledge of medicine can have a direct and immediate impact on your personal health. –  FrustratedWithFormsDesigner Apr 4 '12 at 18:13
5  
@RobertHarvey: So... if Kim Kardashian started talking about parsers in interviews, perhaps then the public would care... –  FrustratedWithFormsDesigner Apr 4 '12 at 18:15
5  
How is this question constructive at all? –  Mike L. Apr 4 '12 at 18:15

5 Answers 5

up vote 24 down vote accepted

Does the public in general not care to hear about computer science topics that make the technology in their lives work, or does the computer science community not lend itself to the general public to close the knowledge gap?

In short, no and no.

Knowledge specialization in modern society exists to such a degree that not only do most people not care about the concepts you mention, but it doesn't really make any sense for them to. As people who understand these things, it may seem odd to us that others don't and odder still that they don't want to, but to what level of detail do we understand other professions?

Can programmers cite passages from the tax code by rote? Can we explain the specific mechanics of how our cars' engines work? Can we diagram up our houses' electrical systems? Do we know the names of all of the chambers of our heart? For some, the answer to these things may be "yes", but that's going to be the exception rather than the rule. And, what's more, is there some specific reason we should care about the answer to these questions and dozens more? After all, this is why we pay accountants, mechanics, electricians and doctors respectively.

The reason I rehash here what you covered in the first paragraph of your question is to emphasize matters of degrees. A given programmer may care about the subject of taxes deeply as a matter of self interest. It certainly affects him or her. But there is a level of abstraction at which "I get a discount for owning a home" is sufficient without understanding all the provisions and history of the mortgage interest deduction.

The average consumer needs to know about RAM and processor because those impact them in the pocketbook and in the user experience. Knowing how Turing machines work provides no actual benefit other than the aesthetic one relating to satisfaction in knowledge for most people. If layperson doesn't understand what RAM is, he will potentially get ripped off by a salesman at Best Buy and have a bad user experience. If he doesn't know some abstract concept, he'll still get his computer, his apps will still work, and he'll still be able to navigate with his GPS.

share|improve this answer

You have two very different things. You have academia and you have industry. Computer science is an academic pursuit. It's math and algorithm based. Then you have industry. Industry is application based. One is theoretical the other is practical. The public cares more about the practical, because that's what they use. The browser, the applications, etc. The computer science details are abstracted away (as they should be).

share|improve this answer

People talk about computers and computer science-y things all the time, and in general they do it at about the same level of sophistication as they talk about biology, physics, etc. Most people have some idea about concepts like Moore's Law, clock speeds, gigabytes, megapixels, and algorithms just as they know something about DNA, proteins, "good" and "bad" cholesterol, and so on. If you say "recursive descent parser" even to many programmers, it's about the same as saying "mitochondrial transcription factors TFAM and TFB2M": not something most people are likely to know much about.

share|improve this answer

I think it's because the layman views computers as a black box and as a result does not care what actually happens inside as long as it works. Add that in with a lot of people's fear of maths you don't get an environment were general discussion of the theory behind computing (computer science) occurs.

Also I think sometimes how we discuss the topic and sometimes shoot down questions (we all are guilty of this at some point) with 'it's complicated' or 'do you really want to know'

share|improve this answer
1  
    
Shooting down such questions is actually good most of the time. If a friend of mine asks me what dual-core means for example, I usually don't tell him. When I talk about these things and explain them (even in just a few very high level sentences) I can see their faces getting more and more bored. I hate that feeling so I avoid it. –  Radu Murzea Apr 4 '12 at 18:17

People in general don't care to know about how computers work as long as they do work. This is likely due to computers and related knowledge being viewed as very complicated (which is true in most cases). This may also likely be due to society viewing those that do have a lot of computer knowledge as "geeks", "nerds" and social outcasts in general and it is the fear of becoming labelled as one of these that keeps the general public from gaining too much knowledge.

I for one don't care that most people aren't interested in discussing computers and related knowledge. I myself try to discuss these things when appropriate, but I don't expect most people to be interested or to even understand what I am talking about.

share|improve this answer

Not the answer you're looking for? Browse other questions tagged or ask your own question.