Tuesday, April 5, 2011

What is a programmer?

My son recently asked me "What is a programmer?" when I told him what I do at work all day.

While I satisfied him with my simple answer, I started to think about it somewhat more explicitly - what does it mean to program?

  • What is programming to you?
  • How would you answer a young child?
From stackoverflow
  • Forty two.

    Welbog : Forty, Jokepu: http://dictionary.reference.com/browse/forty
    Welbog : Jokepu: come back to the channel, man.
  • A program is a sequence of instructions for a turing machine to complete an action or algorithm.

    A programmer is one who is able to understand and therefore create programs from an abstract action description or algorithm.

    More explicitly,

    A program is a sequence of instructions for a state machine to perform:

    • Data collection
    • Data analysis
    • Data storage and retrieval
    • Data reporting

    In some small part almost every program performs all of the above, and a typical programmer is able to understand the elements of a program that allow each of those missions for the machine.

    Cerebrus : I find it funnier that you chose to respond seriously to such a funny question!
    Adam Davis : Then the funniness has gone full circle!
    George Stocker : We've gone meta!
    Adam Davis : Meta? That's _way_ past beta!
  • I've asked a similar question in a slightly different way: http://stackoverflow.com/questions/486028/what-exactly-is-programming-closed. Perhaps some of those answers will help.

  • When my kids ask, I tell them that I give computers lists of jobs to do, and explain that computers require a lot of very simple instructions to do anything interesting.

    If they are still paying attention at this point, I give them examples of increasingly detailed instructions for a task they are familiar with, like cleaning the play room, or walking to school. At a high level, the instruction might just be "Get this room cleaned up!" which progresses to, "put all of the dolls on the shelf and make sure the Legos and the Polly Pocket clothes are in the right bins," to "pick up the blue brick, put the blue brick in the bin on the right, …" At this point, I tell them that that level of detail is about how I have to instruct a computer.

    If I ever find that they haven't wandered off by this point, I will explain to them that there's actually an even lower level, sort of like "move your hand 8 inches forward and 2 inches to the right, open your thumb and fore finger, lower your hand three inches …" and that I have program that helps me translate to this sort of machine language.

  • Programmers give explicit instructions to extremely fast. powerful calculating machines that think we are perfect and never make mistakes. They will do exactly what we tell them to even if it is wrong, stupid, dangerous, or all of the above. They will also do it very quickly. We then spend most of time trying to find out what wrong instructions we gave them.

    Young children I would simply say that I work with computers. However at a shockingly young age children start to become computer literate. They then will understand what we do.

    Eduardo León : Ahem... programmers are useful if the machines they program are fast, but in theory you could program very slow machines, just for the sake of doing it.
  • Well, I think that explain what I do to my children is easier than explain to my parents. :-)

0 comments:

Post a Comment