Skip to main content
GameDev.net gamedev.net
🔒 Locked

How to explain Programming?

Started by dimitri.adamou Aug 13, 2012 at 11:58 AM 22 replies 4.1k views
Original Post
dimitri.adamou
dimitri.adamou
Ok so I was talking with a friend (non-programmer .. oh the segregation!), and simply put he asked 'what is programming?'

After racking my head for a bit, I somehow ended up saying something like, "Its sorta like writting instructions on a piece of paper for someone to read, except you give riddles with hints and steps on how its solved - you can either be fancy or straight to the point, and sometimes the fancier you are the more meanings you can get out with less effort." and, "You could also say its like a treasure hunt. For example the kids parents set up the maps, hide all the loot and write instructions out - where the kids follow the instructions to get the results" then finally ending it with "writing instructions to get results"

I went on a massive creative tangent I guess, I've never really been asked this question before! How would you guys approach this? My parents still ask what do I do with computers
Lazy Foo
Lazy Foo
Rather than explain I just show them. I usually just boot up code blocks and do some console input/output with some conditions and loops.
Learn to make games with my SDL 2 Tutorials
kseh
kseh
I think you had the right initial idea. Programming is very much like writing instructions on a piece of paper for someone to perform. But the person can only do what is written on the page, exactly as it's written with no assumptions. You tell the person you wrote the instructions for to begin his task, you watch the person try to perform the instructions as you wrote them, interrupt them when they seem to be doing something wrong, try to figure out where your instructions went wrong, make changes to what you wrote, and then tell the person to start over again. Repeat until you get the desired results.
Dwarf King
Dwarf King
Programming = problem solving/instructing a machine.

And yes showing is better than telling smile.png
"The only thing that interferes with my learning is my education" Albert Einstein "It is a miracle that curiosity survives formal education" Albert Einstein  
ApochPiQ
ApochPiQ
Tell 'em it's like writing down a recipe that a 2 year old has to be able to follow. You have to explain really bizarre things that seem utterly ordinary to an older cook, and be ridiculously precise about everything.

A fun exercise is to have someone write down the instructions for tying their shoes - their target audience is a very young child that only knows how to read but knows nothing of strings and knots.
MrJoshL
MrJoshL
Tell him that the computer isn't a magic thinking machine, but is engineered and physically constructed to carry out a small set of instructions. Programming is taking those instructions and putting them together to make something useful. The instructions aren't complex, either. They are very basic operators like +, -, *, /, %, and memory controllers.
C dominates the world of linear procedural computing, which won't advance. The future lies in MASSIVE parallelism.
shuma-gorath
shuma-gorath
There's a game for that.

C-Jump-Programming-Board-Game,P-9-321021-13.jpg
I was once asked this by an eye doctor and immediately mentioned problem solving, but that didn't go over too well. In the future, I would just say that programming is the practice of producing automatable processes by writing "scripts" (in theatrical parlance) that computers can follow.
dimitri.adamou
dimitri.adamou
hahah that looks hilarious!

I really like that Shoe tieing example to!

I'm not sure how showing will help, it'll just be like "whoa what just happened? how'd you do that?" followed by funny cat videos on Youtube
kuramayoko10
kuramayoko10
Every answer above is very good and precise.

But at some point you realize that computers have a sort of dark magic behind it and you can get pretty negative on your answer... like:
"Programming is about solving problems we created ourselves."

Though I prefer asking someone to solve the "How to make a popcorn" problem and explain to him/her how hard it is to tell the computer to solve some simple stuff.
You will probably laugh on how the person forgot to cover the pan, or how she forgot to put oil on it and so forth.
Programming is an art. Game programming is a masterpiece!
Daaark
Daaark
Computer programming is writing down simple instructions in the right order to make a glorified calculator do useful work.
hknowledge
hknowledge
Its like learning a foreign language. You know what you want to say to someone but you have to learn their language first so they understand.

Except the machine is the foreigner you are trying to communicate with.

That is how I would describe it to someone. People are going to be potentially confused by a technical explanation.
dimitri.adamou
dimitri.adamou

Actually, fuck it - I retract my earlier answer.

Just tell them it's like this game (NSFW?)


ahahahah! I got Mr Efficient award ... just right on the floor ;)
kseh
kseh
I think the above descriptions are good to describe what programming is. But just for the hell of it I'll try to explain the "dark magic" that computers have. (Though now that I wrote it looks maybe not all that simple an explanation but it was fun to write.).

One of the basic ideas of a computer is to create electronic circuits that perform a number of operations. If you associate each operation with a number you can use create a program by loading a sequence of number into a predetermined location and then tell the machine to begin processing. Some operations may require parameters. Those parameters can be provided as an expected quantity of additional numbers that follow the operation number.

An example of a set of instructions might be:
[source lang="cpp"]
00 - Do nothing
01 - Walk forward 1 meter
02 - Turn left 90 degrees
03 - Turn right 90 degrees
04 - Sit down
05 - Stand up
06 XX - Walk XX number of meters
07 XX - Produce the following noise:
01 - cow
02 - chicken
03 - door bell
04 - ghost
08 XX - Put the number XX in your left pants pocket
09 XX - Put the number XX in your right pants pocket
0A - Add the value in your left pants pocket to the value in your right pants pocket and put the result in your left jacket pocket
0B - Move the value in your left jacket pocket into your left pants pocket
0C XX - Jump to instruction XX
0D XX YY - Jump to instruction YY if XX is equal to the value in your left jacket pocket[/source]
And a program that would have me get out of my chair, walk into the main hall, sit down, cluck like a chicken once, and then moo like a cow 3 times would then go like this:
[source lang="cpp"]
Instr # - Op Code
01 05
02 03
03 01
04 02
05 01
06 02
07 01
08 01
09 06 05
0A 02
0B 01
0C 03
0D 06 03
0E 04
0F 07 02
10 08 01
11 09 01
12 0A
13 07 01
14 0D 04 16
15 0B
15 0C 11
16 00
17 0C 16[/source]



Hey, does this qualify as creating my own language for one of those really hard steps to becoming a good programmer?
dimitri.adamou
dimitri.adamou
hey whoa +1 for effort! That's a pretty nifty way of explaining and demostrating
xiaoyunking
xiaoyunking
Haha, I also have been in such an embarrassed condition.
Once, I was asked by my mother's brother, he is an old farmer in the poor rural area of China, and I worked in the software department of a printer company (US-Japan Joint).
He said "Could you tell me what 's programming and what's software in printer?"
I really don't know how to explain such stuff to a man who even has never seen a computer. I took out my mobile phone, and told him softwares were in my phone, his face showed that he wanted me to disassemble the phone, and take out the "software" ...
oliii
oliii
For me, nothing more than telling a machine what to do to achieve a goal.
Everything is better with Metal.
dimitri.adamou
dimitri.adamou

Haha, I also have been in such an embarrassed condition.
Once, I was asked by my mother's brother, he is an old farmer in the poor rural area of China, and I worked in the software department of a printer company (US-Japan Joint).
He said "Could you tell me what 's programming and what's software in printer?"
I really don't know how to explain such stuff to a man who even has never seen a computer. I took out my mobile phone, and told him softwares were in my phone, his face showed that he wanted me to disassemble the phone, and take out the "software" ...


I thought that was very endearing of him haha! The rural area sounds like a nice place...do you go there often?
shurcool
shurcool
On a related topic, Khan Academy has released a new program today: Computer Science.

http://www.khanacademy.org/cs/1-welcome-to-codecanvas/882454257

I envy the kids today.

Topic Locked

This topic has been locked by a moderator. New replies are not allowed.

Sign in to reply to this topic.