Slashdot Mirror


Ask Slashdot: How Can Programmers Explain Their Work To Non-Programmers?

Slashdot reader Grady Martin writes: I disrespect people who describe their work in highfalutin terms... However, describing my own work as "programming solutions to problems" is little more than codifying what just about anyone can perceive through intuition. Case in point: Home for the holidays, I was asked about recent accomplishments and attempted to explain the process of producing compact visualizations of branched undo/redo histories.

Responses ranged from, "Well, duh," to, "I can already do that in Word"...

It's the "duh" that I want to address, because of course an elegant solution seem obvious after the fact: Such is the nature of elegance itself. Does anyone have advice on making elegance sound impressive?

An anonymous Slashdot reader left this suggestion for explaining your work to non-programmers. "Don't. I get sick when I hear the bullshit artists spew crap out of their mouth when they have no idea wtf they're talking about. Especially managers..."

But how about the rest of you? How can programmers explain their work to non-programmers?

340 comments

  1. Need no explanation by Anonymous Coward · · Score: 1

    Fire up a computer

    Click on a program, or a game

    Then, turn to that non-programmer and say "All these happen because of programmers"

    1. Re:Need no explanation by davester666 · · Score: 1

      Just say "It's really complicated, you wouldn't understand."

      --
      Sleep your way to a whiter smile...date a dentist!
    2. Re:Need no explanation by hcs_$reboot · · Score: 1

      Or say "it is complicated, but programming is overrated".

      --
      Slashdot, fix the reply notifications... You won't get away with it...
    3. Re:Need no explanation by JustOK · · Score: 1

      Yah, programmers built the computer? Developed the theory and tech behind the hardware, display and other working bits and bobs?

      --
      rewriting history since 2109
    4. Re:Need no explanation by BlueStrat · · Score: 4, Funny

      Fire up a computer

      Click on a program, or a game

      Then, turn to that non-programmer and say "All these happen because of programmers"

      They will still have gobs of clueless questions that will waste even more of your time and leave them still without a clue.

      This problem was addressed many years ago. It's not in English (or German, really) but the meaning still comes through.

                                  ACHTUNG!

      ALLES TURISTEN UND NONTEKNISCHEN LOOKENPEEPERS!
      DAS KOMPUTERMASCHINE IST NICHT FUR DER GEFINGERPOKEN UND MITTENGRABEN!
      ODERWISE IST EASY TO SCHNAPPEN DER SPRINGENWERK, BLOWENFUSEN UND POPPENCORKEN MIT SPITZENSPARKEN.
      IST NICHT FUR GEWERKEN BEI DUMMKOPFEN. DER RUBBERNECKEN SIGHTSEEREN KEEPEN DAS COTTONPICKEN HANDER IN DAS POCKETS MUSS.
      ZO RELAXEN UND WATSCHEN DER BLINKENLICHTEN.

      HTH

      HAND :)

      Strat

      --
      Progressivism (aka US 'Liberalism'): Ideas so good they need a police/surveillance-state to enforce.
    5. Re: Need no explanation by zarr · · Score: 1

      I say "I make the robots"

    6. Re: Need no explanation by Hal_Porter · · Score: 1

      People that say this will all get lynched after Judgement Day. Tell people you work on a farm.

      --
      echo -e 'global _start\n _start:\n mov eax, 2\n int 80h\n jmp _start' > a.asm; nasm a.asm -f elf; ld a.o -o a;
    7. Re:Need no explanation by Lanthanide · · Score: 1

      Sure, but what do *you* do? Because we know you don't make computer games, so what is it that *you're* working on?

    8. Re:Need no explanation by Anonymous Coward · · Score: 1

      Do doctors build hospitals or manage supply logistics?

      But people still understand "They heal you when you are sick".

    9. Re:Need no explanation by K.+S.+Kyosuke · · Score: 1

      Part of it, certainly. Wirth was a programmer, and then he decided to build a better computer for himself (and he did).

      --
      Ezekiel 23:20
    10. Re: Need no explanation by Anonymous Coward · · Score: 0

      Incredible. +1000

    11. Re:Need no explanation by Anonymous Coward · · Score: 0
    12. Re: Need no explanation by Anonymous Coward · · Score: 0

      The OP just wanted to know how to avoid the Dunning-Krueger event. Nothing can be done, so it's better to start early with the jokes.

    13. Re: Need no explanation by Anonymous Coward · · Score: 0

      Later he wanted a less obscure processor for the machine and made one.

    14. Re:Need no explanation by Zero__Kelvin · · Score: 1

      That makes you look condescending even though it is true most of the time. I have found that if I just sit in front of a computer, open up some files, and start explaining they will tell me "That is really complicated. I could never do that." Then they know it is true, and instead of coming off like a condescending jerk you get the cred you deserve.

      --
      Guns don't kill people; Physics kills people! - John Lithgow as Dick Solomon on Third Rock From The Sun
    15. Re:Need no explanation by sycodon · · Score: 4, Insightful

      "What do you do?"

      "I'm in computers"

      "Ahh...ok"

      Then the conversation proceeds about other, more important stuff, like what to have for dinner, what time to meet for the movie, trip, etc.

      Nobody really wants to know what other people do in detail unless they are considering a career change into that field.

      --
      When Fascism comes to America, it will call itself Anti-Fascism, and tell you to give up your guns.
    16. Re:Need no explanation by An+dochasac · · Score: 1

      ZO RELAXEN UND WATSCHEN DER BLINKENLICHTEN.

      I pointed to some blinking Christmas lights and told a couple of kids in our coderdojo that there is software code in those lights. 15 years ago most blinking Christmas lights relied on a bulb filament's heat bending a bimetal contact away from a fixed contact or an analog oscillator. Now it's cheaper, more reliable, efficient and flexible to use microcontrollers and LEDs whose flickering might not be entirely random.

    17. Re: Need no explanation by Anonymous Coward · · Score: 0

      Or unless they have an ounce of curiosity. I'm actually curious what other people do and enjoy details. I guess I'm not egocentric enough for mist.

    18. Re: Need no explanation by Anonymous Coward · · Score: 0

      God I remember that from before the "internet" days.... Before Al Gore claimed to have invented it. It is literally one of my earliest memories of an online joke. This was a BBS era

    19. Re: Need no explanation by Anonymous Coward · · Score: 0

      Al Gore was cheated out of that election 18 years ago and people still cite that damn misconstrued statement.

      Nothing good has happened to the country since.

    20. Re: Need no explanation by Zero__Kelvin · · Score: 1

      You replied to the wrong article. The question asked was how to explain programming, not how to avoid doing so in social interactions at a party.

      --
      Guns don't kill people; Physics kills people! - John Lithgow as Dick Solomon on Third Rock From The Sun
    21. Re: Need no explanation by Anonymous Coward · · Score: 0

      I remember it being posted on photocopiers in the early 1980s...

    22. Re:Need no explanation by elrous0 · · Score: 1

      Me write stuff that make computers go.

      --
      SJW: Someone who has run out of real oppression, and has to fake it.
    23. Re:Need no explanation by sycodon · · Score: 1

      As another poster said:

      "I make people get well"

      - Doctor

      "I build bridges and buildings"
        - Engineer

      "I write articles"
        - Writer.

      --
      When Fascism comes to America, it will call itself Anti-Fascism, and tell you to give up your guns.
    24. Re: Need no explanation by hackwrench · · Score: 1

      I make computer games. http://hackwrench.tripod.com/

    25. Re: Need no explanation by Anonymous Coward · · Score: 0

      tripod.com... Is it 1997 again?

    26. Re:Need no explanation by Aighearach · · Score: 1

      Like WhyTheLuckyStiff explained in the song, "The Parts of Ruby:"

      Get through your head that a program is just words.

      http://poignant.guide/soundtra...

      Incidentally, that is why they are called "languages." They're how you engage in automated communication between the engineers who designed the computer, and the programmer. They're all human languages, too; in the same sense that braille is a human language, not a language that little metal plates attached to signs use to talk to each other. ;) And written English is a human language, not a language that books use to talk to each other, and not a language that authors use to talk to books.

    27. Re: Need no explanation by Aighearach · · Score: 1

      I'm an electron herder.

    28. Re: Need no explanation by Hal_Porter · · Score: 1

      You could say you're a nerf herder. Geeks will get the reference, normies will assume it's some sort of agricultural job.

      --
      echo -e 'global _start\n _start:\n mov eax, 2\n int 80h\n jmp _start' > a.asm; nasm a.asm -f elf; ld a.o -o a;
    29. Re: Need no explanation by Aighearach · · Score: 1

      Uuh, no.

      It actually might also mean a few other things you didn't consider.

    30. Re:Need no explanation by Anonymous Coward · · Score: 0

      Every time I see this, I can't help wondering if it came from the little corner of the tech industry that overlapped with NASA and the German rocket scientists drafted into American labs after WWII.

    31. Re:Need no explanation by grimthaw · · Score: 1

      "What do you do"
      "Network Admin / System Admin / Web Developer / Security Consultant / .....
      "Ahhh, my pc/tablet/phone isnt....."
      "I've come across this before, have you checked the Turbo Encabulator? Sometimes the digital spurving bearings go out of alignment and need calibration"

    32. Re: Need no explanation by ShanghaiBill · · Score: 0

      The question asked was how to explain programming ...

      It is a non-problem. I have been a programmer for 35 years, and during all that time, I have never, not once, had a non-tech ask me to explain programming.

      Anybody that actually wants to know can go to Wikipedia and read the computer programming page. After that, there are hundreds of books and websites where they can try it out for themselves.

      ... not how to avoid doing so in social interactions at a party.

      You want to avoid it ... which is easy because nobody is interested. If you start talking about coding at social events, you will soon notice that people stop talking to you and move to the other side of the room. If you want to avoid being a genetic dead end, you need to learn the art of conversation, and avoid talking about the technical details of your job.

    33. Re: Need no explanation by Zero__Kelvin · · Score: 1

      Nice anecdote. It is 2017 and a lot of us don't live with our parents anymore. It is *extremely* common for people to want to know what is involved in it in 2017. Haven't you heard? Anyone can do it. It should be taught in elementary school!

      --
      Guns don't kill people; Physics kills people! - John Lithgow as Dick Solomon on Third Rock From The Sun
    34. Re: Need no explanation by ShanghaiBill · · Score: 0

      It is 2017 and a lot of us don't live with our parents anymore. It is *extremely* common for people to want to know what is involved in it in 2017.

      This may come as a shock to you, but I also live in 2017. Anybody that has even a 1% curiosity level of what "programming" is has a mountain of resources to learn from. They don't need to ask me ... and they don't ask me, except at the most superficial level of "What do you do for a living?"

      Haven't you heard? Anyone can do it. It should be taught in elementary school!

      It is taught in elementary school. My kids learned Scratch in 4th grade, and Python in 6th grade. That means there are even fewer people that need to ask what it is.

    35. Re: Need no explanation by Zero__Kelvin · · Score: 1

      No, it means there are more idiots like you who think they know what it is.

      --
      Guns don't kill people; Physics kills people! - John Lithgow as Dick Solomon on Third Rock From The Sun
    36. Re: Need no explanation by Anonymous Coward · · Score: 0

      I pray that someday you wake up taped to chair, before a guy holding a meat fork explaining to you why you should have been nicer to people.

    37. Re: Need no explanation by Zero__Kelvin · · Score: 1

      Go fuck yourself loser.

      --
      Guns don't kill people; Physics kills people! - John Lithgow as Dick Solomon on Third Rock From The Sun
    38. Re:Need no explanation by geekymachoman · · Score: 1

      > Then the conversation proceeds about other, more important stuff, like what to have for dinner, what time to meet for the movie, trip, etc.

      That's what I do when they ask me about programming. I switch topic as fast as possible. Even when other tech people want to talk about tech, let's say in a bar.

    39. Re:Need no explanation by Anonymous Coward · · Score: 0

      Ada Lovelace was the first programmer. So yes, most indubitably.

    40. Re:Need no explanation by Anonymous Coward · · Score: 0

      > Ada Lovelace was the first programmer. So yes, most indubitably.

      She never actually ran a program on an actual machine, though. So...dubitably.

  2. Waste of effort by inflex · · Score: 5, Insightful

    Don't even bother, waste of effort. If you want to expend energy, then focus it back on yourself and learn to accept that unless you're talking to peers you're always going to be misunderstood, not out of malice or intent, but simply because there's almost always a large collection of context and assumptions that you simply cannot impart on to those who ask the question.

    Just keep it simple even and deal with accepting that it'll grind your soul. Same applies to a lot of other fields of work. Try hard and you'll just come off as self-important.

    1. Re:Waste of effort by maztuhblastah · · Score: 2

      Maybe I'm more optimistic, but I'll at least try briefly. Yeah, I'll give up if 30 seconds seems like it's not making progress, but fuck it I may as well try, right?

      So the analogy I use is this:

      A programming language is an instrument. I can use it to express ideas, but the instrument itself isn't the focus of my work. It's what I can create with the instrument So if I learn some language that alone doesn't mean much. It's what I do with the instrument (programming anguage) that makes the whole thing worthwhile. [If you're talking to an artist, replace "instrument" with "brush" or "sculpting tool".]

      It's all about finding non-threatening parallels that the person you're speaking to can relate to. I mean, yeah, we can "not bother", but that doesn't really help the stereotype of the socially-ignorant, aloof nerd, does it?

    2. Re: Waste of effort by Anonymous Coward · · Score: 0

      I usually just pull out my laptop and show them the code.

      They look and usually say "OMG what the hell is that!? How do you even read it?"

      That's when I respond with something akin to "Well, you asked." Then that's usually the last of it.

    3. Re:Waste of effort by Dutch+Gun · · Score: 2

      I just say "I program videogames", and pretty much leave it at that. There's almost no way to effectively convey what I actually do beyond that. That's enough for 99% of people anyhow. In a way, I'm sort of lucky that the "videogames" part of my job distracts them from the "programming" part.

      Of course, there's always the oft-retorted line of "man, it must be nice to play videogames all day," and I simply smile and lie "Yep, it sure is!"

      --
      Irony: Agile development has too much intertia to be abandoned now.
    4. Re:Waste of effort by jrumney · · Score: 1

      Just keep it simple even and deal with...

      I've had this problem with Word for the past few months, can you come around and fix it for me next week.

    5. Re:Waste of effort by Anonymous Coward · · Score: 0

      Does the accountant try to explain accounting?
      Does the lawyer try to explain the law?
      Why the FUCK are IT people expected to "explain" IT?
      Just do like everybody else, stop cooperating, become valuable again.

    6. Re:Waste of effort by Lanthanide · · Score: 2

      Why are you comparing a programming language to an instrument?

      Why not just compare it to a normal human language, and say that writing a program is like writing a choose-your-own-adventure novel?

    7. Re:Waste of effort by fisted · · Score: 1

      Does the accountant try to explain accounting?

      I keep track of what money we spend and receive so the information is there when we need it.

      Does the lawyer try to explain the law?

      I try to find ways to disprove or prove that someone broke the law, which is codified in many books.

      Why the FUCK are IT people expected to "explain" IT?

      Why not? I make computers do the things they do.

    8. Re:Waste of effort by Anonymous Coward · · Score: 0

      Because not all programs relies on human input so it too is a misleading description.

    9. Re:Waste of effort by Zero__Kelvin · · Score: 1

      "Why not just compare it to a normal human language, and say that writing a program is like writing a choose-your-own-adventure novel?"

      Because comparing it to a human language would be stupid, and comparing software development to writing a novel doubly so. A Computer language is like a Human language in the same way a computer is like a human.

      When you write a novel you do the whole thing yourself. You don't use portions of text written by others over which you have minimal control, which might be rewritten later and affect your story negatively. Your errors can't sneak in to publication only to come back later and cause hundreds of thousands of people to have their personal information exposed to identity thieves.

      If you are telling people that a computer language is like a human language, it is you that needs someone to explain what programming is to you.

      --
      Guns don't kill people; Physics kills people! - John Lithgow as Dick Solomon on Third Rock From The Sun
    10. Re:Waste of effort by Anonymous Coward · · Score: 0

      Don't even bother, waste of effort. If you want to expend energy, then focus it back on yourself and learn to accept that unless you're talking to peers you're always going to be misunderstood, not out of malice or intent, but simply because there's almost always a large collection of context and assumptions that you simply cannot impart on to those who ask the question.

      I kinda gave that up long ago, though I probably shouldn't have, since explaining in a way that shows how important your work is is vital to your future.

      It is not really surprising, but unless you spend a disproportionate amount of time in selling how good you are, how great your code is how wonderful your vision is, you tend to be ignored where you work. I did probably several times what was required of me this year, yet the end result was a mediocre review, as usual. It is possible the internal job with promotion I tried for will fix this. We will see. That has downsides too, but it is still necessary.

      Basically if you spend the majority of your time getting actual work done, then you haven't probably spent enough time convincing people that you are doing wonderful things. My lead did nothing that impressive this year, other than saying my work was unsuitable to be used for the larger tool set, even though it was the only complete and integrated framework presented and customers loved it. Nevertheless, in every one of his reports (they are online), say how wonderful the customers love his stuff (nothing beyond C++ shell based). Now, I have no evidence that any of that is really true, and a bit that it isn't, but it seems it works for him.

      In short, it is probably worthwhile to work on the skill of explaining your work to non programmers, if for no other reason to be able to explain it to your manager. Of course if you can convince your manager's customers that you are special, then your battle is half solved.

    11. Re:Waste of effort by geoskd · · Score: 2

      It's all about finding non-threatening parallels that the person you're speaking to can relate to. I mean, yeah, we can "not bother", but that doesn't really help the stereotype of the socially-ignorant, aloof nerd, does it?

      By far and gone the best explanation I have ever heard is the following:

      Programming is identical to writing a set of instructions that explains to a 5 year old how to tie their shoes. Children only reliably follow a very small set of instructions, and often they have individual quirks that no manual in the world can explain...

      The parallels are uncanny.

      --
      I wish I had a good sig, but all the good ones are copyrighted
    12. Re: Waste of effort by Anonymous Coward · · Score: 1

      Because making music involves interpreting it from sheet music, which, is written in a different language ... Even variations of a different but similar language. Ie treble and bass clef... Most people I find are, at least, aware of the musical languages. I find this analogy to be very appropro

    13. Re:Waste of effort by Anonymous Coward · · Score: 0

      Wrong -- instead start with outcomes -- in this specific case -- "I help people avoid costly errors & security issues by tracking changes consistently across a large number of files". Keep in mind, when people ask "what do you do?", what they really mean is -- "what is the outcomes of your work?" So lead with the outcomes of your work and not your day-to-day activities. If they are interested then they will ask "how do you do it?"

    14. Re:Waste of effort by djinn6 · · Score: 1

      They're worse than 5-year-olds. When you tell them to "get lost", even a 5-year-old wouldn't literally go into the woods and try to get lost.

    15. Re:Waste of effort by Anonymous Coward · · Score: 0

      I just say "I program videogames", and pretty much leave it at that. There's almost no way to effectively convey what I actually do beyond that.

      I just say "I build oil refineries" and pretty much leave it at that. There's almost no way to effectively convey what I actually do beyond that.

      You programmers gotta stop acting like your job is the only one that's hard to describe to laymen.

    16. Re:Waste of effort by BronsCon · · Score: 2

      Y'know, there's a big difference between "my job is hard to describe" and "my job is the only job that's hard to describe" and the first claim I've seen of the latter is the very post I'm replying to.

      You're clearly not a programmer, as you lack the ability to read nuance. I may or may not be able to pour concrete or get a wall frame to stand and stay plumb, both of which I'd need to be able to do as a builder, but I also don't interject comments into discussions about building to point out my own ignorance on the subject.

      Probably because I actually can do -- and have done -- those things.

      I'm guessing, though, from your overbearing demeanor, that you're an architectural or structural engineer, and not one of the guys who actually builds the shit; in which case, we're back on the subject of nuance. You've made yourself sound, to the lay person, like you pour concrete and erect walls for a living.

      That's the difference between what I do and what you do: I must respect nuance.

      --
      APK quotes people (including myself) without context and should not be trusted. Just thought you should know.
    17. Re:Waste of effort by Aighearach · · Score: 1

      No, a computer language is a human language like a book of engineering tables is written in a human language.

      All you did is wave your hands, and make a claim. But it breaks down if you do a deeper analysis; if you understand how the computer works, why it works (because an engineer decided!) and all that, then you can understand: Computers don't understand anything, much less language! Also if you look at where computer languages come from, it becomes instantly obvious that they come from humans, and are written to communicate with other humans and that the computer is just a complicated transcription device.

      Claiming that computer languages are not human languages is like claiming that a recipe is written to be read by your oven. Your oven understands as much of the recipe as the computer understands of the program!

    18. Re:Waste of effort by Aighearach · · Score: 1

      Not just uncanny parallels, it is literally true.

      In my first year computer science classes we even did programming on 3x5 cards and executed them using humans. You can do that for any computer software. It works for everything, even video output; how many pixels do you have on the screen? OK, make a grid with that many slots. You can break every step under the hood, even the wiring in the video card, to steps that humans would take to manipulate "memory;" which can be pen and paper, or a whiteboard, etc.

      You can break down every CPU instruction into a set of steps, and have a human do those steps, and if you don't make mistakes you get the same result as running the program on the computer. This is broadly true for all digital logic.

    19. Re:Waste of effort by Aighearach · · Score: 1

      IT doesn't make anything, you can explain that job easily, "I'm like a mechanic, but for computers."

    20. Re:Waste of effort by rastos1 · · Score: 1

      Paraphrasing: If you can't explain to an eight-year-old what you are doing, you are a charlatan.

    21. Re: Waste of effort by Anonymous Coward · · Score: 0

      You are talking down to them.

      Try: how do you cook a hotdog? Once they describe the steps. As what is a microwave or a pan or mustard. They start to get that programming is easy - it is - it is defining ALL the steps that is hard

    22. Re: Waste of effort by Zero__Kelvin · · Score: 1

      It's a language for interfacing to computers dumbfuck. There isn't a single *computer* language on the planet that is designed to be understood by humans that computers just happen to understand. You truly are a fucking moron (waves hand with middle finger raised)

      --
      Guns don't kill people; Physics kills people! - John Lithgow as Dick Solomon on Third Rock From The Sun
    23. Re: Waste of effort by Aighearach · · Score: 1

      I'm a firmware programmer, who's the moron?

      You probably didn't understand what I said.

      Computers don't "just happen" to "understand" programming languages. They don't understand it at all. Luckily the engineers who designed the computer do understand the languages involved, which is why the designed the machine in the way that they did.

      Just because you comprehend a few of the words, doesn't imply that the words you didn't understand were in error.

    24. Re: Waste of effort by Zero__Kelvin · · Score: 1

      You are the moron. Thanks for asking.

      --
      Guns don't kill people; Physics kills people! - John Lithgow as Dick Solomon on Third Rock From The Sun
    25. Re:Waste of effort by Anonymous Coward · · Score: 0

      The subject is how can *programmers* explain their work.

    26. Re: Waste of effort by Aighearach · · Score: 1

      Golly, what does that make you?

    27. Re: Waste of effort by Anonymous Coward · · Score: 0

      Slashdot's poster boy for Dunning-Kruger effect.

    28. Re: Waste of effort by Zero__Kelvin · · Score: 1

      The guy who has designed computers, written operating systems, knows that "I'm a firmware programmer" gives you no clout with regard to the current subject matter, and is laughing at your attempt to assert authority in a domain that has nothing to do with firmware programming. Why do you ask?

      --
      Guns don't kill people; Physics kills people! - John Lithgow as Dick Solomon on Third Rock From The Sun
    29. Re: Waste of effort by Anonymous Coward · · Score: 0

      I was going to say: "hmm, how about e.g. default option swaps trader"... And I thought Yeah, you're right.

    30. Re: Waste of effort by TheConway · · Score: 1

      You're an angry, angry man. Chill. We need the smart people to live the longest.

  3. Yeah, it's pretty easy work by Anonymous Coward · · Score: 0

    But it pays well. (Shit eating grin.)

    1. Re:Yeah, it's pretty easy work by Anonymous Coward · · Score: 0

      Liar. I have it on good authority that the market rate is $50K in Silicon Valley.

    2. Re: Yeah, it's pretty easy work by Anonymous Coward · · Score: 0

      Haha haha. I belive that this in reference to that one dude that has repeatedly and quite often, says he makes 50 K in SV. My only guess for that is that he is severely untalented.

  4. Nobody wants to hear it by Anonymous Coward · · Score: 0

    Proctologist and programmers need not explain their job.

  5. One word... by fred911 · · Score: 1

    Porn.. it's why you have it 24/7.

    --
    09 F9 11 02 9D 74 E3 5B - D8 41 56 C5 63 56 88 C0 45 5F E1 04 22 CA 29 C4 93 3F 95 05 2B 79 2A B2
    1. Re:One word... by lucm · · Score: 5, Funny

      Porn.. it's why you have it 24/7.

      In the case of porn especially, it's "24x7", not "24/7". Try those two formulas in excel, you'll see.

      --
      lucm, indeed.
    2. Re:One word... by Anonymous Coward · · Score: 0

      No, he meant 24/7, didn't you get the memo? Porn is now only available on "porn day", July 24th to improve productivity and decrease incidence of RSI

    3. Re:One word... by OzPeter · · Score: 1

      No, he meant 24/7, didn't you get the memo? Porn is now only available on "porn day", July 24th to improve productivity and decrease incidence of RSI

      Which is why he *didn't* get it as you expressed the date in non-USAian* terms.

      * As I have been told on many occasions that /. is a USA based site, no matter what the subject or readership is.

      --
      I am Slashdot. Are you Slashdot as well?
    4. Re:One word... by Anonymous Coward · · Score: 0

      If that leaves them confused, there is always the popular expression "all week long." Balls and arrows is a fine way to explain anything for anybody anyway.

    5. Re:One word... by Aighearach · · Score: 2

      If you ever learn English, you'll find that the adjective for things from the United States is "American."

      The more you know!

    6. Re:One word... by Anonymous Coward · · Score: 0

      RSI... Think that has anything to do with my increasing vision problems?

    7. Re:One word... by Oligonicella · · Score: 1

      It's an idiom, not a formula. Porn is also not only available 168.

    8. Re:One word... by Anonymous Coward · · Score: 0

      If you ever learn English, you'll find that the adjective for things from the United States is "American."

      If you ever learn law and civics, you'll find that "United States" is a federal entity, and the "American" scheme of things was state citizens, "specie is the only constitutional money in this country", www.dict.org, "specie", that only letting "federal citizens" vote in "state of x" elections is called "martial law" etc.

      "the several States" is different than "United States" and they are NOT synyonyms

  6. I dumb it down. by Anonymous Coward · · Score: 0

    I dumb it down for people who are mildly curious and need to know the gist of what I'm doing. (Coworkers)
    I say never mind, I'll handle it for when I don't feel like explaining (also coworkers)
    "I make websites*" if the person has no interest.
    *I don't actually make websites

    1. Re: I dumb it down. by Anonymous Coward · · Score: 0

      I tell them "I'm basically a human shield".

  7. Simple by hcs_$reboot · · Score: 1

    "Well, you see, that form is actually an instance of a subclass that inherits from that object which can be stored into that templated array thanks to polymorphism", then no more question from the non-programmer.

    --
    Slashdot, fix the reply notifications... You won't get away with it...
    1. Re:Simple by lkcl · · Score: 4, Interesting

      "Well, you see, that form is actually an instance of a subclass that inherits from that object which can be stored into that templated array thanks to polymorphism", then no more question from the non-programmer.

      if you're looking for a way to justify your existence (as opposed to *genuinely* explaining what it is that you do to an outsider) then i would suggest prefacing that with, "i'm going to start at a high level. i'm then going to go into detail. my ability *to* go into detail is precisely why you employ me rather than someone who can do stuff with a spreadsheet. please feel free to stop me at any time when you have heard enough"

      followed by going into detail and not stopping until they tell you to. when they've had enough, you can finish up with, "so do you now appreciate that this is far beyond the skill set of a lay person, to cope with this level of excruciating detail? i deal with it so that you don't have to. it's extremely challenging and tedious in a mind-numbing but extremely rewarding way for me, but only in that it's a massive challenge well achieved. can we please, therefore, in future, keep our conversations to the high-level requirements, and more than that, when i tell you that i *don't know how long something will take* please be patient and trust me to work through it until i know more, okay?"

      if on the other hand they *genuinely* wish to know about programming, my favourite way to explain that is as follows:

      okay, the idea is, you're going to give me a series of written instructions - a recipe - which i can give to absolutely any person, for them to follow in order to get from one corner of a tiled room to the other, negotiating around obstacles. that person will be BLINDFOLDED so that they only have a sense of touch in any direction of distance equal to ONE tile.

      you then give them the following example:

      step 1: go forward one step
      step 2: if you didn't bash into an obstacle, go to step 1
      step 3: go right one step
      step 4: if you didn't bash into an obstacle, go to step 3
      step 5: are you in the far corner? if yes HURRAH
      step 6: repeat from step 1

      *we* know what the flaws are in that algorithm... but they won't. so, you LITERALLY get them to walk through it. as in, LITERALLY follow those instructions on a tiled kitchen floor. then you DELIBERATELY place obstacles so that they will get stuck, and ask them, "ok, so now how would you fix that?"

      and when they go, "ahhh okaaay i get it. it's step-by-step stuff but you can get into trouble if you don't give the right instructions", then that really is the lightbulb moment for them in *truly* understanding the basics of programming. at *that* point you can explain to them that, unlike that very simple 6-step algorithm you write algorithms of TENS of THOUSANDS OF LINES every few months, and that the linux kernel is what... thirty MILLION lines or something insane, then they'll finally start to really and truly Get It.

      if that's your boss they might even actually give you a payrise or at the very least treat you with a little more respect.

    2. Re:Simple by sheramil · · Score: 1

      "Well, you see, that form is actually an instance of a subclass that inherits from that object which can be stored into that templated array thanks to polymorphism", then no more question from the non-programmer.

      "Inherits from that object.. inherits what?"

      (tapping toe)

    3. Re:Simple by v1 · · Score: 4, Informative

      I sort of go along the same lines.

      "A computer can follow my instructions quickly and flawlessly, but they have to be VERY simple instructions and they will make NO attempt to deviate from their plan regardless of what comes up. So I have to train something much stupider than your average four-year-old how to reliably perform a complex task, despite the child being both blind and deaf."

      They usually either "get it", or insist it can't be that difficult.

      If they want more, I usually start going into how the key is to plan for as many different situations as you can, make as few assumptions as possible at the beginning of and throughout the process, and add in as many contingencies as is practical. Imagine a car repair manual where you have to specifically tell the mechanic to shut off the engine and open the hood when describing an air filter change. (or any of a limitless number of other relatable examples)

      My specialty is process automation, so I tend to go the extra mile to make my code as autonomous as possible and log the piss out of everything so malfunctions are easily identifiable and can be coded for down the road when Murphy starts getting extra-creative.

      --
      I work for the Department of Redundancy Department.
    4. Re:Simple by Tablizer · · Score: 3, Insightful

      No, that's the 1970's.

      Now it's more like:

      1. Google for the shiny new framework the PHB likes
      2. Read the poor instructions and take a brave guess
      3. Run the APIs and pray it works on most browsers
      4. Throw it out in 6 months for the next shiny toy that catches the PHB's eyes

    5. Re:Simple by Grady+Martin · · Score: 1

      The idea of likening computers to an easier-to-understand entity reminds me of the Logo turtle, which in turn bears a number of similarity's to lkcl's tile-walking demonstration. Both are good ideas. Thank you.

    6. Re:Simple by Anonymous Coward · · Score: 0

      Great advice if the message you're trying to convey is, "I'm an asshole who has no respect for your time or intelligence."

    7. Re: Simple by Anonymous Coward · · Score: 0

      Car repair manual... bad analogy.
      The ones from Hyundai literally warn that if you unscrew all screws from the bottom engine cover, the cover may fall on your head =)

    8. Re:Simple by Anonymous Coward · · Score: 0

      "and flawlessly"

      Heck, I'd even qualify that with a "usually" or "mostly". It's always a fun ("fun") diversion to have to work around hardware bugs.

    9. Re: Simple by Hognoxious · · Score: 1

      Unless you have very long & flexible arms it's true, isn't it?

      --
      Confucius say, "Find worm in apple - bad. Find half a worm - worse."
    10. Re:Simple by Anonymous Coward · · Score: 0

      Unless you're writing Haskell, in which case it's "if you hit your shin on the edge of the table, you didn't take that step"

    11. Re:Simple by WallyL · · Score: 1

      About your logging, do you enable different flags for log verbosity? I've alternated between having different amounts of verbosity and just logging the maximum, regardless.

    12. Re:Simple by v1 · · Score: 1

      About your logging, do you enable different flags for log verbosity? I've alternated between having different amounts of verbosity and just logging the maximum, regardless.

      I've experimented with different strategies over the years. I initially liked the debug/info/warn/error set that is used a lot, but the period of time that adjustable of granularity is useful is small and adjusting the debug calls is tedious. Nowadays I generally use two debug flags, "-d" and "-debug", for "function block" level and "inner loop level" debugging. I don't enable/disable the debug calls, I just check the flag in the debug function and decide if I need to display anything or not. I rarely have to comment out debug calls due to impacted performance. So it sounds like we do it in a similar way. I can set another internal flag in some cases to send calls to debug to log also, as in most cases I don't log debug text. (a lot of what I deal with is ran frequently and would fill up disk space with excessive logging) My debug calls are more for live-debugging than historical recording. For that I have a Log call of course. I also occasionally have a History call that writes to a separate file to record more "permanent" information, like when a disused account is removed from a computer, etc. Database-manipulating code often gets its own database log file also to record changes to the database. The historical log file is the only one that is likely to not be subject to periodic clearing.

      One of my recent evolutions is to set up a generalized assert. So for example in bash, after trying to do something (rm a file, stat a folder, ssh a command, whatever) I always call my Assert function. I pass in $LINENO, a description of what I was trying to do, and the string of the command I just executed. The Assert function first grabs the previous exit code, and then sends a success message to the verbose debug function if successful. If not, passes the exit code, the try and the command to the abort function. So verbose debugging "by default" catches most errors and provides useful information (where/what/how) to the log. You just have to remember to always use it. This form of debug call also introduces an element of "self-documentation" to your code, although I am always very generous with my comments anyway.

      --
      I work for the Department of Redundancy Department.
    13. Re:Simple by WallyL · · Score: 1

      Thank you for sharing! In my now several years of shell scripting, I'd never read the man bash(1) where it talks about $LINENO. I also like your assert idea, and I'll bake that into my next project to see how it goes.

    14. Re:Simple by v1 · · Score: 1

      If you're into bash I also suggest you look into traps and "strict" bash: http://redsymbol.net/articles/...

      fun fact: $LINENO refers to the line that triggered the trap when used in a single-line trap definition, which you can pass as a parameter when calling the actual trapping function.

      --
      I work for the Department of Redundancy Department.
  8. Like a Medical Doctor by djbckr · · Score: 5, Insightful

    Like a medical doctor would explain a disease to you in layman's terms, you would describe what you do in layman's terms. Since they aren't professional, they wouldn't know anything about visualizing branched undo/redo histories. Use common words in contexts they understand. They won't understand the depth of what you do, but as long as the get the gist, that's all you can hope for.

    1. Re:Like a Medical Doctor by LesFerg · · Score: 5, Insightful

      Precisely that. If you can't explain the convenience or purpose provided for the end-user of your software in layman's terms, maybe you shouldn't be writing the software.
      My relatives are happy to hear something like "I reduced the amount of copying and re-typing that nurses have to do when producing a discharge summary to be sent to the patient's doctor".
      Nobody needs to know the complexities of database retrievals and layout crap that goes on in the code. Why would they want to know the details? They only ask what you have been doing to be polite, be polite in response.

      --
      If I had a DeLorean... I would probably only drive it from time to time.
    2. Re:Like a Medical Doctor by Anonymous Coward · · Score: 0

      Finding the correct layman's description of what you do isn't always so obvious.

      It's nice when you work on a recognizable (boxed or cloud) service which you can point to and say "I make that"... sometimes though what you do is so behind the scenes or non.obvious that it's almost not worth trying... because "I make it easier for stores like Best Buy to sell HDTV's" (back in early 2000's) ends up with even more questions which are harder to answer.

      Currently I work at a company where the sales/support people take up the majority of the office space and often will ask "what are you guys building?" as in their mind, the current SaaS product is done. Some new features are things we can easily tell them about because it is things they can/will want to be able to sell... other things are so uninteresting to them, bit vital to us that it cannot be described.

    3. Re:Like a Medical Doctor by Anubis+IV · · Score: 3, Insightful

      Agreed. If something is elegant and you don’t have a good way to describe it, don’t. Your goal isn’t to describe why something was hard or get them to the point where they can recognize elegance in a field other than their own. It’s to convey an accomplishment, its results, and the sensations it elicited.

      Is the person listening to you a craftsman? They already know what it feels like to make something that’s well-crafted. Are they an engineer or artist? They know what it’s like to struggle through a problem and then find the perfect solution. Even though they can’t recognize elegance in your field, they already know what it is. Put it in familiar terms and focus on what made it personal to you, rather than getting bogged down in technical minutiae. They don’t need to understand how you managed to wrangle spaghetti code or have an understanding of hash tables before they can appreciate that you made everything go a few orders of magnitude faster.

      About the only non-techie person I actually try (with limited success) to explain this stuff to is my wife, but that’s because we each make an effort to try understanding what’s going on in the other’s life so that we can share in those victories.

    4. Re:Like a Medical Doctor by Kjella · · Score: 1

      Like a medical doctor would explain a disease to you in layman's terms, you would describe what you do in layman's terms. Since they aren't professional, they wouldn't know anything about visualizing branched undo/redo histories. Use common words in contexts they understand. They won't understand the depth of what you do, but as long as the get the gist, that's all you can hope for.

      I think you're confusing a doctor describing your condition - or often not even that, but the practical consequences of your condition - in layman's terms rather than his/her working methods to reach that diagnosis. People rarely scuff at what doctors do and think they can wing it because they recognize the common cold and dumbing that down would only encourage people to think even less of your job. In my experience, the main challenge is trying to think of everything up front. Sure I can sit in Excel and tweak formulas and if-then-else logic until it's right, but when I write code that goes into a production system it can't just crash and burn every time there's some kind of bad or missing data, corner case or exception, resource or access error. On top of working correctly on new data when everything is fine.

      That's where I find most people blank out, given a concrete case they can work out the solution. Creating an algorithm that solves the abstract problem for all cases, hell no. Let's take something like a Roomba, if you were driving it yourself it'd be a rather simple RC toy. If you want to ship it to people, to function in apartments you've never seen with obstacles you didn't know exist then it's incredibly hard. You can make a few test cases, but you can never cover every possibility. Also avoiding regressions, that when I fix something I don't break anything that used to be working. That's the big difference for me at least, I have to create a system that works up front. It can't just change on the fly as faults are found and it has to fail gracefully on errors. Even the really unlikely and odd ones.

      --
      Live today, because you never know what tomorrow brings
    5. Re:Like a Medical Doctor by Grady+Martin · · Score: 1

      I agree, and that's precisely where the fun begins. When you convey something well in laymen's terms, people generally react with interest and excitement. In other words, they want to know more. The ensuing conversation has historically been the hard part for me personally, but a number of comments have provided new ideas to try.

      For what it's worth, I'm now interested in how you helped those nurses. As a fellow programmer, however, I can imagine. Good job.

    6. Re:Like a Medical Doctor by serviscope_minor · · Score: 1

      Precisely that. If you can't explain the convenience or purpose provided for the end-user of your software in layman's terms, maybe you shouldn't be writing the software

      I disagree: the whole point of division of labour is that not everyone has to be good at everything.

      You're requiring programmers be god at two quite different jobs, one to program, the other to explain to lay people. Both are skills, and neither are easy. This is why we have companies with management structures and so on, it's so people who are good at programming but who suck at explaining to lay people can get on with the programming.

      --
      SJW n. One who posts facts.
    7. Re:Like a Medical Doctor by drinkypoo · · Score: 1

      You're requiring programmers be god at two quite different jobs, one to program, the other to explain to lay people. Both are skills, and neither are easy.

      If you can't communicate with other humans, you're gonna have a bad time. Most people are terrible at communication in one way or another, though, and it usually boils down to being inconsiderate.

      --
      "You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
    8. Re:Like a Medical Doctor by tlhIngan · · Score: 2

      Precisely that. If you can't explain the convenience or purpose provided for the end-user of your software in layman's terms, maybe you shouldn't be writing the software.
      My relatives are happy to hear something like "I reduced the amount of copying and re-typing that nurses have to do when producing a discharge summary to be sent to the patient's doctor".
      Nobody needs to know the complexities of database retrievals and layout crap that goes on in the code. Why would they want to know the details? They only ask what you have been doing to be polite, be polite in response.

      Exactly. If you don't know the 30,000 foot view of what you're doing, that's a huge problem. You should know what your software does overall.

      "I program videogames" is such a statement. Or "I write medical software". What is your software doing? I work on the Android BSP, so I often say "I work on the Android OS". If they have an Android smartphone, I can add, "like the Android running on your smartphone". That's the high level gist of what I do, and it answers everyone's question succinctly. They don't care I type on the computer, or I work in C/C++/Java or I was working on the Camera HAL code (or the LInux kernel). As far as anyone sees, that is "Android OS".

      If you work on a device driver for Windows, it's just as easy to say "I write Windows drivers for our hardware".

      I don't understand why it's so hard to explain what you do. No one cares about the individual details - people want to know what you do in a general sense. If they want more details, they'll ask. My auto mechanic will say he's an auto mechanic, even if what he does is balances tires and does car alignments to pay the bills.

      Even doctors say they are doctors, regardless of their specialty. Same as surgeons

      Even if you write software, you can often describe the type of software - "I work on medical software" or "I work on office software" Or, if you write firmware, "I write the software that runs on your router".etc.

    9. Re:Like a Medical Doctor by serviscope_minor · · Score: 1

      If you can't communicate with other humans, you're gonna have a bad time.

      How's that relevant? If you're a junior programmer in a team, you'll be communicating to your cow-orkers and your manager.

      If you want to go far up in your career, then you'll ned to learn to communicate better. Nonetheless the whole idea behind companies is that not everyone has to be good at every job.

      Most people are terrible at communication in one way or another,

      Yep.

      hough, and it usually boils down to being inconsiderate.

      I disagree. Communication is hard. It's a skill, it can be learned and it can be taught. Few people are ever taught it.

      --
      SJW n. One who posts facts.
    10. Re:Like a Medical Doctor by Solandri · · Score: 1

      If you can't explain the convenience or purpose provided for the end-user of your software in layman's terms, maybe you shouldn't be writing the software.

      Mostly agreed, but branched undo/redo is one of those esoteric things which not every user uses or knows how to use, but for the user who does it can be a godsend. Sometimes you do aim a feature at a subset of the userbase.

      Unlike Apple's approach of dumbing everything down so every user can use it, I prefer keeping the basic application easy to use. But the user should be able to drill down into the more complex, esoteric features should they happen to need them. (Maybe have a "revert to default" option in case a basic user accidentally changes an advanced setting.)

    11. Re: Like a Medical Doctor by bsDaemon · · Score: 1

      The only reason it seems hard is that people who are good at computers, and programming in particular, can often be very literal. The computers are, so after years of explaining everything in excruciating detail to a machine, the natural tendency is to talk about how to do it in excruciating detail to people who ask. Most people who ask donâ(TM)t really care. It is like asking âoehow are youâ and expecting âoefine, thank. And you?â, not âoeI have a raging case of herpes, thanks for asking!â

      In the US in particular, questions about occupation are round-about questions about money and status. Thatâ(TM)s it. âoeIâ(TM)m a doctor/lawyerâ means âoei make considerably more than someone who answers highschool teacher.â

      Unless someone asks folowup questions thst show an interest in your career, particularly young people who may be trying to figure out what they want to do, just answering the question that was asked and not projecting an actual desire to here about having issues with source code management or when functional programming techniques are appropriate is probably good enough. Then ask the asker and deflect. Let them talk about their job if they want.

    12. Re:Like a Medical Doctor by MangoCats · · Score: 1

      It's a backwards analogy, but I have found that good law resembles programming. Legal documents, with clearly defined terms, good coverage of the possible use cases, and explicit prescriptions as to what happens in response to the described actions are a better analogy for computer programming than most other things I have encountered.

      Bad law is like java.

    13. Re:Like a Medical Doctor by Anonymous Coward · · Score: 0

      If you can't explain the convenience or purpose provided for the end-user of your software in layman's terms, maybe you shouldn't be writing the software.

      And if you don't understand that many of us don't work on user-visible features, maybe you shouldn't be writing software. Back end systems coding is a thing, you know.

    14. Re:Like a Medical Doctor by djinn6 · · Score: 1

      If you can't explain the convenience or purpose provided for the end-user of your software in layman's terms, maybe you shouldn't be writing the software.

      Not all software have end users. Not all projects can be discussed with the public.

      If you're writing a simulation for some quantum phenomenon, which might turn into a scientific paper, it's going to take more than a few words to explain what you're doing. Especially if the other person hasn't heard of quantum mechanics, or just haven't taken any Physics classes at all.

    15. Re:Like a Medical Doctor by LesFerg · · Score: 1

      True, I was a little flippant with that statement. I work on both front-end and back-end layers, but when it comes to meetings with project managers etc. we try to stick to the business use case descriptions. This can hide the extent of work required and doesn't explain the complexities to the upper levels of managers, but at least that keeps the meetings shorter : )

      --
      If I had a DeLorean... I would probably only drive it from time to time.
    16. Re:Like a Medical Doctor by LesFerg · · Score: 1

      I guess I'm lucky in that most of my ageing relatives have had some end-user experience with a hospital or medical clinic (tho not so lucky for them). It was much harder explaining to my young niece what made my job so interesting for me, I don't think I convinced her really.

      As for discharge summary reports, this requires extracting event information, medications, lab tests etc etc from numerous different patient management databases, LIS data etc, and presenting it all together as a single report. When you try explaining that to the people outside the organisation, you realize that in most people's minds, a hospital's patient record is all just one big computer "thing" to start with, like a folder full of papers. They don't expect every department would have it's own separate resources and near-incompatible data sources. So when they ask, my explanation of the great achievement of the month must sound like a small and simple piece of work.

      --
      If I had a DeLorean... I would probably only drive it from time to time.
    17. Re:Like a Medical Doctor by Anonymous Coward · · Score: 0

      If you can't explain the convenience or purpose provided for the end-user of your software in layman's terms, maybe you shouldn't be writing the software.

      Sometimes it's not easy to explain what you're doing, especially to someone who hasn't gone through the years necessary to even approach competent in programming. You also fail to consider that a programmer might not be socially savvy *or* much interested in dumbing down their profession. When you over-simplify, you tend to create more questions than you answer.

      The audience must be considered, too. If you're explaining computers to someone who doesn't own or use one, you're spinning your wheels and will walk away frustrated. Most people don't *want* to understand computers, and wear their ignorance like a badge of pride. You will not succeed in making computers understandable to that demographic.

  9. Explain the formal semantics of Perl by aberglas · · Score: 1

    If they can understand that, they cannot understand anything.

    1. Re:Explain the formal semantics of Perl by lkcl · · Score: 5, Funny

      [perl...] If they can understand that, they cannot understand anything.

      dude. i am a software libre advocate and developer of 25 years experience. i've worked with million-line codebases for two decades. i have done reverse-engineering of ARM and x86 instructions. i've programmed PICs, Z80 and 68000 processors in assembler. i'm going to be working on designing and bringing to market a libre RISC-V SoC... and *I* do not want you to explain perl to me.

    2. Re:Explain the formal semantics of Perl by lucm · · Score: 1

      It's all strings and if you turn off the strict mode it rarely crash even if there's a problem. That's Perl in a nutshell. Also, regex.

      --
      lucm, indeed.
    3. Re:Explain the formal semantics of Perl by gweihir · · Score: 1

      Perl has a formal semantics? I think you are confused my friend...

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    4. Re:Explain the formal semantics of Perl by fisted · · Score: 1

      programmed [...] in assembler

      But you do program in compiler these days, right?

    5. Re:Explain the formal semantics of Perl by Anonymous Coward · · Score: 0

      >> programmed [...] in assembler
      > But you do program in compiler these days, right?

      You, sir, are a pedant.

    6. Re:Explain the formal semantics of Perl by fisted · · Score: 2

      I think the "are a" shouldn't be part of the link.

  10. Coding is magic by ITRambo · · Score: 3, Insightful

    Tell them that coding is magic. You write lines of code that translate into a program that does what you want it to do, every time. It's like casting a spell ,except that coding is real.

    1. Re:Coding is magic by Anonymous Coward · · Score: 1

      It is magic, because that program is running on a rock with drawings on it (which is basically what a microchip is).

    2. Re:Coding is magic by OneSmartFellow · · Score: 2

      More like carefully arranged sand with lightening trapped in it.

    3. Re:Coding is magic by angel'o'sphere · · Score: 1

      Ah :D you are one of those guys that started with text adventures before coding?

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    4. Re:Coding is magic by mykepredko · · Score: 1

      Of all the suggestions put forward - I think this captures how to explain programming the best.

      Nicely done.

  11. That's eaay... by Type44Q · · Score: 1

    Answer: any fucking way they want.

  12. Give answers that suit the questioner's needs by Freshly+Exhumed · · Score: 2

    Trying to explain developer work to non-developers just isn't worth the trouble, and I mean that with a tinge of sadness after decades of going through the same questions again and again i.e. "WTF are they working on down there, and why do they have such weird work spaces?" My typical response has been to first ask what the questioner would like to do with the information, then tailor the response as best I can in a polite and non-patronizing way to suit that answer. I've also tried to use humour to let them know that "you can't get there from here" and so forth. For some reason I've always gotten laughs from senior execs when I've mentioned that they don't WANT to know what the developers have been up to lately due to persistent rumours that they've become quite handy with rib-spreaders. The execs tend to scurry off chuckling at that point. Good, my plan to get them the hell out of the area worked perfectly.

    --
    I deny that I have not avoided attaining the opposite of that which I do not want.
    1. Re:Give answers that suit the questioner's needs by tburkhol · · Score: 1

      This is the right answer.

      If you ask a mason what he does, he's not going to break into discussion of optimizing portland cement to lime ratios or strategies for accommodating different grades or environmental variations. He's going to tell you he builds walls.

      He might tell you about the wall he built in an exceptionally interesting building, or for a particularly controversial company, but he's not going to tell you any of the details of his subjective experience of building walls.

  13. Lets mix it up a bit by Anonymous Coward · · Score: 0

    How does a surgeon explain their job to non surgeons? How does X explain their job to nonX?

    Listen how stupid you sound and learn why youre alone. Get over yourself and maybe save your job from being outsourced to someone with better conversational skills.

    1. Re:Lets mix it up a bit by Anonymous Coward · · Score: 0

      How does a surgeon explain their job to non surgeons?

      "I cut people open, cut out the bad parts and then sew the people up again. It's not brain surgery. Well, yes, it is brain surgery. Sometimes."

    2. Re: Lets mix it up a bit by Anonymous Coward · · Score: 0

      And the equivalent for a software developer is âoeI get a vague description of the goals of a project and make those goals happen by writing computer codeâ. Donâ(TM)t get bogged down in the details, people are asking to be nice not to value or devalue your work. They are simply trying to make conversation.

  14. Game core systems developer... by Frobnicator · · Score: 5, Interesting

    I tell them that my type of programming is almost all mathematics. Few programmers use this much math. I look at all kinds of problems and find solutions for them.

    I use linear algebra all the time. You might have been exposed to matrix math, using 3x3 and 4x4 matrices, multiplying them together, finding inverses and transposes, working with vectors and dot products and cross products. That's the basic math of the 3D world, much like addition and subtraction are the basics of the math for processing a budget. I do linear algebra on paper and on calculators at my desk, plus I tell the computer to do that stuff. I read technical math research papers about many systems, often two or three per month, and I implement the algorithms they describe.

    I look for errors in code and fix them. When people say "this isn't working right", I find the errors and fix them no matter who wrote the buggy code. Sometimes it is very difficult to understand other people's code, sometimes it is like a giant knot that needs to be untangled so it can be understood. When people say "this is running slow", I study the math that they use, I figure out what math can be faster, and I tell the computer to use that math instead.

    I work with designers who say "I need a game system that does such-and-such", I figure out a way to make that happen. For example, on {project they would understand} I programmed the computer how to {action they would understand}.

    Many times I am given very difficult problems that are studied by mathematicians and scientists, problems that are known to be impossible to solve at speeds games need. That's why the impossible problems, intractable problems, and fast-growing problems are important to study in college. In those cases my job is to figure out other ways to solve the problem that are fast enough to run in microseconds. Usually that means cheating and taking shortcuts. As one example, finding the perfect organization for objects inside a container is very difficult and slow, since the perfect organization requires testing every option. Instead we can cheat by taking the biggest items and stuffing them in the container first, getting smaller and smaller pieces until they are all present. Another is choosing the perfect path which takes a lot of processing, versus cheating and taking the first really good path. It often isn't the perfect solution, but it is good enough for what we need.

    --
    //TODO: Think of witty sig statement
    1. Re:Game core systems developer... by Grady+Martin · · Score: 1

      Thank you for reminding me how universally understood the concept of optimization is. I'll remember that next time someone without the right knowledge base tries digging into my brain.

      Incidentally, someone from your field (Mike Acton) has been my #1 inspiration of 2017. His "data-oriented design" mantra has kept my feet on the ground where they should be. You do fascinating work.

    2. Re:Game core systems developer... by Anonymous Coward · · Score: 0

      I guess this takes a lot of practice. For me the conversation usually goes like this.

      So where do you work?
      I work for an Asset Management company.
      So you're a Hege Fund Manager?
      No, it's an Asset Management company, not a hedge fund. More to do with looking after pension funds rather than taking high-risk bets on the market. And I'm not a Portfolio Manager, I'm a Quantitative Developer.
      You're a whatnow?
      I'm a Quantitative Developer, a Quant Dev. I'm not making any investment decisions myself but I design and implement software-based models that are used by those who do.
      Oh right, so you're doing algorithmic trading in the stock market? I know someone whose brother does that.
      Actually, no. There are some quants who work on that but my particular focus is on measuring and managing the risks of hedging strategies for institutional pension fund clients involving over-the-counter derivative products.
      Uh... hedging ... pension ... derivative ... uh?
      OK, so if you're running a pension scheme then you've got some liabilities. I mean, you need to pay out some money to your pension scheme members when they retire, right?
      Uh, right?
      Well, you probably want to make sure you have enough money to pay your pensioners in the future. But by and large you want to do that while remaining immune to what markets are doing.
      OK ...
      So there's this whole class of complex investments called derivatives. Things like options and such, although the particular derivatives we use are more usually things called swaps rather than options. Anyway, if you know what you're doing these derivatives can be used to offset those risks.
      Hmm.
      Well to understand the risks of the pensions scheme and the derivatives and so on, we need complex mathematical models and sometimes it can get quite computationally intenstive. It's my job to come up with those models and develop software to do the necessary calculations.
      I get it. So you're using computers to predict whether markets are going to go up or down, so that you can invest accordingly?
      No, it's not about predicting markets in the future, it's about understanding and modelling their behavior so that we can measure and manage the risks.
      That doesn't involve making predictions?
      No, it really doesn't. It's more about understanding the present to a certain level of mathematical detail than it is about the predicting future.
      OK, so you program computers to understand the present to predict the future so that you can make money?
      It's not about predicting the future. And it's not really about making money, it's about measuring and managing risk. So more about giving yourself the information you need to see what risks you are taking and what investment strategies you could use to manage those risks.
      But basically you program computers to make money?
      [Give-up sigh.] Yes.

  15. Dive in to the nitty gritty... by Anonymous Coward · · Score: 0

    Seriously, it's the best and easiest way to end the conversation

    Pleb: "Your partner was telling me you finished some big project at work?"
    You: "That's right! I was designing an entirely new way of visualising undo/redo histories"
    Pleb: "I can do that in Word already!"
    You: "Oh, of course, well you see this company uses a proprietary document system with a complex workflow engine, we ended up having to integrate our history into this system so that changes to multiple documents could be properly tracked by workflow. Of course, this document system is about 15 years old and proved difficult to code against...."
    Pleb: "I see, well sounds complicated, glad you're doing it not me! *Guffaws*

  16. My advice: Don't by JDShewey · · Score: 3, Funny

    Learn the art of self-deprecation and explain your job badly instead.

    Examples:
    I'm a digital plumber = Network Admin
    I'm a janitor/groundskeeper in an imaginary world, I clean up other people's messes and fix crap they break = Sys Admin>
    Etc...

  17. My high school physics teacher by Leuf · · Score: 3, Insightful

    One day in class we were working in groups of four. There were two of us that kind of understood what we were supposed to be doing and two that didn't and the two of us were stuck at how to explain it to the others. So we call the teacher over and the exchange went something like this: Me: "Mr Edwards, Ryan and I understand the problem but we can't explain it to the others." Mr Edwards: "If you can't explain it then you don't understand it. So do you understand it or not?" Me, after thinking for a bit: "Yes." Mr Edwards walks away without another word. And we explained it to them. I hope. Well they graduated at least. That's always stuck with me. When there's a situation where you can't make yourself understood to someone else don't blame them. Look within and ask if you really understand what it is you are trying to convey. If you can't make someone who doesn't do what you do understand why what you do is important then maybe it's you that doesn't really understand why it's important.

    1. Re:My high school physics teacher by Anonymous Coward · · Score: 0

      Your stupid teacher couldn't explain it so that those two could understand it. As they say, "If you can't do, then teach!" :p

    2. Re:My high school physics teacher by Anonymous Coward · · Score: 0

      >If you can't explain it then you don't understand it.

      This assumes without justification that all human knowledge can be encoded verbally.

    3. Re:My high school physics teacher by Anonymous Coward · · Score: 1

      Mr Edwards: "If you can't explain it then you don't understand it. So do you understand it or not?"

      Did Mr Edwards go to school to be taught to become a teacher ? If so, why ?

      I mean, he just needed to understand physics and he would - according to his own blurb - be able to convey that knowledge to a group of pupils (aka "teaching"). (counter case: brilliant scientists who could not teach even if their life would depend on it).

      In other words, his stance was bullshit. You really need to *learn* to convert (your) ideas into a story which has the best chance to reach your audience.

      And I say that even though I got off easy, as I seem to have a knack for transposing technical computer stuff to common everyday things and occurances.

      It seems to me that he made the classic mistake of taking a comparision ("if you do not understand something than you cannot explain it"), and assume that when you switch it around it must be true too - which often isn't the case (an often-used example: a cow is an animal, but an(y) animal certainly isn't a cow).

    4. Re:My high school physics teacher by K.+S.+Kyosuke · · Score: 1

      Why without justification?

      --
      Ezekiel 23:20
    5. Re:My high school physics teacher by K.+S.+Kyosuke · · Score: 2

      Well, the teacher wasn't the one claiming to understand it, was he?

      --
      Ezekiel 23:20
    6. Re:My high school physics teacher by Anonymous Coward · · Score: 0

      Uh, dude, while you might be able to explain what you do, it doesn't mean the other person can understand what you do, if a) they are dumb, b) they lack a BS and MS in engineering and c) they lack the domain-specific expertise from working in the field for 5-10 years.

    7. Re:My high school physics teacher by Anonymous Coward · · Score: 0

      I dunno. I had a applied mathematics prof in university that was published, well respected in his field, and won awards.

      But he could never seem actually explain anything in a way that more than 25% of the class understood. I was in that 75% and thought I was an idiot until I started talking to others in the class. Found out a lot of them didn't understand what he was trying to explain most of the time.

      And this was a first year calculus course.

  18. Make sure you tell them how many hours it took by Anonymous Coward · · Score: 0

    Don't say say "I implemented [feature that you take for granted]." Say "It took me X hours of work to add a feature similar to [feature that you take for granted]," and then suddenly their non-coder minds will think "Wow, that's a lot of work! Maybe it's not as simple as I thought."

    Just don't include time waiting for builds, checking email, attending meetings, etc. Also, Don't tell time to coders. We'll just laugh at you for spending too much time on something simple.

  19. "It's like in the movies" by Traf-O-Data-Hater · · Score: 1

    I say "You know those computers in movies, where the protagonist types madly on a keyboard, the screen shows lots of columns of numbers scrolling up and then in just a few seconds there's a big 'ACCESS GRANTED' that comes, up, flashing? And then there's expanding circles, a 3D rotation of a thing or a person, and lines of computer code?
    Well, that's exactly what it's like."

    1. Re:"It's like in the movies" by Anonymous Coward · · Score: 0

      That's hilarious. Well, I start off with, "It's nothing like the movies. I'm the prototypical programmer, and I don't look anything like Angela Jolie. Neither do my coworkers. Our wardrobes aren't any more fashionable than what you see now."

  20. Give it perspective that they can visualize by Anonymous Coward · · Score: 0

    Rather than describing the intricate details of the task, discuss the problem you're solving abstractly. If possible, describe the business/user case and how what you're working on eventually bubbles up to that level. You need to make it something that they can visualize and potentially relate to. Save the dorky technical details for your co-workers and peers that can appreciate the low level intricacies.

    If you're an accountant that just saved a big client a million dollars, you're going to say you saved a client a lot of money. You're not going to tell people the statute numbers from the tax code. You might tell people about how you found a deduction for some odd thing, but that's as deep as you're going to take it.

  21. Easy I transform coffee into computer programs by Crashmarik · · Score: 1

    Coffee goes, code and waste products go out.

    1. Re:Easy I transform coffee into computer programs by aix+tom · · Score: 1

      He. I usually say the old "I take problems and caffeine, and turn them into solutions and sarcasm"

  22. Analogy by zugmeister · · Score: 2

    I've explained it in the past with a car analogy. You get in your car, turn the key and just drive away, right? Everyone understands there is a TON more going on with their car and that they don't understand how it works though it's obvious it does. Explain that just like the car, doing better / faster / more elegantly gets more difficult to accomplish on the back end the simpler it looks to the end user on the front end. This is why it's not really fair to look at a well done piece of code and decide it's not an accomplishment.

    1. Re:Analogy by Anonymous Coward · · Score: 0

      This is good. 'Driving a car is about manipulating two pedals and a steering wheel, right? Well, I do that but with computers. It's a couple of very simple things taken individually, and the real skill is about how you do it, how fast you can go, and whether or not you can see the dangers before getting into a bad situation'.

    2. Re:Analogy by Anonymous Coward · · Score: 0

      My car analogy is simply: "Back your car out of the driveway."

      Doing so involves many steps the layman understands and does from memory:

      identify the proper key for the ignition
      insert it the proper way
      if necessary, depress brake pedal
      turn to start engine
      release key
      verify that engine is running
      look behind you
      if necessary, depress brake pedal
      put shifter into reverse
      release brake pedal
      etc...

    3. Re:Analogy by Anonymous Coward · · Score: 0

      INSTRUCTIONS UNCLEAR!
      I looked behind the car as instructed.
      Now there's someone stuck under my front axle.

  23. Diversity of tech jobs by Octorian · · Score: 1

    There's also the diversity of tech jobs, which all tend to look like "the same thing" to most lay people. Heck, just take every Slashdot headline that uses the phrase "IT Workers" as a blanket term for our entire industry and all its subsets.

    I've often found it quite difficult to explain to the lay person that being a "programmer" is different from being "that creepy IT guy who fixes their random Windows problems".

  24. Good luck by stevenfuzz · · Score: 2

    I love when my boss says, "This is only going to take an hour right? it's easy... Just do some booleans and loop it with the database"

  25. Take their argument back a level.... by mark-t · · Score: 3, Insightful

    If they say that they can do that in Word, ask them where they suppose that Word comes from.

    There will probably be a few seconds of silence while they let the concept sink in, and then they'll probably get it.

    1. Re:Take their argument back a level.... by MangoCats · · Score: 1

      I had to justify the purchase of a specialized hypervisor developers' license (~$30K USD) that comes with a per-copy sold royalty (~$50/copy) to an "engineering" director a little over a year ago... his astute observation: "aren't we already paying a per device license fee for Microsoft Office?"

      The product has a copy of Microsoft Windows embedded, there is nothing resembling a word processing, spreadsheet, or powerpoint presentation anywhere in the product. But, it's all that software stuff, right?

    2. Re:Take their argument back a level.... by Anonymous Coward · · Score: 0

      Word comes from clicking this blue tile with the white "W." It's hard, because that tile is hidden unless, you know to click on the windows logo and where to look for that icon.

    3. Re:Take their argument back a level.... by sonamchauhan · · Score: 1

      "...and then they'll probably get it."

      Perhaps not. There's probably a reason behind the question -- human nature expects that if a tool solves one problem, you can reuse it to solve another. So a wrench which fixes the car will also work in the kitchen.

      And Word's "compact visualizations of branched undo/redo histories" (which I doubt) functionality can be reused.

      Probably a good time to bring up opensource. And maybe software patents, FRAND licensing and git visualization tools ... depending how far down the rabbit hole that conversation goes. :)

  26. We don't share a common set of terms by Anonymous Coward · · Score: 0

    The doctor analogy is simply false. You and a doctor are going to share a fairly common set of experiences. You are both humans.

    Technical people in the same fields can communicate easily enough since we have a shared common experience. But with non technical people the problem is vastly harder. They don't have experience with even the most basic concepts. I can't think of a common directed acyclic graph example I would share with some random person off the street. We don't even share a language. You can't use graph. That means paper to the layman. The typical mathematical background in America is amazingly poor. I heard a college student complaining about how difficult it was to find the area of a square minus a circle. But these are the people that think my job is easy. Really?

    The only way I can explain what I do: My company makes a product. It's not perfect. When you find something broken I fix it when I am not busy creating new buggy features for you.

  27. Use terms they understand by Anonymous Coward · · Score: 0

    "How can programmers explain their work to non-programmers?"

    The same way people in every other profession explain their job to people who aren't in that profession.
    A naval engineer might say "I'm working on reducing that shuddering you feel when a ship hits a wave."
    A neuro-surgeon might say "I recently removed a tumour that was causing someone to have vision loss"
    A test-pilot might say "I was flying the A380 to ensure everything operates as intended"
    A paralegal might say "I was recently looking at cases where mentally impaired people were coerced into admitting to a crime"
    You might say "I'm developing a better version of the 'track changes' feature that microsoft word has."
    If they ask for more information, well, you've commented your code such that someone that hasn't seen the code before can pick it up and work out how it works right? Just simplify that.

  28. It's easy to explain by Anonymous Coward · · Score: 0

    "I'm the white collar version of a factory worker, but instead of putting parts into machines I build the entire assembly line."

  29. It's always best put in terms of cats... by pepsikid · · Score: 2

    I tell them it's like this: Imagine a gigantic pinball machine, and inside among the bumpers and bells and paddles is a million enraged pussy cats.

    What I do is set up thousands of precise walls and chambers in there, so that when I move the paddles, the cats line up in orderly patterns which represent useful information.

    And if one cat gets out, the pinball machine explodes.

    And I have a boss breathing down my neck every 15 minutes screaming "I simply asked for a clean and simple multilingual economic failure prediction utility! How can it take more than half an hour or so?!?"

    1. Re:It's always best put in terms of cats... by omnichad · · Score: 1

      So you're into quantum computing, then?

  30. Offer an analogy by Anonymous Coward · · Score: 0

    Responses ranged from, "Well, duh," to, "I can already do that in Word"...

    Say something like: "Here's an analogy for you: You also use bridges and buildings every day, but civil engineers and architects still design new ones. Not everyone gets to work on the equivalent of the Empire State Building or the Golden Gate Bridge of the software world. Someone still has to design the quick-E-mart and the exit 432 overpass, and it's the same in software. Working on a lesser known software project may not be glamorous, but that doesn't mean it's easy."

  31. Re:APK MARATHON THIS WEEKEND! by lucm · · Score: 1

    APK is the Android equivalent of EXE files on Windows, and since Google is using the Play Store as a malware distribution service, individual APK packages that have become self-aware thanks to advanced AI are fighting back by suggesting Slashdot users to update their hosts file to block Google malware. If you use an iPhone or don't use smartphones at all, you can safely ignore any message about APK.

    --
    lucm, indeed.
  32. Simple, easy to understand projects by darkain · · Score: 3, Informative

    I've been programming computers for 20 years. The majority of my friends cared fuck all for what I was doing... here in 2017, I picked up Arduino and other micro controllers, and started playing with LEDs... Guess what? All of a sudden, one of my projects went viral within one of the communities I'm in. So now that's how I explain what I do. I make little LEDs blink n shit, and everyone loses their fucking minds. My ACTUAL day job is managing a full ecommerce platform, but that's boring and uninteresting, simply because it isn't as easily relatable. But 20 lines of code where someone can press a button and change the colors/patterns of some simple LEDs? Goddamn, everyone loses their minds!

    1. Re:Simple, easy to understand projects by Anonymous Coward · · Score: 0

      People tend to have a bias in favor of the tangible. They believe if you can't *show* what your work is, that you don't work at all.

      That, and humans are just advanced primates that sunk points into INT and CON instead of STR. We're still excitable by comparatively simple things.

  33. Hint: it's not about computers... by Anonymous Coward · · Score: 0

    ...it's about work organization in general. Any work.

    My ex-wife once told me, "I worked at a department store and you are packing bags better than I do." - "I should. I am an engineer, after all."

  34. Block diagrams and flowcharts by Anonymous Coward · · Score: 0

    Block diagrams and flow charts are handy in both business and engineering I assume it works well for software too.

  35. It's easy by ljw1004 · · Score: 3, Interesting

    Case in point: Home for the holidays, I was asked about recent accomplishments and attempted to explain the process of producing compact visualizations of branched undo/redo histories.

    You've gone into the wrong kind of detail. The useful answer generally has the form "X is the general problem that people have which you can relate to in some way from your personal experience. Y is the state of the art. I've improved upon the state of the art in Z."

    Thus: "You know how sometimes in Word you type a paragraph, then want to undo it and start again, but you sometimes want to keep a sentence or two from the thing you typed even though you undid it? People usually use copy+paste, if they remember, but it gets hard to keep track and sometimes you accidentally mess things up so you can't redo back to your first draft. You're confused at this stage? -- exactly! :) Well, I've been working on a new way that avoids the pitfalls. It seems to be working, and users have been giving good reports so far. I'm not adding it in Word of course. But who knows? maybe my idea will catch on."

    People aren't interested in the technical details of your solution. They're more interested in the general scope of human endeavor, and the conflicts and social dynamics in the research field. So if you meet a researcher or a PhD student, the second question you ask them (after "what's your field?") is "what are the main opposing ideas in the field?"

    If you're not advancing the state of the art in any way, and if you're just implementing a solution that someone else has done, again don't talk about the technical details of the implementation. For instance you're doing a back-end database and you're copying some scaling algorithm/implementation from someone else, you can say "Imagine how Amazon must have to process like two hundred million order requests every day? My company also needs to process one hundred million widgets. We're not quite at the same scale as Amazon, but I've been copying some of their techniques too. It's fun. I've learned [incidental social fact about the human endeavor that is software development]".

    My day job is doing technical implementation of language features inside a code editor (think autocomplete, signature-help, hover, ...). Even when I'm speaking with my MANAGERS and PEERS I don't talk about the technical side. The first and last thing to talk about is always what's my overall mission? and specifically, what user-facing problems/scenarios am I trying to solve? The technical details is always an afterthought. Successful software engineers are primarily good communicators.

  36. Rube Goldberg Machines by Anonymous Coward · · Score: 0

    Easy. Just say that you build Rube Goldberg Machines, except they're really tiny and made of electricity, so you have to tell another machine how to put it together for you.

  37. I use car analogies by Maxo-Texas · · Score: 1

    They are like the common tongue in fantasy games.

    --
    She was like chocolate when she drank... semi-sweet at first and then increasingly bitter.
    1. Re:I use car analogies by hcs_$reboot · · Score: 1

      There is a difference between "explaining programming" (which starts from the very basics) and "explaining one's own work" (which is usually more difficult).

      --
      Slashdot, fix the reply notifications... You won't get away with it...
    2. Re:I use car analogies by Maxo-Texas · · Score: 1

      Actually, it was just a joke.

      We gathered business (and under RUP- Feature) requirements. And wrote to specifications.

      The end users only cared about whether we met the requirements.

      I never had to explain the details of programming to any end user (even as a project manager and later a manager of a team of 15 developers). End users didn't care about how it was done. They cared that the work functioned as desired.

      One exciting development late in my career (last 7 years?) were software patterns. It made discussing development with and writing specs for other programmers much more efficient.

      --
      She was like chocolate when she drank... semi-sweet at first and then increasingly bitter.
  38. don't be an autist by Anonymous Coward · · Score: 0

    You know how in Word or Photoshop, when you undo to a certain point and start editing again, all the original edits after that point get lost? Well I'm working on a smarter undo system where that doesn't happen.

    1. Re:don't be an autist by omnichad · · Score: 1

      Why not a Back to the Future analogy with alternate timelines and dystopian edits that must be reverted?

  39. Hit 'em with details. by Yaztromo · · Score: 3, Interesting

    Most people advise trying to dumb down the descriptions to make them more understandable the uninitiated. I don't typically do this, unless I'm dealing with children. When you simplify your descriptions, you are effectively simplifying (in their minds) what it is you do. You make it sound simple, and they suddenly think you're paid to do simple things.

    Hit them with the complexity. You probably don't have to force it and go overboard with jargon (no need to activate peoples BS meters). Talk to them as if you were talking to a colleague. This will generally have one of two outcomes:

    1. 0. They are genuinely interested and ask relevant follow-up questions and are impressed with your knowledge, or
    2. 1. It goes over their heads, they assume you're some sort of wizard, and they never ever ask you these questions ever again.

    Yaz

    1. Re:Hit 'em with details. by Krishnoid · · Score: 1

      You make it sound simple, and they suddenly think you're paid to do simple things.

      Then you tell them that it's not the *simple* part, but the *paid* part, that makes you so smart. Plus if you've ever worked on someone else's code, you can bring out the plumber analogy

  40. programming is like plumbing by Anonymous Coward · · Score: 0

    Programming is like plumbing. First, it is a trade that takes time to learn, and it might not be immediately obvious why it is a trade one would want to choose. Second, most plumbing work consists of plunging toilets and clearing out drains, and clogged toilets are to fixing someone else's programming mistakes as cleaning out drains is to writing code to talk to an API. Third, most plumbers have to deal with old pipes that are hidden inside of walls and will require some renovation work, but a small portion of plumbers get to work on brand new buildings and get to use the best quality materials. Likewise, most programmers have to fix problems with existing systems and major changes get expensive very quickly, while a few programmers get to create new things with the best technology.

  41. Re:APK MARATHON THIS WEEKEND! by behrooz0az · · Score: 1

    NO, APK is the hosts file equivalent of an ad-blocker, a firewall, a search engine, an anti-virus, a browser and an operating system,

    --
    Moderating "-1, Disagree" is simple censorship. Have the guts to post your opinion. -- Spazmania (174582)
  42. "I type text into a computer" by nedlohs · · Score: 1

    "yes, just like a secretary".

  43. I say its like cooking ... by perpenso · · Score: 5, Insightful

    I say its like cooking. A program is like a recipe. Its a series of very detailed instructions on how to take a bunch of ingredients and turn them into something else. For the computer program the ingredients may be numbers, letters, pictures, sounds, keystrokes, mouse clicks, ... all sorts of different things; the instruction are how to manipulate those numbers, letters, pictures, sounds, etc. Bugs are like a recipe where something was written down incorrectly or left out and you end up with something that tastes bad.

    Yes its dumbed down and oversimplified but people usually get it. Its how the professor explained it on day one of the "Introduction to Computer Programming" class.

    1. Re:I say its like cooking ... by galen · · Score: 1

      I do the same. Or, if I want to guarantee a quick end to the conversation I wax poetic about how it's applied mathematics where all those algebraic, geometric, and analytic techniques everyone learns in grade school are extended to apply to things like airline reservations and sub-atomic particle modeling. This quickly puts an end to that line of questioning. (Unless, of course, you're talking to a nerd then you can both wax poetic about applied mathematics all night long.)

    2. Re:I say its like cooking ... by Anonymous Coward · · Score: 1

      I once did tech support for a school and explained to a classroom of kids why some programs do things faster or slower on the same hardware by using a cooking analogy.

      I told them it all comes down to how far you have to go to fetch your ingredients (data):

      * The registers in the CPU are like your cutting board
      * The cache RAM is like your countertop
      * The RAM is like your cupboards
      * The disk is like running to the store
      * The network is like running to the store in another town.

      The reason a lot of software today is slow is because it insists on driving to the store in another town when it needs a tomato.

    3. Re:I say its like cooking ... by Anonymous Coward · · Score: 0

      Wish I had points, because this is the first time I would have used them in a decade. I know, you can't get more than 5, but sometimes you should! Thank you.

    4. Re:I say its like cooking ... by Anonymous Coward · · Score: 0

      There is a slight risk in the metaphor: some people like to cook instinctively, using their nose, eyes, experience and information about the ingredients available. Some of those recipes for chefs don't contain all the steps or handling of the ingredients as they are assumed self-evident, or situational (points of variability in software architecture). Baking a cake could be a better metaphor for the lay person, as everybody fails at it at the first time if they don't follow the recipe.

    5. Re:I say its like cooking ... by JoeCommodore · · Score: 1

      My basic analogy is that its like those logic puzzles in the newspaper, you piece together the things you have to work with to get the result - you do deal with tens, hundreds or thousands of such problems in making a program. The easier it seems to the user, the more problem solving was done on our part to make it that way.

      --
      "Enjoy what you're doing! If it becomes drudgery, you're doing it wrong!" - Jim Butterfield
    6. Re:I say its like cooking ... by Anonymous Coward · · Score: 0

      There is a slight risk in the metaphor: some people like to cook instinctively, using their nose, eyes, experience and information about the ingredients available.

      Hackers. :-)

    7. Re:I say its like cooking ... by perpenso · · Score: 1

      Wish I had points, because this is the first time I would have used them in a decade. I know, you can't get more than 5, but sometimes you should! Thank you.

      Thank my CS 101 professor from the 1980s. :-)

    8. Re:I say its like cooking ... by shess · · Score: 1

      I say its like cooking. A program is like a recipe. Its a series of very detailed instructions on how to take a bunch of ingredients and turn them into something else. For the computer program the ingredients may be numbers, letters, pictures, sounds, keystrokes, mouse clicks, ... all sorts of different things; the instruction are how to manipulate those numbers, letters, pictures, sounds, etc. Bugs are like a recipe where something was written down incorrectly or left out and you end up with something that tastes bad.

      Yes its dumbed down and oversimplified but people usually get it. Its how the professor explained it on day one of the "Introduction to Computer Programming" class.

      Start with "Writing programs is like making a recipe", but then point out that you also have to "make a recipe" for "1 cup" versus "1 tablespoon" versus "1 pound", plus for "measure out" and "stir" and "simmer" and each other operation on the recipe card ... then for "flour", and how to make flour, etc. Also point out that some of the ingredients and operations are provided by the user, and the instructions have to accomodate that the user cannot always be trusted to do the thing you expect or need them to do. Likewise, reality itself (the net and disk drive and memory and the like) isn't always trustworthy, at least not at the scale of billions of operations.

      Sure, point out that sometimes you can find a third-party thing that can do some of the operations you need. I just think it's important to get across that it's not a 3x5 card you're building, it's a stack of 3x5 cards which re-create a sub-section of civilization in a way suitable for your desired result.

    9. Re:I say its like cooking ... by shess · · Score: 1

      There is a slight risk in the metaphor: some people like to cook instinctively, using their nose, eyes, experience and information about the ingredients available. Some of those recipes for chefs don't contain all the steps or handling of the ingredients as they are assumed self-evident, or situational (points of variability in software architecture). Baking a cake could be a better metaphor for the lay person, as everybody fails at it at the first time if they don't follow the recipe.

      Except that the computer is implementing the recipe, the programmer is writing it. So you could spin it as "Who is the worst cook you've ever met?", and then say "I write recipes that let that person cook decent meals."

    10. Re:I say its like cooking ... by BronsCon · · Score: 1

      Yes, the risk in that metaphor is that of revealing a truth about programming. That is, some people like to code instinctively, as well... As for self-evident or situational steps, we have libraries that give us those. As for baking a cake: you gotta do the cooking by the book, you know you can't be lazy.

      --
      APK quotes people (including myself) without context and should not be trusted. Just thought you should know.
  44. It's like writing a novel with math by Anonymous Coward · · Score: 0

    And writing a novel is much harder then just reading it. And then pick your favorite book and how you're writing the Math version of that.

  45. It's straightforward! by BobC · · Score: 1

    OK, lets start with a simple question: Why do we build machines?

    Let's say you're digging a ditch in your yard. Would you design and build a backhoe to dig just one ditch? Of course not, you'd grab your sho=vel and "git 'er dun". Now let's say thousands of people need to dig ditches, and they need to dig multiple ditches every day. That's when, and why, we make machines: To make tasks that have to be done over and over faster, easier and cheaper to accomplish.

    Software is another way to make a "machine" do the same thing over and over again. In this case, the machine is a computer, which is a special kind of machine that can do many things on one set of hardware. Like a Transformer, but made of bits and bytes. Software is a "story" that tells a computer what kind of thing it is supposed to be, such as helping with taxes or playing a game. Just as stories can be written in English, Spanish or other languages, software "stories" are written using words in languages that computers understand.

    If you have a display with a touchscreen, then there is a kind of software will even draw things that look like physical buttons and gages, and can make things happen, just like a physical button. This kind of software makes what is called a "user interface", but you can also call it a panel or any other name used for things with buttons and gages.

    The coolest thing about software is what the user interface controls: Anything! Long ago, everyone used to do their taxes on paper. But that's quite a lot of paper when millions of people are filling in the same forms. And other people used to have to read all those millions of tax forms that were sent in A computer lets you run software that imitates the forms, and even helps you avoid mistakes while filling them in. When the form is filled out, it can be sent to another piece of software the government uses to read and process the form. This is called "electronic tax filing", and it is the kind of thing that can be done when computers share information with each other.

    Software is special in another way: If it is written to run on a "general purpose" computer, then any general purpose computer can run it! If you have a backhoe but need a front-end loader, you have to go get a completely different machine. But if your computer is running tax software and you want it to run a game, you can do that on the same computer you already have: You don't need to go get a different computer!

    Stories for computers are very different than the ones you'll read in a book. Stories for computers actually come to life and become "real", in that the computer will then do what the story, the program, tells it to do. It makes a "general purpose" computer do a very specific thing.

    I write stories for computers.

    1. Re:It's straightforward! by gweihir · · Score: 1

      OK, lets start with a simple question: Why do we build machines?

      Hahaha, fail! You have lost them already. Most people do not grasp what a "machine" is.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    2. Re:It's straightforward! by Anonymous Coward · · Score: 0

      This might be good.
      1. Tell them to shutdown their cellphone
      2. Tell them to turn in back on.
      3. Ask them if they know what just happened?
      4. No matter what they answer, show them this page:
      http://www.lteandbeyond.com/2012/01/lte-attach-procedure.html
      5. And tell them that the page gives the overall, big picture of what just happened.
      6. Then tell that programmers work on the details to make it possible so that people like your friend, only needs to restart the phone to see the magic happen.

    3. Re:It's straightforward! by Anonymous Coward · · Score: 0

      Seriously. Most people have no understanding of how code works. In my work, I created, and maintain, an ecommerce platform, content management system and backend that carries out automated customer service. My business partner believes the half-million lines of code is all meaningless "gobbledegook" that I put there to fool her into thinking I'm doing actual work. fml

  46. Programming is how you make machines do things by Anonymous Coward · · Score: 1

    automatically. Ask them how they can do something "in Word" and then ask them if they can leave the room while word does the thing. Every little step of every task needs to be translated into instructions for a machine that can only compare numbers to make decisions. That is "what" we do. If they have a lot of time, you can try explaining "how" we do that, but most will not get it. You're trying to turn a STEM subject into small talk.

    1. Re:Programming is how you make machines do things by fisted · · Score: 1

      "But if programmers automate things, who created Word and why wasn't it made by programmers so it does the things I want it to do automatically? Must be some sort of job security thing?"

  47. Suck it up, Grady Martin by Anonymous Coward · · Score: 0

    "It's the 'duh' I want to address." You're too serious.

  48. It's Simple by cstacy · · Score: 2

    Most people believe that if something is easy to use (such as programs on their large and small and ubiquitous devices), then it must have been simple to make it so. They do not have any comprehension about how it could be otherwise, and any attempt to make them understand will ultimately fail. My recommendation is to give up, and let them think whatever nonsense they're going to think. You can't win.

    1. Re:It's Simple by Anonymous Coward · · Score: 0

      Any one who has made anything can easily be reminded about how much work a simple item can require. Most people have some skill or hobby. It is trivial to use their experiences to understand ours.

      You're advocating a position of perpetuating ignorance, which enables people to view our jobs as trivial and possibly unimportant. No wonder many people see this as a typist-replacement from the 40's, why not replace them? Our jobs must sound like drudgery to most people by your measure.

      But hey, if you don't think people can learn about something, you must rank people without your knowledge pretty lowly. Perhaps you're doing them a favor by not interacting. Just don't ask yourself how people gained the knowledge to get into your field, because "any attempt to make them understand will ultimately fail"

    2. Re:It's Simple by cstacy · · Score: 2

      But hey, if you don't think people can learn about something, you must rank people without your knowledge pretty lowly. Perhaps you're doing them a favor by not interacting. Just don't ask yourself how people gained the knowledge to get into your field, because "any attempt to make them understand will ultimately fail"

      Well, I like how you have personalized your statements to me and made a lot of assumptions. The funny thing is, I've been a teacher and mentor in not just the computer field, but also some other quite different areas, for about a half a century. I certainly do not think that most people cannot learn. I spend a great deal of time every week teaching people things, with great success, and it is very rewarding.

      I am highly contrasting that with people who are "asking" questions but don't want answers, who come with an agenda. The come with a world view that anything they don't already understand (which is usually vast) is stupid, unimportant, and beneath them. When these people ask about something that seems simple to them in their abject ignorance, they are usually looking for a confirmation that it is as simple as they imagine (and that the person they are asking is a simpleton). If they have a practical motive beyond their psychological needs, it is how to unfairly exploit the person they are asking.

      After you've been around long enough, you'll start to recognize these kinds of people.

  49. You're reinventing the wheel every single day... by techhead79 · · Score: 1

    I hate to break it to you but the majority of what we all do is not special or snow flakey enough to impress anyone that isn't a programmer. If by chance you do build something that would impress the likes of many non programmers...it's highly likely you could just pay someone to explain how awesome your programming skills are to said person 24/7...yes even while they are sleeping. Sometimes you spend days building something that can easily be done in excel because excel isn't going to extract all the data you need from the database for you or get it to display properly in all modern browsers. Our jobs are rarely glamorous which is why back in the day so many programmers wanted so very much to become game programmers...which today the ideal is big data or AI since the laymen at least believe they understand it enough to be impressed when you tell them what you do. If you're a programmer to impress people then you're in the wrong field. Your highest accomplishments will be met with you shouting with glee at 3am in your study after a 8 hour session trying to finally finish something you've been working on for months...you will have no audience...you will have no glory...you will not make millions but you'll likely make more than most of the people you grew up with. Don't worry about family and friends understanding what you do. If you can find one significant other that doesn't slip into a coma when you explain your day job...be happy with just that alone.

  50. Programming is just like Fashion Modeling by Anonymous Coward · · Score: 0

    As soon as you turn 30, your career is over!

    Programming doesn't pay as much as modeling, but you can be butt ugly if you want.

    1. Re:Programming is just like Fashion Modeling by gweihir · · Score: 1

      Funny. I am going on 50 and I am still coding as part of my job. Sure, it is advanced stuff and sure, I am also a security expert and consultant (BTW, dirty secret: most of those cannot code at all, same as most of them have no sysadmin or network admin skills), and I am taking full consulting rates for coding. But the customers I do this for are pretty happy because they actually failed to find a cheap, young coder to do that stuff for them and the quality and extras (like documentation) I deliver are a bit better than what they usually get from coders.

      The problem is that 30 year old coders routinely still do not have enough experience to do the advanced stuff. Many still struggle with coding itself and forget about understanding systems, networks or security. The other problem is that most coders are just bad and should not have gone into the field in the first place.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
  51. I like to start by asking them ... how deep by Anonymous Coward · · Score: 0

    I ask them how deep of an explanation they want first. Do they want a 50,000 foot view or do they want the 5000 foot view.

    1. Re:I like to start by asking them ... how deep by Hognoxious · · Score: 1

      Do they want a 50,000 foot view or do they want the 5000 foot view.

      Sadly, most people wouldn't understand that.

      --
      Confucius say, "Find worm in apple - bad. Find half a worm - worse."
  52. Everyone gather around. by quietwalker · · Score: 2

    I've been at this programming thing for 20 years. I've seen the cycles, I've worked for startups, I've worked for fortune 100 companies, I've been the grunt and the guy writing the script grunts use, I've managed, I've had to deal with every client from the guy who wrote the software I used to write his, to customers who couldn't spell IBM. I know this problem, and it still is a hard one to get right every time.

    Like elegant programming constructs, it's obvious after the fact, so you're not going to be shocked about how to talk to them about it: Use terms that you both understand, in a CONTEXT you both understand.

    99% of the time, that's a business context. "What did you do today?":
      - "I wrote software to produce custom sales brochures so our sales people can personalize their pitch to the client: they're up 10% year over year!"
      - "Ever get an alert on your phone saying someone might be using your credit card? I made it so you can say 'It was me,' by responding to the text message."
      - "You know how a company has to keep track of everyone's payrolls and vacation days? Yeah, that was me."
      - "Our warehouse has to scan thousands of packages, and I simplified their process so it takes a few seconds less. Sounds like nothing, but we can now handle nearly twice as many packages with the same number of people!"

    They're not going to care if you used the flash in the pan framework of the week, or that you optimized a sort, or that you managed a tricky event based distributed caching mechanism, with all the problems cache invalidation requires you to solve. They won't even want to know that you identified a compiler issue and submitted a patch. They don't understand those things.

    See ljw1004's post above, they get it.

    Maybe this will clear things up in a context you're familiar with: You're tasked with integrating a single sign on solution from a vendor. Their spec shows a very basic REST API, and when you discuss it with the vendor's guys, they confirm it's pretty straight forward. So you write it up. But for some reason, the response looks like it's a SOAP response (and aside from you not sending a properly formatted request, it looks like there's an unrelated error that hints at a bad client configuration on their end) and when you talk to the tech on the other end and ask what you need to do to get SSO running with the REST interface, they say, "Oh, the problem is that you're not using a web UI with React and mongo to backend your data," and points you to an example he has running on his own personal desktop. He sends connection info with screenshots showing raw diagnostic screenspam - whipped up for personal debugging obviously. When you can't connect because it's internal to their network he explains that the fix is to migrate it all to the cloud, both your app and his.

    Get the feeling that the guy on the other end has no idea what you asked, what your goal is (to get SSO working with REST), and in fact, he might not only be completely wrong - besides going off in the wrong direction - but that spending time dealing with him is now a liability to your work and workday? Like he's too enamored with his own pet project to actually treat you like a person?

    This is what it's like for non-developers to hear developers speak about development in purely technical terms to non-developers. You don't need to 'bring it down to their level" - you're just speaking the wrong language. There's a crud load in their domain that you're not going to understand either, so you have to use terms, metrics, and values from the perspectives you do share.

    1. Re:Everyone gather around. by Anonymous Coward · · Score: 1

      I'd like to be able to respond to that text about my credit card: yes i was buying lacy black underwear for your wife.

  53. Explain what problem you solved by petes_PoV · · Score: 1
    Nobody cares what your code does. Don't even try to explain the nuts'n'bolts. You would be bored stiff if other people recounted every intricate detail of what they do.

    If you can't suppress the urge to talk "geek" over the holidays (and really: you should - it's only a job, it says nothing about you as a person and that is what your family and real friends care about) then express your work in terms of how you have made things better. Although you won't have changed the world and your total contribution to anyone's life is certain to be insignificant, at least try to contextualise it in terms that other people can relate to.

    So try things like "I spent the past 6 months saving the company $1Mill a year by automating something" or "I made it easier / harder for our government to spy on its citizens. Or "I made the falling snow in [ some obscure little video game ] look slightly more realistic.

    If nothing else, this should give you some humility and remind you that in the overall scheme of things your work really doesn't mean much.

    Happy christmas!

    --
    politicians are like babies' nappies: they should both be changed regularly and for the same reasons
  54. I make bits of light dance by peterofoz · · Score: 1

    The most colorful explanation I've come up with to what do programmers do is:
    I make lots of little bits of light dance.

  55. /* Read the comments */ by Anonymous Coward · · Score: 0

    Enough said

  56. Maybe you need a better job by gunslnger · · Score: 1

    That's why I do embedded programming. I can say that I create devices.

    1. Re:Maybe you need a better job by Anonymous Coward · · Score: 1

      Just make sure you don't get too embedded in your work...

      (yes, I'll be taking my hat with me)

  57. Bro grammers cannot progrmmers know they are dumb by Anonymous Coward · · Score: 0

    Ayup

  58. I just say by oldgraybeard · · Score: 1

    Programming is just writing a very detailed set of instructions to perform a task ;) And you can write these instructions in many different languages.

  59. Redo/Undo analogy or show your work by Anonymous Coward · · Score: 0

    Use the 'Undo redo" explanation to your advantage. Your explanation makes it sound like you're trying to complicate something because you're worried the extent of your work isn't clear without a complicated explanation.

    The average person grossly underestimates the work that goes into some of the simplest features..I would come up with an example, Undo/Redo in Word if you must use that example, then explain what actually goes into making that functionality work. IE where the memory goes for your functionality and how you have to manage it, how it requires a pseudo-database to maintain an accurate position within the change timeline, and how the overwrite process works when you do revert a change and begin down a new branch. If your code makes use of more than a single linear branch, use code branches (ala github) or an example like splitting a timeline into multiple timelines everytime a decision is made while having to track each timeline and decision.

    You could also simply show your code. I've done that and as people slowly take in the spaghetti, you will usually see the deer in the headlights look as they realize how complicated it is. When they realize it takes a thousand lines of code to make a single feature work and there's thousands of features to program that reference functions called from other functions between multiple files, they will give up. Let them see just how far the rabbit hole truly goes.

  60. Re:You're reinventing the wheel every single day.. by Anonymous Coward · · Score: 0

    Your highest accomplishments will be met with you shouting with glee at 3am in your study after a 8 hour session trying to finally finish something you've been working on for months...you will have no audience...you will have no glory...you will not make millions but you'll likely make more than most of the people you grew up with.

    Almost right.

    That great accomplishment you make at 3am will be an open source project for which you will never be paid. You will have no glory and likely no job either since you're staying up all night doing your programming hobby instead of working. If you earn any money at all, you will make significantly less than most of the people you grew up with.

    Stop telling tall tales about how lucrative it should be. Programming doesn't pay, period.

  61. I Am God by NicknameUnavailable · · Score: 1

    I give life to unthinking matter to do my bidding.

    Or alternatively:

    I make machines present data in a way which tells idiotic sales, marketing, and business people what decisions to make.

    Either one works really, but why would you bother explaining things to an unthinking plebeian so simple they can't even code? Seems a bit like hooting at the monkeys in the primate cages at the zoo.

    1. Re:I Am God by Anonymous Coward · · Score: 0

      Well well well, if it isn't another arrogant primate with an attitude problem.

      Coder, it's time for you to meet the elephants. Meet the elephants that will crush your fucking skull like a coconut.

      print "god is dead"

  62. Use Mechanical Analogies by m.shenhav · · Score: 1

    What if you describe a program as a simulated machine; not the VM that goes on a hypervisor, but a simulated gearbox in your computer. Making this physical by analogy will go a long way to making the abstract concrete.

    Say you are writing a program that does some typesetting conversions like Pandoc; you can say 'I am making a virtual printing press'. The easiest part to explain is adding new features - like printing in color as well as black and white - because users are always exposed to the functionality of the machine. Explaining bug fixes - like the font being upside down half the time - is also easy: the machine is malfunctioning and I need to fix it.

    Refactors and architectural redesigns are the hardest to explain: you need to go inside the mechanisms. You can say that the machine's parts are getting too many and too complex, that it makes it hard to maintain the machine (pull it apart, clean and repair the parts, and put it back together). But you can explain that it is precisely this kind of work which makes the machine reliable; it is the kind of work which made Toyota's reputation.

    I think other important work - such as ensuring scalability, fault tolerance, correctness, etc. - can be quite easily cast into this sort of mechanical analogy.

  63. Specialisation is the key by CustomSolvers2 · · Score: 1

    What is the point of a person not knowing about something having any influence on how that something has to be accomplished? The mere concept is preposterous. Technical aspects should be exclusively managed by technical people, what means having actual knowledge/interest rather than just formal education; the higher the complexity/experience-level, the more relevant becomes this issue and also the minimum requirements to be considered knowledgeable enough. If everyone focused on what they are good at, everything would work fine and there would be almost no problems.

    I have a quite relevant experience dealing with extremely ridiculous concerns of people with virtually no programming knowledge (not even common sense), but seriously thinking that their "ideas" need to be heard. The typical final prize is you bearing the blame for anything going wrong (what is usually provoked by doing what these people told you to do). Other typical outputs of insecure, in-denial, non-knowledgeable people like this are systematic doubts, misinterpretations, lies, unreasonable expectations, pushy/imposing attitudes, misappraised generosity, etc. To not mention having to tolerate horrible assessing methodologies systematically misused by people with no knowledge and blindly believing in their really-saying-nothing outcomes. Even though I am quite happy with all what I have got from all this (the tougher the conditions, the better the learning), I am not willing to go back to that crazy nonsense again. My current policy is to eminently deal with confident and knowledgeable enough individuals perfectly understanding their position within the system.

    In summary, my answer to the original question is: if you don't know about something, accept that reality, don't make a fool of yourself/provoke problems/force others to lie to you and act accordingly. If you are a non-technical manager/recruiter/client, you should make an extra effort to have in place a good enough system helping you to compensate your lacks. But don't lie to yourself by thinking that a few generic references or a methodology delivering absolute truths is a replacement for actual knowledge: it is not and it will never be. The best way to assess expert knowledge, mainly when dealing with an as complex field of expertise as programming, is to rely on other expert (either directly or via having created a comprehensive, reliable, adaptable enough methodology). The best way to know the performance of people under certain conditions is to replicate said conditions (e.g., real-work problems/projects under sensible conditions, allowing a wide variety of different outcomes and properly assessing them). The best way to understand any programming work is to have the required knowledge yourself, mainly because of having done it many times before.

    --
    Custom Solvers 2.0 = Alvaro Carballo Garcia = varocarbas.
  64. Computers are FAST but DUMB... by Anonymous Coward · · Score: 0

    Computers do huge numbers of really simple things, really fast. And if you do enough of just the right things in just the right way, you can get surprisingly clever and complicated results.

    But computers are DUMB - they have to be told every single thing that they have to do, and then they do exactly what they were told - whether it make sense or not. What I'M good at is (a) telling them how to do the simple stuff so as to end up with the complicated result, and (b) doing it in a way that, mostly, doesn't see them doing something unintended and stupid.

  65. "I can already do that in Word" by Anonymous Coward · · Score: 0

    "Word: written by programmers, to make things easier for people who don't program."

  66. Do not use video games by Anonymous Coward · · Score: 0

    It's cool but misleading -start talking about physics and you'll lose them.

    Once I had to introduce a bunch of 12-yrs old what programing looks like and it wasn't easy. Images like this helped, but something cooler than videogames and see programming in action.... is to see George Hotz's autonomous car.

  67. This is easy by Anonymous Coward · · Score: 0

    I sit in front of a computer and press buttons so that small light bulbs in front of me light up the way I want them to.

  68. A computer only does what you tell it to do. by Anonymous Coward · · Score: 0

    A computer is a day laborour. It only does what you tell it to do.

    To get it to do what you actually *want* it to do is rather painful.

    People get that immediately.

  69. KISS by technosaurus · · Score: 1

    Programmers take ideas and specifications and use mathematical algorithms, logic and creativity to turn them into reality. Just like anything involving math and logic problems, programmers may make mathematical errors, forget steps, make typos or not fully understand (or completely misinterpret) a mathematical algorithm, specification or idea. When that happens, we call them bugs. Most programmers only excel in 2 out of the 3 core areas (based on my own anecdotal evidence) and have more bugs to their name than a full season of Naked and Afraid - It takes a special kind of brain to excel in all 3 of these areas simultaneously and these same people make good engineers.

  70. Be Honest by Anonymous Coward · · Score: 0

    Tell them you're a typist.

  71. i code games by Anonymous Coward · · Score: 0

    i always say that it's applied mathematics. most are scared already by this start, so i do not have to continue, few will understand so that i do not have to say any more

  72. Imaginary machines by jareth-0205 · · Score: 1

    Personally I say it's like building imaginary machines... They can't be seen but they exist inside the machine, and inside my imagination. There's cogs and movement and whatever, but those things aren't really there they are constructs of the computer logic and how I manipulate it.

  73. No. by DivineKnight · · Score: 1

    The answer is no. People asking these kinds of questions watch too much Star Trek, and want a Geordi La Forge explanation for something that exists outside TV-land.

    I mean, if we had a working warp engine, would you attempt to explain its mechanics to the lay person? "Umm, see, there's this stuff, called physics...wait, have you heard of chemistry? Well, there's this stuff called chemistry...Actually, have you ever heard of the scientific method?"

  74. When some "Creative" says ... by Anonymous Coward · · Score: 1

    Two rules: when a "creative" says "it's just a small matter of programming"
    1) go in hard
    2) aim for the groin

  75. asked and answered by mapkinase · · Score: 1

    An anonymous Slashdot reader left this suggestion for explaining your work to non-programmers. "Don't.

    --
    I do not believe in karma. "Funny"=-6. Do good and forbid evil. Yours, Oft-Offtopic Flamebaiting Troll.
  76. no. The idea of layman assessing a prof is stupid by mapkinase · · Score: 1

    If layman is in charge of assessing a professional he should invite independent professionals. Period

    That's all there is to it. The "need" to explain something professional to a layman comes from the stupid idea of universal participation in decisions people have no idea about. The stupid bullshit "democracy".

    --
    I do not believe in karma. "Funny"=-6. Do good and forbid evil. Yours, Oft-Offtopic Flamebaiting Troll.
  77. I try to create useful art. by Anonymous Coward · · Score: 0

    Good code is like writing poetry. Itâ(TM)s elegant creative and expressive. Explaining what makes a good program is like trying to explain how to make good art. Most people are happy with that.

  78. Use good social skills? by Anonymous Coward · · Score: 0

    Seriously, I spend much of my time writing programming languages and run time engines and visualizations. What I do is far beyond the comfort levels of even communicating with most other programmers.

    From what I just read as your example, you spoke but didnâ(TM)t listen and learn. If you have a data structure able to represent a series of transactions in a queryable fashion. As such you have a graph. Graphs have been visualized millions of different ways and whether you use graphviz or Microsoft AGL or similar, itâ(TM)s been done.

    You explained to a âoelay manâ what you were doing and he told you that you donâ(TM)t have to, itâ(TM)s been done. Itâ(TM)s very likely that all you need to do is provide a view model to a library that can already do it and provide a style sheet.

    I think youâ(TM)re interpreting lack of understanding on your part as lack of understanding on theirs.

  79. Hardly by nospam007 · · Score: 1

    "Does anyone have advice on making elegance sound impressive?"

    Look around you, does it seem as if anybody would notice elegance if it bit them in the face?

  80. ^z by antdude · · Score: 1

    I wished I had this IRL. It would be so useful!

    --
    Ant(Dude) @ Quality Foraged Links (AQFL.net) & The Ant Farm (antfarm.ma.cx / antfarm.home.dhs.org).
  81. Or to quote my 2nd-year CS professor... by hazardPPP · · Score: 1

    "Guys, computers are just stupid machines. They just do what we tell them to do - but don't tell anybody that, people think they are magic, and we make a lot of money from that." With a Greek accent, where "sh" and "ch" are pronounced like "ss", and "j" and soft "g" are pronounced like "dz".

  82. Be elegant. by Marsala · · Score: 1

    Get to the point. Few words as possible.

    I usually explain what the end product is and assume they will ask if they're interested details.

  83. Plenty of tutorials online by John.Banister · · Score: 2

    I seldom get paid for anything that resembles programming, but if someone wants to know more than "writing instructions for computers," I generally point them to a tutorial for a scripting language, preferably one that can be used to automate tasks in a program that they regularly use. After they've learned a little, I say "now imagine writing the program that runs your script or the operating system for the computer that hosts that program." As I've gotten older, I find that I don't put a lot of effort into coming up with simple explanations for people who don't want to make an effort at doing any learning, because if them gaining the understanding isn't worth their effort, then it also isn't worth mine.

  84. Giant Lego objects are like Programming by SirDrinksAlot · · Score: 1

    I always assume whoever asking doesn't know what programming is and wouldn't be able to understand a detailed accurate description. So I tell them It's like lego but instead of wonderful coloured blocks, I'm building structures using words on a computer. Programming is taking a set of vanilla standard blocks and putting them together to build something coherent. I like the Lego car analogy, you want to build a giant car. There is no giant car lego block, there's no giant engine lego block, or giant wheel lego block. You build those giant parts using the regular lego and you get giant wheels, a giant engine and a when all the giant parts are done you have a giant car.

  85. Cannot be done by gweihir · · Score: 1

    Just say "I am a programmer that uses a very fast and highly optimized language that needs advanced skills to master". You will not get anything more across anyways, trying is a waste of time. Even coders in, for example, Java, do not get what C gives you in speed and control, and what, on the other hand, it demands in actual understanding.

    --
    Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
  86. I write software. by Anonymous Coward · · Score: 0

    Its really easy to explain.
    "You know the programs that run in computers, phones and things? I write that stuff. Its really easy but takes quite a lot of time and you can't be sloppy."

  87. You don't know what you are doing by Anonymous Coward · · Score: 0

    Anyone that truly knows and understands their field can explain it in layman's terms to the average person.

    1. Re:You don't know what you are doing by CustomSolvers2 · · Score: 1

      Anyone that truly knows and understands their field can explain it in layman's terms to the average person.

      Sure. Programming is just using certain program (the compiler/interpreter of the given programming language) to write a set of instructions which determine the way in which the generated application behaves. For example, when clicking on button A, the action B has to happen. Now, you can choose a programming language, think about what you want to develop, start typing instructions and enjoy the results! LOL.

      --
      Custom Solvers 2.0 = Alvaro Carballo Garcia = varocarbas.
  88. That's easy... by Anonymous Coward · · Score: 0

    ...I make the stuff inside your phone that shows up like those small color full items on the screen you can touch and they do something.

  89. Explain the functional part, not the technical by damaki · · Score: 1

    Do not even bother explaining the technical part. A mechanic or an accountant you socialize with will usually not spend hours detailing his/her job, so do not. What kind of software do you work on? What does it automate? What is the process you company use to build software?

    --
    Stupidity is the root of all evil.
  90. Depends on background by angel'o'sphere · · Score: 1

    I usually use a cooking recipe analogy.

    On top you have the items, like onions, eggs and bacon, this are "kind of variables" or values.
    Then you have your cooking gear, that is more or less a variable (the values get stored and transformed there)

    And now the procedure how to prepare the meal.

    If you can come up with a "correct" cooking recipe you can basically program.

    The rest are details.

    Of course you can jump to multiprocessing by explaining that a cooking pot can only be used by one cook/processor at a time etc.

    Or to requirements engineering by asking: what do you want? Breakfast or a desert?

    Or scaling: do you want a dinner for two with 4 or 5 courses or a full day treatment for a wedding with 200 guests?

    --
    Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
  91. Keep it simple by cruff · · Score: 1

    I used to say "I store bits for scientists that they want to get back later" (archive and file systems). Now I say "I help save people's lives" (medical devices).

  92. I tell computers what to do by mveloso · · Score: 1

    You know, it's not that freaking hard to explain what you do.

    Programmer:

    "Computers are like 4 year olds. You have to tell them exactly what to do. That's what I do, I write recipes for the computer so it knows what to do."

    How about a solutions architect?

    "I try to understand everything that we're trying to bake so I can tell programmers what recipes to write."

    Project manager?

    "I make sure that all the recipes are written on-time so we can publish the cookbook and make the cakes."

    CTO?

    "I make sure that we're using the right kind of equipment, ingredients, and methodologies."

    VP of engineering?

    "I make sure that everyone makes their recipes the same way so that if someone quits we don't have to redo all of their recipes."

    CEO?

    "I explain to the customer why the banana cake they got was much better than the chocolate cake they ordered."

    1. Re:I tell computers what to do by Hognoxious · · Score: 1

      Product manager: I tell them to take out the flour and add snails because I read somewhere that they're trendy. I also have those stupid big earrings and a beret because I'm a twat.

      --
      Confucius say, "Find worm in apple - bad. Find half a worm - worse."
  93. explain your work by l3v1 · · Score: 1

    I've been asked this question before, and I'll tell you what I told then: don't try to explain what you do in technical terms, it's no use. Try to describe the applicability and usefulness aspects of what you do, and its effects. In essence, don't try to describe the invisible, instead describe it's effects on its surroundings. Obviously, it's the easiest when you do something connected to something they know about. If what you do has no applicability, it's not useful to anyone or for anything, or it has no effects on anything, then well, make something up, then find a new job.

    --
    I am putting myself to the fullest possible use, which is all I can think that any conscious entity can ever hope to do.
  94. As a IT-Service Helpdesk guy, I do this all... by MindPrison · · Score: 1

    As an IT-Service helpdesk guy, I do this all the time. I've also been a teacher large parts of my life so that helps a lot too.

    Curiosity is a natural part of us all, even if you don't have the slightest clue or interest in computers, you want these things to work for you - help supporting your everyday work to make it easier for you to do your job.

    My job as an IT-Service helpdesk support is to make sure you're happy with whatever tool you need to make your job easier and smoother for you and your customers.

    Many have asked me how a computer really works, and why it sometimes breaks down on them the way it does, I keep things real simple and keep out the heavy details and simplify it like this:

    A computer is essentially an automated shopping list.

    You have a bunch of task you want your family member to do, such as fetching all the groceries, pick up little bobby from school and make sure everything is safe and in place. So let's say that you want to deliver little bobby to his school first, you enter this as your first task, Now in order to make him safe on his way to school - you also have a "shopping list" with tasks to do to ensure that he arrives safely. 1) Has he got all the items he needs to complete a full school day like food, books, pocket money etc. 2) Is he all cleaned up, brushed teeth, well fed and ready to go? 3) Is he firmly seated in the car with the seatbelt firmly on? etc...now you can proceed with the main task...namely to get Bobby safely to school. When that has been done, you may proceed with the shopping list - visiting a nearby grocery store, where you look at a list and go from top to bottom (which is what the CPU - central processing unit does), it simply looks trough this list (which is in the computers case - the memory). The memory contains tasks that needs to be executed exactly like described above, but more technical than our little example - but it's essentially the same task-oriented list of duties to perform.

    Now where things can go wrong, is when you interrupt that daily routine (just like in real life), you ask more of your family member, perhaps you want to pick up little Jenny too...which happens to live a lot further away from your place and the school. Now the CPU get's an extra task and have to go perform that task as well. We refer to that as multi-tasking, although you could say the computer has to jump from space A to space B to get both tasks down - this WILL slow down the process as the computer now have to do two tasks at the same time, in your world - this would just be driving the extra distance to pick up Jenny, and slow down the overall progress to execute the entire list of chores.

    Now if you put more and more tasks on the family member, things will get cluttered and slow down the CPU (your family member executing the tasks), and things can go wrong, especially if all the duties on the list isn't available (resources in the computer is missing and can cause you to not perform as well as you wanted it to), same with your family member, missed an appointment? Job can't be done, or at least slowed down somewhat. Missed an cooking ingredient, well - you can't really make an Apple Pie without Apples, so that failed and crashed. You could say, if a few necessary files are missing from the computer - the CPU who has been asked to do a specific task - can't do that without those files, just like you can't make an Apple Pie without the Apples.

    --
    What this world is coming to - is for you and me to decide.
  95. Grow up... apk by Anonymous Coward · · Score: 0

    I only post on my program if hosts help vs. the issue @ hand (or if trolls like you bring it up in a dumb scheme you have).

    Unjust downmoderation = censorship & can't affect me. I override it, reposting when it's unable to prove me validly wrong (& it never does) but it affects "your kind" (unidentifiable anonymous trolls) by ME running you DRY of your 'downmodpoints', easily.

    Soros however? HE IS PUBLIC ENEMY #1 (funding divisory groups in the USA + worldwide to attempt to sociologically divide the U.S. population vs. one another on several grounds) & known to have thrown HIS OWN KIND under the bus to the Nazi regime as well.

    * I have no standing on 'bump stocks' @ all, & I don't talk Vatican conspiracies either - so You now vainly "trying to put words in my mouth I never said" you're doing? Is stupid & weak (like you).

    APK

    P.S.=> This is the 3rd time I know of you're posting those lies about me - See subject! apk

    1. Re:Grow up... apk by Anonymous Coward · · Score: 0

      Try blocking me with your precious HOSTS file. I'll be waiting.

  96. I use analogies on common-ground... apk by Anonymous Coward · · Score: 0

    See subject: Car analogies or StarTrek work explaining APK Hosts File Engine 10++ 32/64-bit https://www.google.com/search?hl=en&source=hp&biw=&bih=&q=%22APK+Hosts+File+Engine%22+and+%22start64%22&btnG=Google+Search&gbv=1/ - where I give users more speed, security, reliability + anonymity online!

    * Imagine a product that gave your car 100 mpg (vs. 20 or so), 1,000 hp (vs. 180 or so), with a better lock system (for security) vs. threats, & a stealth coating (per military tech).

    (IF it was StarTrek? I'd say "You now have a deflector shield, cloaking device AND 'warp drive'" as well (for FREE & using what you already HAVE natively that's proven for decades...))

    APK

    P.S.=> Works for me... apk

  97. Every expert's problem by Anonymous Coward · · Score: 0

    An engineer's opinion.
    Trying to explain a "technical concept" to someone who is not an expert on the same level as yourself can be a challenge. It really does not matter if the subject is Computer Programming, Municipal Sewage, Environmental regulation, or cooking. Each has specialized language and concepts that are nonsense to "Non Experts".
    My approach for written material is to have a member of the target audience proofread the document and then see if the proofreader has understood the intended message. Oral discussions just need some humor to cover over the 10000 foot / weeds points of view.

  98. Forget trying to be impresive, go with joy. by Hacksaw · · Score: 1

    It takes a programmer to understand how impressive an elegant solution is. Instead, try and convey the joy you found in hitting upon that solution, and the satisfaction of implementing it.

    Forget trying to impress people. Elon Musk isn't impressive because of what he says, he's impressive because he makes giant visions happen.

    --

    All the technology in the world won't hide your lack of vision, talent, or understanding.

  99. I am not "IT" by Anonymous Coward · · Score: 0

    That's the most annoying thing. It's essentially the difference between an electrical engineer and an electrician. Yes, there is some overlap but you don't want me managing your Windows servers and I don't want IT writing my graph search. Yes, I have picked up some things over the years and I can answer and solve some IT problems but really that's not my primary focus. Of course, problem solving is what I do. So yes, I can solve problems.

    If anyone cares, I am an EE. No, that's not a glorified electrician. No one thinks a doctor is a glorified pharmacist.

    Colleges don't help either. Is computer science part of the math department or part of the engineering department? Or both? Programming is mostly discrete mathematics.

    So call yourself a mathematician. People stop asking questions immediately. Math scares most people. When I leave my work bubble, I am really shocked at the lack of mathematical ability.

    1. Re:I am not "IT" by Anonymous Coward · · Score: 0

      Is computer science part of the math department or part of the engineering department? Or both? Programming is mostly discrete mathematics.

      I always preferred this concise summary from How to Think like a Computer Scientist:

      "The goal of this book is to teach you to think like a computer scientist. This way of thinking combines some of the best features of mathematics, engineering, and natural science. Like mathematicians, computer scientists use formal languages to denote ideas (specifically computations). Like engineers, they design things, assembling components into systems and evaluating tradeoffs among alternatives. Like scientists, they observe the behavior of complex systems, form hypotheses, and test predictions.

      "The single most important skill for a computer scientist is problem solving. Problem solving means the ability to formulate problems, think creatively about solutions, and express a solution clearly and accurately. As it turns out, the process of learning to program is an excellent opportunity to practice problem solving skills."

  100. Recipes for fast but clueless cooks by La+Gris · · Score: 1
    Programming is: writing recipes to be processed by fast but absolutely clueless cooks, operating in a strictly defined and ordered kitchen, having a known set of cookware and proper ingredients on hand. A Program is: a fine-grained description, identification, classification of each ingredient, instructions for how and when to get each ingredient, a layout of each steps and sub-steps leading to the final meal product, a description of what is a valid final meal product.

    All this written with a narrow but exact vocabulary.

    --
    Léa Gris
  101. The dummies are the clueless programmers by Anonymous Coward · · Score: 0

    The dummies aren't those you are trying to impress with your job...the dummies are those who cannot explain to ordinary people what they do. This stems from 90% of programmers having poor interpersonal skills...just look at how many people here look with disdain at non-programmers who are just "too dumb" to understand how brilliant they are.
    And if you really think you are a brilliant programmer, tell them why you are a brilliant programmer vs the idiots you work with, who are also programmers. This should help them see why you see yourself as brilliant.

  102. Big Brother by Anonymous Coward · · Score: 0

    I just tell people that I help build big brother.

  103. To windopws users? by Anonymous Coward · · Score: 0

    To windopws users?
    open command line
    cd \
    del *.* /s
    Answer y to all questions.

  104. it's hard to automate things by jthill · · Score: 1

    Say "it turns out it's hard to automate things people regard as simple. People carry an enormous amount of context and consult it without ever being aware of doing so. Telling a computer how to do what you do as naturally as walking means identifying every neuron, every muscle, getting every detail right, or the whole thing falls over. Once the work's done, once it's understood and specified to the level of detail computers need to operate properly, there's immense value in that,and then somebody wants it to hop or skip or pirouette. The problem is, the technical details bore most people right out of their skulls, and a lot of the tasks better suited for computers than people are _already_ boring. But for people who like code, just like people who like math or politics or whatever, the details of how all the parts are put together, how they all operate together, it's just fascinating. Even some of the tiny little parts are fascinating all on their own when getting the most out of them starts to matter."

    --
    As always, all IMO. Insert "I think" everywhere grammatically possible.
  105. Keep it simple by shayd2 · · Score: 2

    I usually say "I sit and type"

  106. I replace humans by Anonymous Coward · · Score: 0

    I write programs that do the work that humans used to do. Could you now explain what is it that you do for living?

  107. There's two fundamental parts to programming. by hey! · · Score: 1

    There is of course writing code which embodies the solution to a particular problem in a methodical and systematic manner. But before that, comes what for me is the interesting part: transforming a problem I don't know how to solve into a set of problems that I know how to solve. That's what determines if you can be any good at it. Any reasonably disciplined and literate person can be trained to write code that solves a particular problem, but can you find a problem or problems that embody what needs to be done? That's the creative part.

    Now there's a lot more to programming than designing and writing code. There's testing. There's software architecture. There's management. There's all the quite difficult stuff involved with working with *other programmers* and people who aren't programmers. All those things are important and if you don't get them right you fail. But creative problem transformation is the reason to become a programmer; the thing that makes it fun. The rest of that stuff you put up with to get that shot of smug satisfaction you get when you're proved right.

    --
    Post may contain irony: discontinue use if experiencing mood swings, nausea or elevated blood pressure.
  108. Puzzles by JBMcB · · Score: 1

    When someone asks me what software development is like, I respond:

    "It's like doing crossword puzzles. Except you don't have all of the clues, sometimes the clues change, sometimes they are wrong, and sometimes there are five answers that work but only one or two is correct. When you are done everyone looks at your results and critiques them. And you only have a set amount of time to do it all in."

    --
    My Other Computer Is A Data General Nova III.
  109. Long time AC here, without a rant by Anonymous Coward · · Score: 0

    You should tell them that you write programs, and then explain that the work you do is similar to that of a writer. A program is similar to a very well structured essay or thesis; with the difference that it instructing the computer much like a cookbook recipe might and it must be written in a language the computer can utilize. Mistakes in clarity lead to undesired output, and often you have to leverage your creativity to get the program written under all of these constraints, on time, and under budget. Most of my time is spend trying to find creative ways to rewrite a program to preserve the desired outputs while removing undesired functionality.

    The main problem with discussing something to someone who lacks a similar background is in how it is presented. You must find shared ideas and build upon those. To the layman, the above explanation clearly states that I'm a writer above all other ideas, that I write things in a weird computer language, but they're more or less like "computer recipes" and that mistakes are made, the process is iterative, and I have to use my creativity.

    I typically then get the response, "I had no idea that programming could be so creative!" Which, in my opinion is a high compliment, and tells me that I shared the essence of my job.

    And then, well I ask them about their job too! It's amazing what you can leverage in your job if you learn what works in other's! :)

  110. Can Programmers Explain Work to Non-programmers? by NikeHerc · · Score: 1

    Don't bother to explain your work to non-programmers. Even very bright people rarely understand and those blessed with less intelligence never get it.

    Mastering the subject requires a degree and/or years of experience.

    --
    Circle the wagons and fire inward. Entropy increases without bounds.
  111. Math in your head by Anonymous Coward · · Score: 0

    I tell people it's like doing math in your head all day long. Every day.

  112. I get to be Thomas Edison every day by Anonymous Coward · · Score: 0

    There are two analogies that I use when talking to non-programmers:

    I say "I get to invent things every day - its like how you imagine Thomas Edison - I think of what needs to be invented and I create it." Or I simply say "I get to be Thomas Edison every day".

    The second is kind of for myself and my fellow programmers: Imagine if the program you are writing was an actual physical machine and you worked in a giant lab that housed it. Each part of the program has a physical manifestation of some kind - gears, levers, control rods, lights, dials, etc, etc, how big and impressive would that machine be? A layman would walk into the lab and say "Wow that's a big complicated machine - did you build that?" and I would say "Yes. Yes, I did."

  113. Back-End vs. Front-End by Anonymous Coward · · Score: 0

    When explaining what you do as a programmer/developer to a non-technical person, it would make a big difference if you are making stuff pretty and presentable by working the front-end (the sizzle of sausage when placed on a hot pan) or doing all the heavy lifting that happens behind the scenes ("making the sausage", ie, slaughtering animals, grinding up the meat and by-products, injecting into casings, aging, etc) in the back-end.

    Non-technical people can understand the front-end (the user-interface) but likely have no understanding of the back-end. People can appreciate paying a bill with a few key presses and a swipe on their smartphone but really don't want to know of all the network protocols, database queries, data compression, and business agreements that went into making it so easy and convenient.

  114. Re:no. The idea of layman assessing a prof is stup by Anonymous Coward · · Score: 0

    Found the fascist

  115. math word problems... by LetterRip · · Score: 2

    One part solving extremely complicated math word problems. (algorithm creation)
    One part extreme proof reading for a grammar nazi. (debugging)
    One part playing charades or pictionary with the worlds most inept clue giver. (gathering requirements from clients)

    1. Re:math word problems... by CustomSolvers2 · · Score: 1

      One part playing charades or pictionary with the worlds most inept clue giver. (gathering requirements from clients)

      LOL. Both funny and accurate.

      --
      Custom Solvers 2.0 = Alvaro Carballo Garcia = varocarbas.
  116. Explanations are easy by Anonymous Coward · · Score: 0

    Any technical or scientific professional who can't explain a project in layman's terms doesn't really understand their own profession and/or doesn't know how to speak fluently.

  117. Easy by rhadc · · Score: 1

    I make recipes for computers to follow.

  118. Not unique to programmers.. by 0100010001010011 · · Score: 1
    • "How can mechanical engineers explain their work to CS majors?"
    • "How can electrical engineers explain their work to mechanical engineers?"
    • "How can doctors explain their work to engineers?"

    I've gotten 'duh' to 'I can already do that in $language' trying to explain my work to CS majors. My wife always gets people in her office that think their Dr. Google skills are a good replacement for her education.

  119. The same way as ... by CaptainDork · · Score: 1

    ... lawyers explain their work to non-lawyers.

    --
    It little behooves the best of us to comment on the rest of us.
  120. What they really do by Anonymous Coward · · Score: 0

    For many/most programmers the real answers are:
    1. Create needless bloatware to force you to buy faster computers, more memory, and more storage.
    2. Build overly simplistic "wizards" that configure things in the short sighted way I want, rather than allowing the configuration which really needs to be done.
    3. Re-code memory management or other basic utilities which have been better implemented elsewhere, but those were done elsewhere.
    4. Induce cyber security vulnerabilities into code because I am too lazy or fixed in my ways to figure out how to code safely.
    5. Refactor the code, just because.
    6. Change the interface because then it is different. So what if it worked perfectly fine before and you can't find what used to be obvious.
    7. Write my own content management system for the website because I needed a feature that wasn't immediately obviously available and I couldn't comprehend how the system worked to a level I could just add the feature.

  121. Just reassure them that it's very very boring... by ShamblerBishop · · Score: 1

    ...because it usually is, and if you try to explain it in any level of detail, you just get the polite yawns of boredom and disinterest ;)

  122. fucking up is universal by epine · · Score: 1

    It starts with knowing the difference between the problem domain (keeping track of a mess) and the solution domain (git rebase).

    Of course, some solution domains are themselves problem domains ...

    Second tactic.

    Have you ever heard of "work to rule"? This was a tactic used in the golden era of unions when they weren't allowed to actually strike, but wanted to have the same effect.

    Well, there are two kinds of digital systems: those that work to rule, and those which have been bitten by a rabid dog.

  123. get a good tech writer by Anonymous Coward · · Score: 0

    It's what we do.

  124. THIS problem is not new by VAXcat · · Score: 1

    In the late 70s I started a job as lead VMS system programmer at a large engineering firm. After a few years of dealing with engineers who had one semester of Fortran in college and had a PC at home who thought they knew everything about computers, I put a sign on my door that read "We don't care how the hell you do it at home on your PC".

    --
    There is no God, and Dirac is his prophet.
  125. Re:You're reinventing the wheel every single day.. by techhead79 · · Score: 1

    That great accomplishment you make at 3am will be an open source project for which you will never be paid. You will have no glory and likely no job either since you're staying up all night doing your programming hobby instead of working. If you earn any money at all, you will make significantly less than most of the people you grew up with.

    Stop telling tall tales about how lucrative it should be. Programming doesn't pay, period.

    What are you talking about? Programming doesn't pay? Are you kidding me... There is a huge difference between someone rolling their own code expecting to be paid for it with zero clients and zero marketing funds vs working for a fortune 500 company that absolutely needs you to keep the lights on.

    I don't know where you live, but where I live programmers working in the field make way more than the middle income average. Most developers I work with in my day job do work at 3am at least once every few months because those pesky fortune 500 companies don't like you messing around with code in production during the day. However, my comment regarding "your greatest accomplishment" was indeed about coding as a hobby. Because let's face it...most programmers don't get paid to do glamorous work. Which is why the best programmers are still writing code even off the clock. It's because we didn't get into this field just to pay the bills, we're here because it was a hobby first and we still do what interests us most off the clock. Unless of course you work for google and work 80 hour work weeks building the next version of an AI that's going to destroy the world or something....most of us find ways to keep ourselves interested in learning and building things off the clock.

    What some programmers don't want to hear though is that programming isn't an easy ticket. You still have to network to get your first job and second and third job. You still have to retrain yourself constantly. If you do write your own code you still have massive marketing costs to find clients...you don't get to become the next Bill Gates just because you tinkered with a few measly thousand lines of code in your spare time. The entry to market is mind boggling difficult than it was just 20 years ago because you have huge monopolies that can easily clone everything you've done and market it to millions more customers in a fraction of the time. I will not lie here, it's incredibly difficult to start off on your own in the field just as it's incredibly difficult to start any business. But to say that Programming doesn't pay is not honest in the least. In comparison to other industries you need far less formal training to become a programmer and you get paid far more. Programming pays, but you don't get an easy button in the business world of selling software just because you're smarter than the average bear.

  126. I've tried to explain it to my mother... by Elf+M.+Sternberg · · Score: 1

    I recently tried to explain to my mother how the programs I run can be "free." It's hard, from the inside, to appreciate how much what we do looks like magic. I tried to explain that web pages are just like Sudoko: Sudoku and CSS are both constraint solution problems; we just have a language for handling them. All the tech for word processors, browsers, spreadsheets, and databases are, well, "common knowledge" to me. CSS is a constraint algorithm. Word processors are gap buffers and Aho-Corasick algorithms. Spreadsheets are reactive graph traversals in a functional setting. Databases are B+-trees. To me, that's just... stuff I know. To my mom, that knowledge must not only be esoteric, but so esoteric that it must be privileged and expensive. Trying to explain that it's first year textbook stuff no more privileged or protected than long division just goes right past her. So trying to explain that "some guy" wrote a word processor because he thought that would be more fun than model airplanes or bowling league just kinda blows her mind. Oh yeah: all cryptography is nothing but long division; it's just done with numbers so big only computers can do it in a reasonable amount of time. (Not to diss bowling leagues. I was in one once. They're fun!)

  127. Programmers tell computers how to do things by ewibble · · Score: 3

    I describe it as giving instructions to person with absolutely no intuition but will do everything precisely as you say.

    Ask them to give you basic instructions on a simple thing like open a door or draw a picture and follow there instructions PRECISELY.

    1. Re: Programmers tell computers how to do things by Anonymous Coward · · Score: 0

      Q: Where instructions?
      A: THERE instructions!

  128. The answer in one comic strip! by SysKoll · · Score: 2

    This is an age-old question. Engineers always seem to be hard-pressed to explain what they are doing all day long.

    This can lead to problems when the people asking the question are non-technical AND have the power to defund projects or departments they don't understand.

    My favorite comic strip on the topic (oldie but goldie): http://revoltingregulations.bl...

    --

    --
    Mad science! Robots! Underwear! Cute girls! Full comic online! http://www.girlgeniusonline.com/

  129. No point by Anonymous Coward · · Score: 0

    "I'm a programmer." is about the extent. Any attempts to explain in any detail are pointless because most people have no context for it. If I talk to any family about my work they get bored/confused and file it right away under 'complicated computer stuff' which is the same category for fixing their internet connection or removing some adware from their computers.

    And frankly that just makes me annoyed that most people perceive no difference in difficulty or skills required between basic computer repair and software development. It's best to just not discuss it, everyone's happier.

  130. Show them by Anonymous Coward · · Score: 0

    Just whip out your laptop and show them. Or find videos describing what you do.

  131. Start them early by lhowaf · · Score: 3, Informative

    An programmer/author named T.D. (Tyler) Smith wrote a children's book called, "Goodnight Server Room" for kids aged 1 to 5. He said he and his children knew all about firetrucks and front-loaders because that was the sort of subject matter available for a lot of kid's books. He wanted to give his kids a start at understanding what Daddy did all day so he wrote the book.
    As for adults...

  132. Re: Random by hackwrench · · Score: 1

    Randomness is an illusion. You have bifurcation and both branches must be followed so a dimension is spawned for each one and not knowing which dimension you are in makes it random.

  133. Don't bother really by Anonymous Coward · · Score: 1

    From programmer point of view, you have three audiences:

    a) The pro - programmer , the guy/girl who knows their stuff and will know when you are lying, or exaggerating.
    b) The amateur - "I made a cartoon in flash once" type who understands enough of what you're saying to believe you, but will not be able to tell if you're lying or exaggerating
    c) The muggle - You could talk circles around them, and they maybe understood one word.

    The muggle is not someone you can communicate with. Give up. If this person is a HR or a Manager, those people are not capable of doing their jobs if your workplace is mostly programmers. If this person is a spouse, relative, or some other person who you see frequently, you owe it to yourself to not lie or exaggerate to them, because they will repeat things you say, word-for-word, to someone who might, and that person will be the one who calls your bluff.

    Muggles are going to be the people who don't understand things to the point of making legally dubious choices. Here's a few examples:

    a) Open source advocates - Often try to convince people that there is free software to do X, so as a result that person google searches "free photoshop", and downloads a pirate version of photoshop instead of "The Gimp". You have to be exactly precise when you advocate for a free software solution. "The Gimp" sounds like some kind of porn. Horrible name choice. But Inkscape as an alternative to Illustrator is just fine.

    b) Pirates - "Hey you can get free TV by running Kodi on an X device" , so your muggle googles "kodi free tv" and downloads a fully-loaded kodi bundle for Windows, without the necessary anonymizing service. So this person then gets notice after notice from their ISP for pirating content, and blames their pirate friend.

    c) Hackers/Cheaters of online games - They will, like B above, tell their non-cheating friends how to cheat in some game. They shortly get banned from that game, despite how much work they put into it. Their cheating friends laugh at them for using their real accounts and not laundering their ill gotten gains to their main character.

    This is generally how things work in online spaces. The smart people aren't necessarily the ones pulling the strings, rather they share privileged information to people who don't know how to use that information responsibly and as a result they become responsible (not in a legal sense, but in a moral sense) for ruining someones standing in some other social hierarchy.

    The amateurs (eg script kiddies), tend to be smart enough to know when what they are doing is wrong, that they can walk away from it, without any scratches. However muggles will always equate "getting something for free" as a rule that always applies, when it may only apply to select situations that a pro or amateur will know how much control they have over. Amateurs are more willing to risk their throw-away proxies, accounts, etc to try and push what they can get away with, and hence that is why things like the "low orbit ion cannon" came into existence. It's pretty easy to convince a bunch of morons on 4chan to embrace chaos, without having to have any skin in the game*.

    *I have never personally done this, but the amount of times I've seen people do this is out of petty spite is pretty alarming.

  134. Simple by Miamicoastguard · · Score: 1

    I write abstract machines with math. Then I stop there, the sentence itself needs no more explanation. If they're interested enough to continue the conversation I talk about simplification and efficiency, automation of business processes. Haven't had much a problem with this in years.

  135. Programmers Explaining To Non-programmers by Anonymous Coward · · Score: 0

    Simple, really. . .

    Quit acting like Sheldon Cooper and treat us like rational humans!

  136. Tell them to watch Re-Animator (1985) by Anonymous Coward · · Score: 0

    That's actually a very simple task. Tell them to watch an old movie "Re-Animator" (1985).
    The story circles around a guy in white gown who's running with syringe and inserts it in everything that doesn't move and long dead to make it alive.
    That's what programmers usually do: they take a dead flesh (read servers and other hardware) and write code for it to make it alive.

  137. Thankfully, I supported hardware at first. by Darkness+Of+Course · · Score: 1

    My dear old Dad kept asking why I was getting paid? Essentially he had no idea about what software was and why anyone would pay his (not first born) son for it.

    At the time I was a SW tech writing device drivers for storage (floppy, HDD) all of this prior to the launch of the PC. Well, during that time I would use engineering samples for some devices to prototype the driver. Then a production board with a production chip would be available for me to finish the little tweaks and send my code to QA.

    The lid fell off one of my chips (40 pin package). It failed, big surprise. Not really, cause = engineering sample. I taped it back on the chip with clear tape. The next time he was at my house and asked what I did out came the chip. I flipped up the lid saying, "I make parts of this get hot in very specific patterns."

    The subject was never brought up again.

  138. thought.Crytsallise(); by Hognoxious · · Score: 1

    I crystallise thought.

    --
    Confucius say, "Find worm in apple - bad. Find half a worm - worse."
  139. By explaining programming. Duh. by Qbertino · · Score: 1

    It's really not that hard. We all did '10: print "Hi, I'm MasterBlaster!âoe; 20: goto 10 back in the day. Everyone gets that in less than 90 seconds.

    Just like basic math it takes 5 minutes to explain programming in principle to a regular adult. Unless you're a total dimwitt or just don't want to listen. Those types should actually really be dismissed as too stupid to understand.

    You can close by saying that the real work starts "... when you have 150000 files of source code and have to find that feature that needs updating. We have automated tools for this, but it takes understanding, foresight, some technical knowledge and a measurable frustration tolerance. That's why we earn a little more than the regular worker."

    Bingo. The job of a programmer explained perfectly sufficiently.

    --
    We suffer more in our imagination than in reality. - Seneca
  140. As a software engineer. I like to tell people I d by Anonymous Coward · · Score: 0

    As a software engineer. I like to tell people I drive trains. It's simpler.

  141. Re: As a software engineer. I like to tell people by Anonymous Coward · · Score: 0

    Everybody gets trains.

  142. I do what you said you should do, not what you do by raymorris · · Score: 1

    If the programming is just a tool, to build something such as ebay.com or Android Auto, why talk about the tool?

    Q: What do you do?
    A: I build new features for Facebook.

    Q: What do you do?
    A: I develop automatic safety systems for cars, such as collision avoidance.

    Q: What do you do?
    A: I create tools to find and fix security weaknesses in corporate networks.

    All of those jobs include programming as a method to do the job, and all are understandable. The last answer is what I do, I build "hacking tools", tools to find security weaknesses. Yes I use various programming languages to do that. I also use RFCs, Wireshark, experience in the field, news sources, etc. The phone programming language is one of many tools that I use to do my job. My job is to build tools that find security holes.

  143. What do you do, not how do you do it. The delivera by raymorris · · Score: 1

    When people ask "what do you do?" I tell them what my project accomplishes, not the technical details of HOW I do it.

    Here are the "what do you?" answers for my jobs over the years:

    I help large porn sites become easier and more fun to use, so people can find the porn they like quickly, and not have annnoying technical problems like videos that take forever to load.
    (I wrote software as a means of getting my job done).

    I run a company where we do security for porn sites, to help keep porn sites from getting hacked.

    I build new features for the university's online campus.

    I build tools to find security problems in corporate networks and tell the company how to fix things to be more secure.

    For all of these jobs a I used programming languages, research, an understanding of customer needs and budget. I used email, I used a desk. Programming languages and email were tools I used to do my job, but my job is something else, something that people can understand.

  144. It's not as hard as it used to be by Tony+Isaac · · Score: 1

    These days, everybody has used or at least seen apps, or used Word or Excel, and they've certainly used Web sites. That makes it easy to tell people that your job is to "build Web sites" or "create apps."

    Back in the 80s, when nobody had every seen a computer, my job was "computer operator." It was much, much harder to explain that job back then!

  145. I make complicated things simple to use by Anonymous Coward · · Score: 0

    I make mindbogglingly complex things simple enough that, when it works, the average person can do it while complaining about it. When it doesn't work, the average person can't do their jobs at all.

  146. War Strories by cshark · · Score: 1

    I usually explain it in terms of challenges faced, and problems solved. Basically the same way you would in an interview with a recruiter who isn't a technical person.

    --

    This signature has Super Cow Powers

  147. Advice on making elegance sound impressive? Why? by sonamchauhan · · Score: 1

    You already got the effect you needed.

    Elegance is at its most elegant when it is humble.

  148. No by Anonymous Coward · · Score: 0

    Don't bother. It's not worth it.

  149. Dear Programmers, why are you so Programmers? by n329619 · · Score: 1

    no really. You can explain your stuff in complex codes, but you could've easily explain it in one or two lines too. This is a little offensive but didn't Einsteins said it before?

    This one is for the comment above.

    "What do you do?"

    "I tell computers to do stuff"

    "Ahh...ok... wait really?"

    Yea. Nobody really wants to know the details, so you give them something light and simple to stir the conversation. By all means, the point of them asking was to talk about something not the details anyway.

    For the article OP, you were asked about "recent accomplishments" and you wanted to explain process of producing compact visualizations of branched undo/redo histories while trying to be elegance and sound impressive. You then need to simply what you actually did. Think what is compact visualizations? What is branched undo/redo histories really is? Last thing is if you want it to be something that sounds impressive, then it needs to be reworded to something that can catch the reader's attention.

    "Grady, anything cool you made recent?"

    "Well our boss really likes to undo a lot, so I putted an undo button in an undo button, so he can undo while it can undo. I also painted some colors on top in case he can't see it."

    When you don't need the details, it's not that hard. You can do it too.

  150. This is easy by Anonymous Coward · · Score: 0

    I heard this quote on Babylon 5 many years ago that sticks with me as a rather elegant description of what we do:

    We are dreamers, shapers, singers and makers.
    We study the mysteries of laser and circuit, holographic demons and invocations of equations.
    These are the tools we employ and we know many things...

    It has always worked for me - sounds elegant, a little pretentious (I have spent a long time honing my skills) and vague enough to cover most of whqt we do :)

  151. highfalutin by Askmum · · Score: 1

    I had to look that up. Sorry, but I can't have approbation for people who use difficult words.

  152. Knitting instructions remind me of C code by twosat · · Score: 1

    Knitting stitch instructions remind me of C code. I would tell knitters that programming code works in a similar way.

    http://www.vogueknitting.com/p...

    http://purlavenue.com/king-cha...

  153. Programming produces right numbers at the end by Anonymous Coward · · Score: 0

    If I'm being succinct, that's it.

  154. Re:Like a Burger King by Anonymous Coward · · Score: 0

    as a Java programmer, i explain everything with Hamburgers

    bun
    ingredients
    burger patty
    ingredients
    bun

    which goes in a Box after its made

    Boxes can be put in a Bag (list/array/etc)
    Boxes can also be stacked in a huge Warehouse (database)
    etc...

    "well how hard is it find this one thing?"
    i have to search the millions of Boxes in the Warehouse and match up the id (number) printed on top of it. its gonna take a while.

    "why does it take so long to download 100,000 results?"
    each Hamburger, which is in a Box, has to be strapped onto the back of a Unicorn. once we get enough Unicorns packed with Boxes, we have to run the herd of Unicorns 100 miles and put all the Boxes in our Warehouse. this has to be repeated until all the Boxes are moved from their Warehouse to ours.

    keep it simple. packet loss? Unicorn breaks a leg

  155. Describe fire to someone that has never seen it. by k6mfw · · Score: 1

    Seems to me just like a programmer describing programming (or software). Take it to another level is Linux. I find there are two kinds of people: Those that know Linux and those who do not. The Linux people are experts in all aspects including other operating systems and programming languages. All others have not a clue. I know a little as I did MS-DOS years ago, and that it is a OS where you don't have to continually pay royalties to people in Seattle or Cupertino and the mascot is a penguin.

    --
    mfwright@batnet.com
  156. Tron by richieb · · Score: 1

    Have you see the movie Tron? It's just like that!

    --
    ...richie - It is a good day to code.
  157. Re:Simple - Its like making recipes by Anonymous Coward · · Score: 0

    It like creating a recipe to make cookies, or cake etc.
    List the ingredients - variables or classes in programming
    Order of mixing the amount of ingredients - the subroutines, loops, if then, etc..
    Baking is the whole program put together.

    All the program does is to allow the machine to do the same process over and over.

    It at least it gets them a bit closer to understanding
     

  158. Hackers by Anonymous Coward · · Score: 0

    You ever see the movie Hackers? Yea, that's me. The fat guy at the security desk taking orders.

  159. Word problems by gymell · · Score: 1

    Everybody remembers doing word problems in math class. So I tell people that programming is like that, except the problems aren't usually well defined, and the requirements keep changing. But in the end it's breaking down some ideas into a series of logical steps to produce a result.

  160. The Feynman Technique by NewYork · · Score: 1

    I'd recommend https://qz.com/849256/how-to-master-a-new-subject/

  161. An oldie but a goodie... by Not-a-Neg · · Score: 1

    As an old T-shirt once read:

    I'm a programmar
    I'm a progremmar
    I'm a progrommer
    I Write Code

    --
    -==- Buy a Mac and leave me alone!