I've been volunteered to sit down and talk about the life and work of a Developer with a 15 year old work experience student next week.

The catches are that


I've got just half an hour, and
I'll be just one of the people talking to her - other people in different roles in the business will also be running through the elements of their jobs with her throughout the day.


What should I cover, and what on earth can I hope to teach her in just half an hour?

I assume that she probably has no experience with development or programming.

I interact with high schoolers a lot, so I answer this question quite often. Keep in mind that 15 year olds are much easier to explain programming to than 50 year olds -- so you need not dumb things down or use far-fetched analogies.

I usually start off with examples of what programs are:


Apps like iTunes, Photoshop, Chrome, and games including console games.
OSes like Windows, Mac OS, iPhone's iOS, Android. (Trust me, they'll know what you're talking about.)
Programs that crunch numbers or solve really complicated math problems -- weather simulations, biological simulations, calculating pi, AI, language processing etc.
Most sophisticated websites involve programming too.
Transit ticket vending machines and ATMs, microwave and fridge timers, car navigation.


After that, I usually go on to explain that we code programs in a formal language that the computer can recognize, often typing them up in something as simple as Notepad. The languages look like a cross between math and English, describing concepts and giving formulas and instructions for the computer to follow.

Then they usually ask if I'm on the computer all the time, if this is why I'm always on Facebook, and why my eyes haven't gone bad yet. Guys ask if I know how to "hack people", and girls ask if it's good money or how many girls there are in computer science classes.

After that, if they're still interested, they usually start asking specific questions that are a lot easier to answer (or at least to Wiki): things like how you would make a game, how Windows Messenger works etc.

If you have a computer around, you can show-and-tell some code -- something that would have tangible effects, like a button click handler from the settings dialog box in Firefox, the main loop or physics code in a game engine, some JavaScript source from a website etc..
