Earlier this week, I had the pleasure of waxing poetic on all that is software development to four groups of 7th graders at a local elementary school. I figured it’d be a good idea to document the experience for other developers who might find themselves in the same situation one day (turns out, I’m not the first developer to do a career day presentation).

3/14/2016 7:38:50 PM UPDATE by AD: Miles, from the comments below, contributed his version of my slides. You can download them at the bottom with the rest of the materials if you’re interested.

Preparation

In preparing for the presentation, I found a lot of great information:

…and lots of general information about teaching kids to program.

Supplies

For this particular presentation, you will need the following supplies:

One loaf of bread for every presentation you have to do

One giant jar of peanut butter (creamy will make your life easier, I promise)

One giant jar of jelly

A spatula that will fit in the peanut butter and jelly jars. You can’t take knives in some schools, but a spatula is more likely to be accepted. It will actually make things a lot easier if you can bring one spatula for every presentation you have to give.

One pair of latex gloves for each presentation you have to do

An entire roll of paper towels.. trust me

A small broom and dust pan

A trash bag

A small table or desk big enough to make a sandwich on..

A plastic table cloth for the table..

Paper plates…

Permission from the teacher to make a small mess in the classroom.

And here’s how it goes..

Before each presentation, the teacher was kind enough to introduce me.. Also, the table was clear at this point.. didn’t want to give the kids an indication of what was coming during the presentation.. Every presentation was slightly different, but I usually picked up with something like, “Hi, I’m Alex Dresko, and I’m a software developer.”

“I’m sure most of you in here are too young to have seen The Matrix…” (Most of the kids said they loved the movie) “…but this slide really encompasses the awesomeness of software development”

“First thing’s first.. I gotta know… ”

“Xbox or Playstation?” (the kids go wild… pretty vocal about this.. had to calm things down a couple times).. “I’m an XBox fan, myself, but it doesn’t matter, really.. they’re both computers.. just like tablets, laptops, phones… some of you might even have smart watches… those are computers too. And they all run software… app.. games.. created by software developers like me.”

“And speaking of phones… here’s another one…”

“Android or iOS?” (kids go wild again) “Like I said.. they’re both computers… Of course, for me, the real winner..”

“..is Windows Phone” (maybe a handful of cheers in each group).. “But let me ask you… Has anyone in here ever had a really cool idea for an app or game that didn’t exist.. or some way of making an app or game better?” (almost every kid raised their hands with anticipation)

“Did you know you can sometimes write a program to do your homework? Who here wants to make a program to do their homework?” (all hands raised)

“That’s what software developers do. They take those ideas and they make them happen. And I believe you already have what it takes to make the next greatest app or game”

“Like flappybird… Anyone every play this game?” (lots of hands) “Did you know that the guy.. the one guy who made this silly little game was making $50,000 per month at one point? Or…”

“…Temple Run… The first version of that game made over a million dollars! That’s a lot of money! I want a four wheeler and I could buy a lot of four wheelers with that kind of money!” (most of my stats, by the way, were found a couple nights before with somewhat basic Bing searches).. “And I know you’ve all heard of…”

“..Angry Birds… The people that created Angry Birds makes over a million dollars a month!” (in so far, I’ve neglected to document much of the personal commentary and acting out that went into this presentation.. You’ll have to trust that I’m fairly energetic and crazy, then imagine how it fits in) (also… you know.. if there are any copyright issues or false claims in my statements herein… well… they’re 7th graders)

“Now.. some of you might have some weird idea that software developers are just a bunch of nerds, right? And.. while I do consider myself a nerd, I’m pretty sure I don’t look anything like this..”

(laughter erupts)

“I mean, I’ve got glasses.. sure… But come y’all.. I don’t look like that. And none of you do either.. None of us look like this..”

(Kids haven’t stopped laughing in some time)

“Look at that guy! My goodness… where is he???? I hope you don’t think I look like that.. Or this..”

“That’s not what a software developer looks like.. Software developers are cool! In fact, this is what I think a software developer looks like..”

“That’s right.. Every day when I go to work, I feel like a super hero.. My boss comes to me and says, ‘Alex, I need you to build something awesome, and you’re the only one that can do it!’.. And then I do it! I save the day! I make people’s lives easier. I make people happier. I help people to have a better day. ”

“That’s just a picture of a dog in a super hero costume..” (some laughter)

“Here’s another software developer..”

“Anybody know who this is?” (Surprisingly, most kids answered correctly.. some even calling out ‘Billion Gates’)

“That’s right.. Billy Gates.. ol’ buddy ol’ pal….. As of a couple days ago, he was worth 75 B-B-B-B-B-Billliooonnnnn dollars.. That’s like making 300 dollars per second… He’s the second richest person on the planet..let that sink in for a moment. And he’s a software developer! Just like me.. I mean, I don’t even make a million dollars, but I know I can some day because I’m a software developer.. I take ideas and I make them happen. Bill Gates came up with Windows and made it happen.”

“By the way, did you know that software development is often cited as being the best job in the world?”

“Here’s another question..”

“Are computers smart or dumb?” (pretty much an even mix across the board.. some kids even said ‘both’)

“Why are computers smart?” (a couple answers)

“Why are computers dumb?” (a couple answers)

“Computers are actually dumb! They only do what you tell them to do. Without the operating system..the software that runs the computer… the computer is basically just a pile of plastic and metal.. Software developers have to tell the computer what to do..”

“And to demonstrate that, I’m going to perform a little experiment…” (putting the ingredients out onto the table now) “…Does anyone like peanut butter and jelly sandwiches? Me too… I eat them all the time.. I’m going to need someone to tell me all of the instructions for building a peanut butter and jelly sandwich.. kinda like how a programmer writes code for a program… then I’m going to be the computer and execute those instructions.”

Pick a kid.. Don’t pick the smart, nerdy looking kid.. this plan could backfire as it almost did for me.. Actually, I think I accidentally found a really great candidate for future software developer of the century during one presentation.. You want to pick a kid that’s going to give really simple, “obvious” instructions… re-iterate that I need all of the instructions.. then you’ll make the sandwich.. Ideally, you want instructions like:

Open the bag of bread Put one piece of bread to the side Put peanut butter on one piece of bread Put jelly on the other piece of bread Smash them together

“Okay, now that I have my instructions, I’m going to execute them just like a computer would.. Now remember.. I’m dumb.. ”

“First, I’m supposed to open the bag” (grab the bag with two hands, somewhere in the middle of the bag, and rip it open.. make sure bread flies everywhere.. the further the bread goes, the more the kids will laugh)

“Now I put one piece of bread to the side” (grab a piece of bread and throw it across the room)

“Now I put the peanut butter on one piece of bread.. Well.. they didn’t say which side of the spatula to use.. I’ll use this end.. ” (the wrong end) “..and they didn’t say how much peanut butter to use.. so this seems about right..” (giant.. and I mean GIANT glob of peanut butter.. repeat similar process for the jelly.. you want WAY too much pb and j happening here… )

“Smash them together, he said.. right? Really?… Ohhhh.. I really don’t think this is a good idea… ” (You better have put the gloves on before this… ) “They didn’t say if the peanut butter and jelly should go on the inside or outside.. so I’ll just do it this way.. ” (You know what to do here… MAKE. A. MESS.)

(and then eat a bite while they’re all laughing and disgusted)

“Let’s just say this program has a few bugs in it… But that’s how software works. You have to be very precise! Remember, computers are dumb and they only do what you tell them to do! If this were a real program, we’d make a few adjustments to the program and re-test… I think we all know things would turn out better next time.”

Part of this particular career day involved answering a predefined list of questions provided to each student.. Didn’t matter which student asked.. just that all of the questions were asked.. Easy stuff.. One question in particular, “What kind of education is required to be a software developer”, I made sure to answer with something like…

“Obviously, having an education is important… But I don’t want anyone here to think they have to have some big college degree to write computer software.. I don’t want anyone to feel like you have to be a nerd to write computer software.. You can make that idea in your head happen.. that app.. that game.. that program to do your homework.. you can start today!”

I spent the remainder of the 20 minutes fielding more questions.. pointing them towards www.codeacademy.com, www.touchdevelop.com, and www.projectspark.com. In several classes, I had enough time to open ProjectSpark and show them the basics… But I could never get too far into it before the bell rang for the next round of kids to come in.. In my situation, I had all of about 3 minutes to clean up my PBJ mess before new students came walking in..

In retrospect…

Let me tell ya.. that was more fun than any of the presentations I’ve given at our area INETA group (tied closely though with the time I dressed as Teletubby and did the worm during a presentation for no reason at all). Those kids were so engaging! A room full of 7th graders asks questions and laughs. When presenting to adults, you have to ask them questions, and you’re almost always guaranteed silence.

I got soooo many great questions… “How do you make a game?”.. “What programming languages do you use?”… “I know python! Have you ever heard of codeacademy.com?”… “How long does it take to make a game?”… “Do you have any apps in the app store?”

That last question was a big one. I could see the let down on the faces when I said “No”… If I’m going to do this again, I need to make sure I have an app in the Android, iOS, and Windows app stores… even if it’s just a matter of contributing to some really cool open source app or game… Somehow, I think that’s the measure for which kids validate your coolness as a software developer..

So yeah… I sincerely hope I’m able to do this again in the future. Let me know in the comments what you think of my presentation..

If you’re a software developer planning on doing a similar presentation…