How do you relate to non-technical people (read: your significant other/mom/dad/family/etc.) about your job with programming? When asked about how my day was at work, I find it rather difficult to explain anything specific without going over their heads. How do you handle such situations?

+7  A: 

Perhaps find other topics to discuss instead? Something you can both be interested in?

Or if you really want to discuss it, find someone else, like a friend from work, to discuss such topics (someone who of course can understand the details and bounce back in the conversation with meaningful responses).

Or you can talk a little more abstractly... "We fixed a bunch of bugs in our application today!" rather than describing the details of the bugs.

Thankfully my significant other is in the software business, so I can speak technical stuff with her and not have it go way over her head :-)

Mike Stone

I'd say I work on developing computer-based solutions and tools that ease other people's lives.

My job goes from defining a good description of what those tools are supposed to do, steps through designing the way those tools will work and how they'll look, and then I use all those intricate techniques (known as programming) to bring this design into life.

I know that many details are not in there, but as it's a description to someone who is not a professional, I think it's enough.

Mario Marinato -br-
+2  A: 

When asked what I do for a living I say to people, "You know the wings on planes? [pause] Well it's nothing to do with them.", then I quickly change the topic to something less dangerous for their minds like The Weather or how the price of beer has gone up.

The price of beer is coming down.
+53  A: 

I find the best way to describe it is to compare it to something that they can more easily understand.

For instance: Say you design algorithms. Tell them that what you do is quite similar to writing a recipe for cooking. Only computers follow the instructions instead of chefs. This is actually particularly applicable to most programming jobs.

Say you program the core of an application. Tell them what you do is like a construction worker putting together the skeleton of a building. You are doing the brunt of the work, and more people will come after you to make it pretty.

Say you do UI work for the previous application. Tell them you are the interior designer of computer programmers. You take the plain, bland building someone else has build and make it livable and usable for everyone else.

Things that other people can relate to make it easier to understand.

It sounds condescending to me to tell it that way to people, but I dunno, maybe it's just because I get it.
No, I don't view this as condescending at all. If the other person is a developer as well and is asking what you do then yes, it's probably rude to answer like that. To those outside of the CS crowd, however, the above examples are far more informative and respectful than the usual answers of "Complex computer stuff, you wouldn't understand."
+48  A: 

"Highly Paid Typist."

Mark Harrison
+5  A: 

I have the same struggle. I've chosen to avoid discussing work entirely, as it takes nearly as much effort to figure out how to describe what I do all day than it does to do the work. Building software is a mentally grueling exercise of taking the everyday work-a-day world (your domain) and translating that world through abstraction and metaphor into technology. By the time I get home from work the thought of reversing that process to transform the technology into a metaphor other humans can relate too feels completely unmanageable. Fortunately the few attempts I have ever made at describing my work were so tortuous and mind numbing to the people trying politely to pay attention that nobody asks anymore. Now, a creative, right-brained person (the opposite of the programmer) could probably come up with pleasant metaphors for what we do that would entertain and delight even children, but tragically those people are usually not us.

+10  A: 

It probably sounds pretty corny but I try and talk in terms of business features. After all I usually have to justify/explain how I spend my time to non-technical people like managers and clients.

Hi Honey, I had a great day today. The client has a system for collecting info about their customers from a bunch of different sources and then presenting a "true vision" of their customers that combines all of that data for management reports.

They changed a bunch of their rules last week and I managed to get the system to do half of them changed over today. The client is pretty pleased.

+4  A: 

I do maintframe applications maintenance for my day job and the answer I give them is I work with the IT dept of so and so and I fix their computer programs. They rarely ask for more information after this. On my own time I do custom software development and the best analogy I found is to tell them what does a cabinet/carpenter make? Then I do the same thing with computer programs, people tell me what to make and I make it for them. After this sentence the conversation moves on to some other non-tech topic.

+15  A: 

I tell a bunch of idiots who are really awesome at maths what to do.

As a student I've found that it's really a test of how well you know your stuff if you can quickly make something so simple to understand on a shallow level, like using a car body shell/engine analogy for how a game is written etc.

Anyone you're in a relationship with usually takes enough of an interest to understand subjects at that base level needed for light banter( I'd know even closer to nothing about stuff like biochemistry, podiatry or art history if I hadn't bothered !), however when you get excited and try to explain something too technical, a sincere smile appreciating your joy should be all you expect ^_^

+9  A: 

I don't find it that difficult. How would you explain what you've been doing to a non-technical manager?

Just take out all the technical details. "I fixed a bug where our program would crash if you cancelled the File-Open dialog box". If they ask why it was crashing, "the program wasn't checking whether you cancelled the box or clicked Ok, so it would try to open a file even if it didn't know the name, and you can't open a file without specifying the name."

What's a dialog?
What's a file? a bug? a crash? I'm with you for talking to slightly technical people, but for many others (who call the computer tower thingy a "hard drive"), that's pretty dense.
Michael Haren
"computer shut down when I closed this window"...
+1  A: 

If you have a blog, and/or a website, that is a good place to point them to, that way they can formulate opinions at their own leisure (worked well for my own family, who are all very non technical). They appreciated it a lot.

Michael Neale
+3  A: 

Good question :)

I used to think about what I actually have done after a days work, programming. Well, more for a joke and trying to explain for my girlfriend and non-tech friends. Here goes.

I change magnetic patterns.

I can't tell you which or even where they are because the computers I work on are placed in cold computer storages and the disks are often RAIDed. But the net effect of a days work programming is just that, changes of magnetic patterns in some harddisks. From those pattern there are many layers of abstractions that is hard to explain...

+1  A: 

I find that explaining 'by example' is the only thing that really works for getting people to understand what I do. Without getting a comparison across, there usually is very little understanding.

That said, I sometimes find that people aren't that interested when they find out I 'work with computers', anyway... ;o)

+5  A: 

I think it's perfectly reasonable to avoid going into technical specifics when answering the general "What did you do today?"-type questions.

Where it gets trickier is when people want (or think they want :)) to understand some of the detail of what programmers do. I wrote up an example on my blog which covers some of the programming stuff I tend to work on. It goes down into pseudo-code level examples, but mainly focusses on some basic, OO programming concepts without getting all CompSci on people :). I've had pretty good success with it so far.

Hope this helps. :)

David Tchepak
+1  A: 

Depends on the crowd. Take my Dad for example - he was in the software business (management though) and I can explain to him what I do, starting from the abstraction and getting more and more specific. If he's interested, I go down for more details, otherwise, I leave it alone. After enough of these sessions, I'm think (hope) he's got a pretty good idea what I'm doing. Take my Mom for example - she has trouble handling Word, though her strength lie in numbers (especially those with the currency mark in front of them). I tend to explain to her in terms of user interface and business aspects of what I do and how the customer benefits from using our software. Usually it works, sometime it fails. When it does (fail), I don't push it.

People in general are stupid. Specific people (especially the ones close to you) tend to be smart [That's a paradox, but it's also true (from the subjective "I" point of view)]. They'll (people who are close to you) understand what you talk about. Maybe not today, but with enough patience, it'll come and you'll have a much richer experience talking to them.

Ran Biron
Upvote simply for the comment of "People in general are stupid." :D
+2  A: 

I always tell them I am a "pilot" for the KLM or something like that...

That's because people are not really interested when they are you what you do for a living. People do not have any other material to talk about, so they ask the basic stuff. In my expierence they usually look quite bored when I talk about my job...

Also, people are always trying to get you to do stuff for them.. If you are a gardener, they have a garden that needs tending.. If you are a construction worker, chances are they need a new bathroom.. and if you are a software developer... well good chance that they have a broken laptop somewhere around that needs fixing, and before you know it, you are wasting your saturday afternoon cleaning up spam on someones computer that you have recenently met at some party somewhere...

Just my 2 cc :)

+2  A: 

I am just the same as a builder - i just have different bricks.

The builder builds homes that you live in - I build software that you use.

+3  A: 

"I work with the Internet".

+1  A: 

When I try to explain what I do as a developer to someone who is non-technical a large percentage of the time their response is in the vein of "that sounds incredibly boring, how can you sit at a desk all day and do that?" And I usually come back with "I know of no other job in the world where I can be an architect, a carpenter, a plumber, a designer, an artist, a detective and a test pilot all on any given day".

If they still give you the glossy eyed look after that just hold your hands up in front of their face, wiggle your fingers and say "With these I create LIFE! muhahahahahahah!" and walk away.


I've always said that "I make computers do magical things" or "I make something out of nothing."

Tim Sullivan
+4  A: 

"I am a janitor"

...that should shut them up!

Factor Mystic
+23  A: 

There's an old Russian joke right on the topic.

The teacher asks a 1st-grader's father:

-- What kind of an education are you providing your child with? When I asked him what you did for a living, he replied that his father was a pianist in a whorehouse!

-- Well, I'm a UNIX system expert. Go explain it to him.

Dmitry Shechtman
+9  A: 

I explain it, brag, and tell them off all in one by saying: "I tell computers what to do and how to do it, and that's quite a bit more complicated than you think. Think it's hard to use the computer? You cannot possibly comprehend how hard my side is."

9_9 .
a la the Einstein quote: "Do not worry about your problems with mathematics, I assure you mine are far greater."
Kevin L.

I write database software, and it's sometimes hard to explain to people what I do and why it's not incredibly boring, since databases are not something that the average non-techie uses directly.

One of the guys that I used to work with is now a VP at RIM, and he noticed quite a difference when he started there -- rather than a potentially long drawn-out description of what a database is and why it's useful, he can now just pull out his Blackberry and say "I make this." Shorter description, and a higher "wow" factor.

Graeme Perrow

Long explanations are sure to induce glazed eyes inside of 30 seconds. For that I reason, I try to keep it short.

"I design and build software."

+1  A: 

I write software the world has never seen before


It depends on how interested a person is, especially when discussing it with family (who are interested but have trouble with the technical details, being non-technical)... they know I "code" and do a lot of work with computers, and normally I just say "Oh, today I built a website to sell advertising." or something along those lines.

Otherwise, it's generally "oh, I make websites" (the concept of 'web design' seems to be easier for people to grasp than 'web development' or 'web applications'). Otherwise, comparisons to things people understand tend to work best.

James Inman
+4  A: 

Car analogies.

Cars and computers are a lot alike, which makes them popular targets for comparisons.

They're both big, expensive machines which everyone has to have, everyone is expected to operate, few know how to really use 100% effectively, and very few know how to fix. It's become a tired cliche amongst techies to use car analogies but for the average person, the car is the most analogous thing in the world to their computer. It also helps assuage them of their technology fears - a number of people still hold to the idea that the world was much better "before these computer things came along", but not a single one of them would do without their cars (note that my reasoning falters a bit in large metropolitan areas like New York City where one could conceivably live just fine without owning a vehicle)

For example, you make arrangements for a group of friends to meet at a location for lunch. One of your friends does not arrive. You call him on the phone and ask "where are you?" he says "my car broke down, sorry - I can't make it."

What do you say? Do you say, "Well why don't you walk you lazy bum?" No. You, you say you're sorry he can't make it, or you offer to come get him, or maybe even offer to come help him take care of his car after lunch (i.e., drive him home from the mechanic)

Now let's say you went over to a (different) friend's house for some reason. Dishes are piled up in the sink. Piled up all over the house. Rotting food, drawing flies, etc. You ask your friend why he hasn't cleaned the dishes in a while he replies "oh, my dishwasher is broken - it's going to be a week before the part comes in."

What's your reaction? "Why don't you wash the dishes by hand you lazy bum?"

A dishwasher is a big expensive machine that helps a lot but if it goes on the blink you're expected to just get by without it. A car is a big expensive machine that if it goes on the blink you're not as expected to get by without it. People expect you to wash the dishes by hand if your dishwasher breaks, they don't expect you to walk the distance that previously took twenty minutes to drive (the exception of course is getting to work - you've got to work out a carpool or something there).


"Makey worker of all things computery."

That's my catchline.


After years of family reunions I have learned that if I can't explain what I do in a single sentence I get the eyes glazing over look. Even though I'd like to think what I do is much more involved, I just tell anyone who asks "I work with computers".

brian newman
+1  A: 

My stepdad asks me this all the time and I have a hard time explaining it. He is extremely non-technical.

He just keeps repeating something like,

"if I'm a woodworker, at the end of the day, I look at the cabinet I built and have something to show for it."


"as a mechanic I can fix up a car and sell it. How is working on a computer productive?"

The gist of it is that he--being computer illiterate and having a couple teeagers--assumes that computers are only useful for games.

I've tried to explain to him that I "try to make computers easier to use" and at the end of the day, I have an intelligent application that helps people. I think at this point he, along with others just don't get it because they don't want to get it.

He has decided before opening his mouth that computers are toys and my job is just to play with toys--regardless of the fact that it pays well.

I'll definitely try some of the analogies (cooking, construction, etc.) that have been suggested, thanks!

Michael Haren

As far as describing what you did on a specific day? Impossible. And its quite annoying. Because I have a roomate that talks about his job all the time.

+2  A: 

I tell them the truth. Then when I see them nodding off, I just walk away.

+1  A: 

When I was six, my father told me he was a number doctor. (He worked for the local electrical utility doing demand forecasting -- how many power plants to they need to build to handle demand twenty years from now. Try explaining that to a six-year-old. It involved a lot of numbers, so "number doctor" seemed like a reasonable explanation.) I knew of only one kind of doctor, the medical kind, so obviously these numbers were sick and needed medical attention. I cut numbers out of cardboard, gave them faces and limbs, and presented them to my father to figure out what their medical problems were and how they should be treated.


Professional computer geek

John Meagher
+1  A: 

Explain like you are explaining to a fifth grader.


"Hi, I'm Bob and I make computers do work."

Dr. Bob

This really depends on their background, but typically just find a way to relate what you to do something that is familiar to them.

Mitchel Sellers

I like to describe it as the science of managing complexity. Our job is to break a complex problem down into the simplest discrete sub problems, then manage the complexity of putting all those sub-problems back together again in an organized fashion.

It isn't strictly accurate, nor does it need to be. I think it gets the point across without being overbearing or overly long. :)

Greg D
+1  A: 

I'm a digital construction worker / architect. I build and design structures, both for beauty, like a park, and for business, like an office building or supermarket.

I spend time designing the foundation and breaking ground and building up from there. I add doors for people to enter and furnish the inside so people can use it. I put up nice windows, paint the outside, and landscape to draw people in.

This is beautiful
Varun Mahajan

I try to use as many non-technical analogies as possible. Kinda like the guy from Numbers.

Jeremy Reagan

"I make the internet go."

Actually, I use a program they have as an example and talk about the things it has to do. For example, AIM has to start, get a buddy list, be able to send and receive messages, etc. I tell them that there's a special way of telling the computer how to do all those things, and it's called a Programming Language.

Hopefully, at that point, they're either bored or have questions.

Ian Potter
+1  A: 

It really depends on what you're doing and who you're talking to.

My biggest problem is generally that as soon as "computing" gets mentioned, I'm now the support guy. Any problem with their ISP, wireless router or Word doc and I'm first on their phone.

My doctor friends have the same problem - you introduce yourself as a medical professional and suddenly all the aches, pains and concerns are weights on your shoulders.

Currently I work within a financial services company which makes the current news cycle my friend as now more people understand what we do - and that's been the bigger obstacle recently. I can explain the programmes I write (graphs, charts, grids of data) quite easily, but explaining quite the company does ...

Exactly - and everyone assumes you know Excel and Word backwards, which of course being a coder one has less idea about them than the average office worker

You instruct a computer how to perform a task or tasks for people. The tasks may be extremely complex or may just be more time consuming for a person to complete. This is a pretty simple explanation that most folks will be able to follow, even without technical knowledge.

John Kellar

I'm a digital construction worker / architect. I build and design structures, both for beauty, like a park, and for business, like an office building or supermarket.

I spend time designing the foundation and breaking ground and building up from there. I add doors for people to enter and furnish the inside so people can use it. I put up nice windows, paint the outside, and landscape to draw people in.


"I build websites." Even if you don't, its concise ans easy to understand.

+2  A: 

I would explain it in terms of "if I mess up, what goes wrong".

  • "If I mess up, you can't get movie times on Yahoo"
  • "If I mess up, nobody gets their welfare checks"
  • "If I mess up, the wrong guy gets elected President"

and so on.


A lot of what we do has to do with people, other people or ourselves. We get requirements and questions from the customers. Those can come on time or later on as an addition or even a surprise, there can be misunderstandings. We have to interface with other teams and other team members to divide the work, those people can be smart or not so smart, they can be friendly or petty and annoying. When we work on a problem we can find it rewarding or frustrating.

All those are things that need no technical know-how to understand. If you spent few hours in a design meeting arguing several options, your father might not be able to understand those options, but he may be able to understand what a long argument feels like. he might even ask a question that would surprise you like - can you make test cases to try the different options.

For people who are not interested in the day to day details but just want the big picture I would try to describe what is that the program I am working on is supposed to do:

-"I develop a software for insurance companies" -"Isn't it boring?" -"Well I thought it would be at first but actually there are some interesting challenges. I don't have to do all the boring statistics myself, I teach the computer how to do that" "But you just sit in front of your computer all day long? how can you stand that?" -"Oh its nothing like that at all. We usually consult each other, we have to talk to decide how different parts of the system will interact, or we help each other with difficult problems. Some times I long for some alone time with my computer."


Whenever I'm asked what I currently do for a living I just say

I shoot web

+5  A: 

When people really want to understand what I do for a living, I usually give them the following example: (It works well when training new programmers as well) Give someone a loaf of bread, a jar of peanut butter and a jar of jelly and a knife. Tell them that you know how to perform simple tasks a child can do. For example, most children know how to unscrew caps and grab a knife, but they can only retain certain instructions in their head at once, and can only follow a few directions at a time. Thus, "Spread the peanut butter on the bread" is too complex of an instruction, and needs to be broken down into smaller commands, such as "Open the jar, put some peanut butter on the knife, etc." Depending on how anal you want to get with the process, you can show them the difference between "high level" abstract languages and Assembly. This also goes well to prove the theorem that all computer languages can accomplish the same task.(Have someone do it once in English, and once in Spanish) Once they appreciate the tedium involved in something simple as making a "program" to make a peanut butter and jelly sandwich, they usually understand what I do on a daily basis quite well, and understand when I complain "it just isn't working."

+1  A: 

You can't. Don't even bother. And even if you could, they really don't want to know. To the vast majority of people, what we do is boring. Explaining what we do is even more boring.

"I program computers" or "I write software for businesses" or "I design web sites" is sufficient. Frankly, they're already bored, or they wouldn't ask. So don't push them over the edge by trying to explain. ;-)

Steven A. Lowe
dear drive-by downvoter: sorry that you're offended by the truth, but what we do for a living is incredibly boring to the rest of the world. Try explaining your latest technical triumph at a party, and see if you're ever invited back ;-)
Steven A. Lowe
+1 totally agree

I work on embedded systems. I tell people that as long as no one realizes there's a computer inside the device they are using, then I've done my job.


Albert Einstein said "If you can't explain it simply, you don't understand it well enough".

An opportunity for self-development by looking at things differently? Throughout the day, think "how would I explain this to a layperson?", and see what happens.

Jonathan Deamer
+1  A: 

Artificial Intelligence for Robots.

Everyone likes robots.

+3  A: 

I don't. I used to try. Even had a nice 30 second spiel down with all the construction metaphors. But 90% of the time you just get blank stares back.

I have deduced a few reasons for this:

1) People understand the connection between a construction worker and a house because they've seen people building houses since they've been little kids. Very few people make the connections between the software they use and the people who built it because they've never seen a programmer actually do "work".

2) Most people are not inquisitive about things if it is outside their comfort zone. People feel very vulnerable when they don't understand anything about what you do. They've seen a doctor and lawyer on TV, but they've never a developer. They just don't want to appear stupid.

3) Most people are very stupid and cannot think abstractly. A house is built of wood. A program like iTunes must be built of music. Most people will never get beyond believing that you are doing anything more than just typing into a Word document.

So now, I use my vertical: "I build a medical eduction website". Mentioning what your business does, as opposed to just what you do, seems to be much more successful conversation starter.

Good luck.


"I connect people all over the world."

-Web Engineer

Mark Hammonds

I often say that I'm like a potter or woodworker ... except instead of making physical things I make programs. It isn't exactly art, but it is a craft and requires the same kind of expertise, experience, and, to make something really good, talent.

Larry Watanabe

"I make computers talk to each other."

Kevin L.

Well... I come home dead tired with red eyes, dumb as a vegetable.. I cannot follow common conversations like "what was the weather like today" .... People who don't know me much ask: have you been drinking? are you a drug dealer? are you hooked on chronic? are you some kind of .. whatever deviant behavior? NO I am simply a software developer coming home for some rest! Please get a degree in CS and try it out for yourselves, I can't explain it but it's much funnier that what it could sound like!