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.

Possible Duplicate:
How do you share your craft with non programmers?

I tend to think that I might get such a question in the future...

How should I answer to it in layman terms?

share|improve this question

marked as duplicate by ChrisF Jan 30 '12 at 22:38

This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.

2  
1  
I agree with similarity to the first link, but not the second. –  Dov Sep 9 '10 at 19:05
    
It didn't come up as a suggested duplicate and thus I made this question... Please note that the possible duplicate is focused more on the activity (what's done behind the computer) while I wanted mine to be more general (how a computer can be programmed, the thing between a programmer entering code and the program running). But well, if it really feels duplicate, feel free to get it closed. –  Tom Wijsman Sep 9 '10 at 19:21
1  
Sure, I was just highlighting the possibilities, which might already provide helpful answers. –  Peter Boughton Sep 9 '10 at 22:43
1  
Let's say they are enough answers for this version of the question, feel free to close it! :-) –  Tom Wijsman Sep 11 '10 at 10:29

12 Answers 12

I write instructions for:

humans to read

and

computers to follow

share|improve this answer

I describe it as telling the computer what to do. You instruct it on how to take certain inputs and produce certain output. It does what you tell it, like a person following a recipe.

share|improve this answer
  • You have to write a novel, and you only have 50 words you can use, although you can define new words if you need them
  • You are creating a recipe for a complicated dish for someone who will do exactly what you tell them, without making a mistake, but they've never cooked anything ever and don't know the difference between a pot and a knife.
share|improve this answer

It's like trying to paint a still picture of a moving scene while someone slaps you about the head.
And keeps moving the canvas around.
And keeps changing the palette.
Whilst wearing rollerskates.
Blindfolded.
Surrounded by a swarm of bees.
Whilst getting happy-slapped.
During an earthquake.

share|improve this answer
5  
while it is raining, snowing, and hailing in a tropical storm –  Muad'Dib Sep 9 '10 at 20:01
2  
@Muad'Dib - horizontally :) –  Tim Post Dec 28 '10 at 10:41

Do you remember that Bill Cosby routine where he talks about trying to order his kids to do everything they're supposed to do before they go to sleep? From rough memory, "Go into the bathroom. Put the toothpaste on your toothbrush. Brush it all over your teeth. Spit it out. Rinse the brush. Rinse your mouth. Get into the shower. Turn on the water. Stand under the water. Cover yourself with soap. Rinse the soap off."

And then they come back downstairs in sopping-wet pajamas because he didn't tell them to strip before they got into the shower.

Programming is like dealing with a extremely bright, smart-assed child who will do everything you tell him to do. What you want him to do doesn't matter; only what you tell him.

And he speaks his own language, which you're gonna have to learn.

And other people have been telling him to do stuff, too.

share|improve this answer
3  
Weird … I can’t imagine that this feels anything like programming. Programming isn’t just about issuing boring instructions (that’s just part of the process). It’s about creating. I think the latter is the essence. –  Konrad Rudolph Dec 28 '10 at 12:06

You take a big problem and you cut it into pieces. Then you cut those pieces into smaller pieces. You repeat this task untill the task is so small that you say:

"I know how I can make the computer do that"

Then repeat for the remaining pieces.

Problem solved.

share|improve this answer
    
Binary solving? :) –  Michael K Dec 20 '10 at 17:56

It's like playing a dozen games of chess in your head at once, while your opponents are playing checkers.

Debugging is even worse.

share|improve this answer
    
+1 for comical relief. –  Evan Plaice Sep 11 '10 at 10:44
3  
@Evan: if only. it's true. –  Steven A. Lowe Nov 27 '10 at 15:19

My standard explanation goes something like this:

People think computers are really smart, but they aren't. A computer's a box with an IQ of 5, that just happens to be very good at crunching numbers very quickly. But it doesn't know how to think or how to reason. All it does is exactly what the program tells it to, without regards for the consequences of its actions. If it had legs, you could program it to jump out the nearest window, and it would do exactly that. Then you'd really see the system crash!

With that in mind, programming is basically about figuring out how to represent real-world problems as numbers for a computer to crunch, and how to explain the issue to a box with an IQ of 5 clearly enough that it will do what you want done.

share|improve this answer

I don't try to explain what I do. I try to make it sound like a technology sufficiently advanced as to be indistinguishable from magic, leaving people amazed at my mystical ability to greet entire worlds by invoking mystical languages of runes and symbols far beyond their comprehension.

People are impressed. "Tell us again," they say, "how you can see sharp over great distances!"

"Share with us," they beseech me, "the wisdom of pearls!"

It does get awkward when you tell people you're proficient in python and they expect you to be able to talk with their pet snake, but hey- just hiss a bit and they'll be none the wiser. I have very rarely been pursued by an angry mob seeking to burn me as a witch, so I'd say this is a safe strategy and a lot less work than trying to explain the technicalities of the job.

share|improve this answer

There's a cute Flash game, called light-Bot, which teaches you, what does instruction, program execution and subroutine means, just while you're playing.

share|improve this answer

I usually just say

I write knitting recipes.

Most grandmothers understand that this includes

  • Strict directions to be followed
  • Loops (repeat X times)
  • Conditionals (for size L do this, for size S do that)

Maps quite nicely actually.

share|improve this answer

I explain it's like the old joke about the shampoo instructions:

Wash.
Rinse.
Repeat.

"Oh no! I'm stuck in the shower forever!"

share|improve this answer

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