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 to explain programming to a non-programmer?

As a relatively new programmer (1 year professionally, many years as an amateur) I've run into many situations that sent me running to Stack Overflow for answers that failed my meagre experiences.

Tonight I received the hardest question ever.

My wife asked me:

What are you working on?

The questions is deceptive in it's simplicity. A straight forward and truthful answer of "I'm working on a c# class module for monitoring database delivery times" is sure incite suggestion of attempts to confuse.

My second instinct was to suggest that it couldn't really be explained to a layperson, after very brief consideration I came to the conclusion that this would likely result in a long and sleepless night on the sofa.

The end result was a muddled answer along the lines of "something to monitor automatic things to make sure they're delivered on time". The reception was fairly chilly, I had to make many assurances that I was not insulting her ample intelligence.

My question is thus, what is the best way to discuss your work as a programmer with your significant other who is not.

share|improve this question

marked as duplicate by gnat, maple_shaft Sep 5 '12 at 11:03

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.

4  
It might help to inspect your goals and see what the business goal is: what exactly are you trying to achieve that makes money (or avoids creating a cost). Sure, it's materialistic, but if you go up that chain long enough there's bound to be something that's easy to explain. –  Joachim Sauer Sep 5 '12 at 6:26
10  
...and that's why I date a philologist. She has no idea what I'm talking about, I have no idea what she's talking about, problem solved. ;) (Fortunately neither of us has any interest in what seems to be our only common ground, formal languages) –  Yannis Rizos Sep 5 '12 at 6:32
7  
"So what did you do today?" "Oh, computer stuff. And you?" "Language stuff." "Great!" ;-) –  Joachim Sauer Sep 5 '12 at 6:34
1  
@YannisRizos, haha, so your saying ignorance really is bliss? –  Jesse Sep 5 '12 at 6:41
    
@JoachimSauer That's... a pretty good description actually ;) We tried discussing Chomsky hierarchy once, but we moved on quickly. –  Yannis Rizos Sep 5 '12 at 6:42
show 8 more comments

5 Answers

up vote 9 down vote accepted

Just be patient. Explain what you are doing in a way that doesnt relate to code. 'our online store is slow, so I'm writing something that will monitor the database and find out whats causing the problems'. But most of all, dont be condescending to their intelligence. Your spouse will be with you a long time - they will start to understand eventually and become familiar with what you do. So while they may be giving you a blank stare now, in five years they may be asking why in the world you used C# for something you should have written in node.

share|improve this answer
    
“Explain what you are doing in a way that doesnt relate to code” – why? That sounds totally irrelevant and tangential. Not to mention uninteresting. –  Konrad Rudolph Sep 5 '12 at 7:10
5  
@KonradRudolph because to the persons in question (generically as opposed to spouses or equivalent) code isn't interesting - you need to give them something that's comprehensible in terms they can relate to. You can leave an opening for working towards code.. –  Murph Sep 5 '12 at 7:17
4  
+1 "Explain what you are doing in a way that doesnt relate to code" Exactly right. A non programmer couldn't care about all the finely crafted classes communicating through widget protected global variables and the nest of GOTO statements that you put in to confuse the maintenance group. Explain in terms that relate to their life experience. Anyone can understand "the website is slow and I am making it go faster". –  Ian Sep 5 '12 at 7:22
    
@Murph Then your job is to make it interesting. If you can’t motivate what you’re doing, why are you doing it? At least that’s normally how conversations work. –  Konrad Rudolph Sep 5 '12 at 7:34
2  
@KonradRudolph erm... that's a whole discussion and this is not the place! What I find interesting and what you find interesting are different things, explaining what you're doing and how you're doing it are different things, making the detail of what you're doing comprehensible to someone who is interested in code is different to trying to do so with someone who is not. A lot of being a developer is about pitching a converstation appropriately. In the end in order to make the code bit interesting you have to make the problem interesting (and sometimes the problem just isn't) –  Murph Sep 5 '12 at 8:18
show 1 more comment

My advice would be to start by imagining you're explaining what you do to your boss, with his limited knowledge. He knows the terms, it's true, but if he's not a programmer, you're going to have to summarize the importance of what you need to do (as it often happens, you have to do this normally at work anyway to justify time spent in doing activities). Once you have this, just then explain terms as they come up.

For example:

"What is dot net?"

"Oh, it's a framework Microsoft made which lets you write programs in Windows."

Explain only the basics of each term and explain better only if she inquires. However if she's like my wife, the conversations will usually go more like:

"So how was your day?"

"Oh, there was a problem with the program I'm working on. You see..."

"That's nice, sweety."

share|improve this answer
add comment

The best way I found is to explain the global need that made you start your project.

In the case of a db monitoring, you have to explain the global role of a db and why people use them... then you logically can explain what you are working on.

It mainly depends on the people you'll have in front of you. Most of the time people can understand the basic meaning of stuff we use in our everyday computer life (db: store things, cpu: compute things, shaders: put some colors on stuff...).

The best exercise is to try to explain your job to a child. I often use the Leprechaun metaphore explaining that Leprechauns are living in my computer and they often communicate with other Leprechauns... When I send an e-mail, for example, it's just a bunch of Leprechauns putting my mail in a little Leprechaun envelop and giving it to other Leprechauns.

If a child can understand the basic idea of what you're doing, you'll be able to add details to make adults understand your job more precisely.

share|improve this answer
    
When I talked to my wife as if I'm explaining to a child I definitely get "the look". She is smarter than me, just not a full-time programmer. She can certainly detect being talked to like a child in a few seconds. –  Michael Durrant Sep 5 '12 at 11:01
    
Well, that's not what I wanted to say. I was just saying that explaining your job to a child is the best exercise to train yourself at sum up your job in an understandable way. If you can find the simplest way to explain your job, you will improve the way you speak about it and soon you'll be able to chose the wise word according to the person you're trying to explain it (your wife or anybody). –  lvictorino Sep 5 '12 at 15:52
add comment

Diagrams!

I suppose it really depends on how much detail you care to go into, but if you have a bunch of black boxes with arrows into black boxes, inputs, outputs, it is simple to get your point across.

One nice technique, I actually just read from lifehacker, is using simple analogies. For example, in the case of explaining the difference between 32bit and 64bit Operating systems:

Imagine, if you will, an ancient library filing system that has a card to tell you where to find the book in the library—if you got a bigger box to hold the cards, the library would not double in size, you'd just be able to find the book you were looking for more easily.

share|improve this answer
2  
Diagrams are a good idea. But when someone asks me what I'm doing at work and I say "wait a minute, I'll bring paper and pencils...", it sounds a little crazy )) –  superM Sep 5 '12 at 8:54
1  
keep some close at all times so ;) –  lwm Sep 5 '12 at 10:09
add comment

The answer to this question must be evaluated by the tone of voice of the questioner. Usually my answer to this question is "Something more important than taking out the trash or doing the dishes at this very moment". If the question is not simply implying that my time could be better spent doing something else, I will explain in a basic minimal way and expand on the answer depending on how it is received.

share|improve this answer
1  
I recommend you add "but i will take out the trash later" because saying "more important than taking out the trash" also has an implication that your spouse does NOT have anything more important to do than that. Long-term you may find that taking out the trash is more important to your marriage than earning money and providing for your family. –  Michael Durrant Sep 5 '12 at 11:05
add comment

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