25

Hi, fellow code wizards! I have a little question for you.

Many people like to talk about their recent experiences at work. They always have some interesting story to tell: they dealt with a mad customer, or they are working on a fascinating project, or one of their students is caught using drugs, or they have to organize some local event, etc... I'd like to tell such stories myself. But although my job as a programmer is interesting enough, I feel I have nothing tell about it to non-programmers, even if they are really willing to listen. I used to try every now and then, only to see faces expressing a total lack of understanding.

I'd like to tell about that nice little class I just wrote that enables making asynchronous calls easily, or about that fine specialized data container with fast lookups, or about that complex layout manager component. But I have learnt not to do so: it only bores my audience to death. I noticed that even if I just describe the new feature I'm working on, it is uninteresting and incomprehensible to them. Therefore I never talk about my job anymore. I was wondering if there is anyone who does talk about his job as a software developer to their friends and family.

Do you ever talk about your job to non-programmers?

32

I do this with my wife all the time - we have to have something to talk about, after all, otherwise what was the point of getting married? Oh, yes, that's right, the two kids :-)

But very little of work is writing fantastic classes that are hard to explain to the layman. It's more about victories over bureaucracy or dealing with brain-dead customers or getting software out the door bug-free or just managing to get an extra GB of RAM for the desktop machine.

Talking with humans is a very desirable skill you should nurture. It'll come in handy at some point, I'm sure :-)

26

Yes, definitely. Often when people ask I'll explain it in laymans terms, and it is suprising how many people understand if you simply use the right analogy.

A while back, my mum heard on the radio about "DMS attacks" (read: DNS cache poisoning), and so I proceeded to explain to her what DNS was, using the analogy of a phone directory. She actually understood the basics of what was going on by the end, despite the fact that she doesn't know much about it at all. I'm not sure if she's even aware that Skype uses a central "server"...

The trick usually is (as mentioned earlier) to forget the complicated jargon. For example, you don't tell your buddies that "Apache executes the PHP script server side, which produces HTML output, which is in turn sent to the user's browser via a HTTP response...". Rather, you explain that a PHP script is basically like a "recipie" of how the web page should be custom-written each time someone views it, then use the example of how Google's results page is different depending on what search words you type in, and then perhaps explain what yours does.

Or, describing "that fine specialized data container with fast lookups" might sound something like "I've designed this special way for the computer to organise the data in it's memory. It's called a "container", and it's for storing a special kind of data that does <abcd>. It allows the computer to work with the data a lot faster, and I'm going to use it in my code for doing <xyz>...".

Usually it means sacrificing a lot of detail and 3-6 letter acronyms, but it is good when they gain a basic understanding of what's going on, and often they're imensely intrigued once they get the idea. However, I do find a far greater rate of understanding from younger people, say, <30.

And sometimes a sufficient response consists of "My code won't do what I want and I don't know why... AARGH <bangs head against wall>"...

14

How would you feel if dentist described to you in great details his daily work ...

9

If a programmer talks about his job, it's often boring mumbo-jumbo to the masses. So you'd be better off talking about the product - if it's interesting enough - rather than the brilliant code that is behind it.

For example, I've been working on offline functionality for web-based software my company makes, using Google Gears. I don't talk about how I managed to create a toolbar in which you can use all sorts of developer-only tools to debug the software.

Instead, I talk about the doctors that are going to be using my software to eventually bring better medical care to patients in my home country. Why exactly it is necessary for them to go offline, what exiting features they can use.

In the end, it's clear that I'm the genius that made it all possible. Without giving them details on how I fixed that nasty Base64 decoded JSON to have empty null characters at the end of each string, which I had to remove using a regular expression.

7

When I have a problem or is stuck I talk to anyone polite enough not to run away.

I've even been known to talk to inanimate objects. (Rubber Ducking)

7

It depends on the non-programmer. It's pointless to talk to my parents about it, but my fiancée does a good impression of being genuinely interested. For most, it comes down to the effect of what you did rather than how you did it, ie "this runs in 1/3 of the time now" or "this will save £250,000 over six months".

6

No, why would anybody who didn't ask specifically want to hear about your "class" that makes "asynchronous calls"?

6

My relatives knows that I "work with computers", but they have no idea what I'm really doing. If I would talk about most concepts that I use daily, they wouldn't know what it was or even that they existed...

Most people don't know the difference between a web designer and a web programmer, although the difference can be almost as big as between a brain surgeon and a barber...

5

Sometimes I talk about it with people that have never seen code. (excluding Matrix code) Just to see the weird expressions their faces come up with. Not to compare us with 'm, but this must be what mages felt like in the old day ;p

4

I would rather not talk anything about great programming at all, sure they will never understand, but yes I will always show them my output, fancy little animation, fancy little game, infact best thing is to add humour in the program you are making and show them as pass it on forward links. In my university, I was famous to make a program that will automatically download all images from a website (it was very famous back in 2001, everyone wanted the hot pictures, although it was really easy and stupid program from programmer stand point) but it did get lot of attension, lot of humour to share.

I think you have to limit your talk about programming to only programmers, to others, take it as if you are not a programmer, just a friend, just a simple collegue, to pull down someone's leg, or laught at yourself and make a joke around you.

4

For me, I do, but generally to a very select few people who I've working out can be receptive. I always try to relate it to something they understand in their job or environment (calling it dumbing down isn't quite accurate).

Anything programming that doesn't have a UI element is not a good topic for non-geeks. Try to relate your work to something UI related that they may be familiar with - and you'll have a better recpetion. It is a skill in itself - and one that stands you in good stead for working directly with customer, and reaching out in a requirements field.

I actually prefer this type of conversation to talking geek with other geeks, as I usually couldn't care less about the mind-numbing details of their subject. It just ends up 2 people talking nerd but not really listening. Either the project or the technology/techniques have to align very closely for me to be interested in a nitty-gritty discussion.

3

Yes, I do this most of the time.

It can give us a valuable idea whether its not relating to programing.

As a programmer I won't be always looking at the scenario from a user point of view. But when I explain these to a non programmer they as an ordinary user can suggest a valuable idea to you.

3

I talk about my day job to my housemate from time to time, and I can usually express my frustration well enough. But to be fair, I'm trying to turn him into a programmer.

3

Several people constantly ask me to, because they are interested in my life (wife, parents, ...)

But I always say something general, like "work is good", because I know if I'd really explain what I do for a living I'd either spend the whole evening to explain what an IDE is before explaining the real work. Sometimes I still try that to improve on people skills, but under those conditions it's more like work than socializing.

The other possibility: I'd have to live with the fact, that no one would understand me and they all just nod politely and fake interest. But that's pretty much like talking to myself.

In a nutshell: I wish I could.

3

Yes quite frequently,feverishly and fanatically.

I talk to anybody. I show them amazing tricks on my laptop.

Some of the people I talked to and showed tricks to are now good programmers and got employed also.

Python rocks!!

Cheers!!

3

I use my powers to bore to get out of the conversations that start with "Tell me about your day". LOL gets me out of that bind every time!

3

I try to explain what a web developer does, but everyone thinks I design web pages :( I gave up some time ago and just tell people I'm "in IT".

3

The thing is I wondered what an accountant talk about when they get home. Must be at least as boring as listening to a neat little cache class you created or something.

"And then today my dear, we couldn't figure out why the expense account wouldn't ballance. And every body was going over it. And then in the end we found out that it was the new intern over in book keeping that had filed a stationary expense under 20010 instead of 20100. Of what a day"

2

I do sometimes (mostly when I'm having problems or lack of ideas), however I try to put things in a way my audience can understand. "Technical Jibba-Jabba" doesn't help.

2

It happens with me all the time.. It is easy to ignore people & give them generic answeres but if telling parents & family, it is difficult to explain them. Its been more than 7 years for me to be in this industry but it is still difficult fo rme to explain it to my parents what exactly I do, in detail or why it is mentally challenging to be a programmer.

If I show them any website of mine they just understand the GUI but not the complexity which is involved at business layer. and I pity is that I work on business layer :( and can't explain them in detail how it works.

Well but mostly it is enjoyable talks, which gives me more understanding how world sees things & how a programmer sees it :)

2

I do it a lot, but then I keep it at a non-technical level. I focus more on the value of what I create and why it is useful for people.

Also if I know something about the person I talk to, I try to give examples of how software could be useful for them, and try to relate my work to theirs.

Sounds like I should be in sales, really...

2

I do it all the time....and for some strange reason get annoyed when they don't appreciate the complexity of what I did!!

2

As other people have pointed out there is no way you can say exactly what you spend your day doing to a person who has never programmed in their life. To be honest I don't think I would want to go home and talk about the technicalities of programming anyway.

However the non-technical problems and peeves we deal with day to day such bureaucracy and arseholes are things that just about anyone can understand. They were probably the same kind of day to day annoyances faced by a medieval stone mason (although they didn't have to order stuff using SAP which is a good job or there wouldn't be any cathedrals). I find I can vent about these problems without boring friends and family and even better they can sometimes suggestion solutions.

2

Yes.I taught Java to a non Programmer.He was very curious about my job details.

2

Yep, tried to talk to my friends about it since I'm the only coder I know... they all gloss over but I ignore it and talk anyway!!

That's why I joined here actually... to have other coders to talk to... :lol:

...

sigh

2

At first, I was excited to talk to my friends about what I do. In return, I was getting that South park blinking eyes look on their faces (They had no clue what I was talking about).

Now I learned to just listen about their jobs. I realized this way they enjoy my company even more :) For them, I will always just be a computer guy I guess. An alien :)

2

I just told my fiancée "Someone asked 'Do you ever talk about programming to non-programmers?' on Stack Overflow and some of the answers remind me of us." She wanted to know which ones, so apparently I've already mentioned SO to her.

Another example - recently, she met a programmer and told him "oh, my fiancé is a programmer." For some reason he asked what language I use and she told him I use Java but I'm always talking about Scala. He had never heard of Scala and my fiancée was proud that she had even though she's not a programmer.

2

I talk alot.

Very often I use some comparaison or i find the some specific software solutions are applicable in the real life. Maybe this is not what you expected when you asked that question:

Example1: Embrace the change - we hear it often nowadays in software development world but we don't in real life. People are unhappy about the crisis, about the changes that are happening around about their failed plans. So I always tell the story aboutt he waterfall development and how agile changes the way we work and how they can enjoy life even more.

Example2: Scale your life plans and goals horizontally not vertically. Prepare for failure exactly in the same way as we prepare most of the applications. Prepare and accept that most of the details of your life plan will fail like we are preparing our applications to fail - one server goes down? It's normal, the other 4 will still work.

Of course i also talk alot about the privacy, the way many things work in the background (facebook, search engines....) people do not get bored if you use the real life metaphors for that and use the language that is understandable for them. I think people are curious about the technology because this has huge influence on them....

The only thing i hate to talk about and i find it annoying is answering questions like: how do i remove that virus? or program X or Y crashes what to do? When you told anyone at the party that you are programmer is like telling you're doctor and then listening for few hours about all the health problems one has.

1

I consider myself pretty good at communicating abstract ideas to non-programmer, non-computer people, yet their eyes still glaze over. I think the level of abstraction gets them. After I see that look on their faces I summarize the situation quickly. "I wrote this cool thing today that worked really well." "I fixed this bug in our biggest product."

1

Nope, I gave up a long time ago. Unless you have lots of friends who are programmer's forget about it! Besides, that's what Twitter is for.

1

Yes, sometimes. And only if i see that this person might be interested in what i have to say.

1

Yes but because of my this habbit I had breakup with my ex-girlfriend and therefore I have stopped practicing it now.

1

I do but,

in my experience is,if u explain something,the simplyest way to do is,with an example in real world.

The programmers usually see the complexity of the problem,but i'm also very amazed when a non-programmer can find the simplyest and good solution for a problem,that i never found in my life. :)