Agile Zone is brought to you in partnership with:

Trisha Gee has been a Java developer for over 12 years, and due to a low boredom threshold has worked in loads of different industries for many types of companies. Trisha is a developer at 10gen (the MongoDB people). She has expertise in high performance Java systems and is leader in the London Java Community. She is also involved in the Graduate Development Community. Trisha believes we shouldn't all have to make the same mistakes again and again. Trisha is a DZone MVB and is not an employee of DZone and has posted 60 posts at DZone. You can read more from them at their website. View Full User Profile

Kids These Days

09.26.2013
| 2922 views |
  • submit to reddit
I'm a great believer in getting kids to code early -- after all, I'm of that generation that was taught

10 PRINT "HELLO"
20 GOTO 10
at the age of 9.  There are quite a few approaches to teaching today's kids in an engaging way, but I'm a bit wary of the sandbox solutions that teach kids things like how to navigate a virtual thingy around the screen, or lets them create things in a limited virtual world.  I don't think kids will easily make the leap between these sort of games to seeing the full potential of programming - they're too limited and have no context for the kids.  It's just another game.

Kids need to understand how programming fits into their world, they need to understand the context of coding if they're going to fall in love with it.

I like Jason Gorman's comparison of programming to music.  Most people learn an instrument because they want to make the sort of music they hear on the radio.  But you give them a recorder and teach them to play "snug as a bug in a rug" and they go off the idea entirely.
"So, is this a sexy tune, Mrs. Badcrumble? I just don’t think, Mrs. Badcrumble, that this is really gonna be a sexy tune.".
 - Eddie Izzard - Definite Article

Similarly, you give kids a sandbox environment specifically to learn programming for the sake of programming, and they're not going to see how this turns into Facebook or Google or the apps on their phones.  They're going to continue seeing computer programs as something that magicians in a land far, far away made just for them.  The same way breakfast cereal is grown in a box only for them.  They don't see programming as something they can do, they don't see the computer as something they can influence.

Just the slightest hint, the slightest push, to show them that they can be the magician, that they can have power over this world. That's the way in.

Many of my generation of programmers learned by coding those godawful choose-your-own adventure games.  They weren't pretty or elegant, but in a single lesson we learned that a short magic incantation could create something that looked like those games we played.  With a bit of persistence we could truly create our own adventure, with a story that we created, not just follow someone else's paths.  And then we could inflict that on our little sisters.  It was such a short distance from the BBC command line to a game that many of us saw what programming could create, and that programming was something we could do.

There's an argument these days that computers got so complicated, so elegant, so perfected, that "kids these days" don't have that.

This is not true.

It's just not.  Don't be fooled by this.  Sure, PCs in the 1990s made it more tricky to simply program the thing.  And IDEs felt, to those of us who learned from a blinking prompt, like cheating somehow.  Or, at the very least, they divorced us from the internals of the machine, provided us with too much separation (what nonsense, by the way -- an IDE must be much closer to the command line than BASIC is from ones and zeros).

But those days are waaay behind us.  Several more levels of indirection later, and actually it's much easier to write something that gives the immediate feedback, something that has real context, that will help kids get it.  This will help kids see why.  They're the same as us, they can't just be expected to do it because, they want to know what's the point.

And these days it's easier. You've got:

To name but a few.  That's not even including the fact that you can get coding web pages and Python code pretty quickly and see instant feedback, or even use an IDE to create a UI in something like C#.


The first three items in the list are great for people who are very touchy-feely, who want to see something in the real world.  Can you imagine how exciting it would be for your kid to see that they wrote a program that closes the curtains?  It's a tiny, stupid thing, but you just gave them control of the physical world they live in.  Let their imagination do the rest.

The other ideas are probably more directly related to the stuff they use the computer for.  You're really providing them with a way to customize the tools they already use.  Who doesn't want to imprint a bit of themselves on the virtual world?  These sorts of things let them control a world they understand -- in the context of a tool they know (e.g. Facebook), they create a game or a plugin or whatever that works within that world.  And they start to see that this tool they use to talk to their friends, this tool that is there to fill their spare time, is something they can control.  Maybe they'll start small, but they'll soon learn that everything they use, everything they touch on the computer, is really only code that some other human has built.  They'll start to see that the computer-machine is influenceable, that they can tell it to do stuff and it will do it.

That is addictive.

That's what we want.  We want to open their minds to how their world is constructed, and show them that they can influence it. They can control it. 


They can change the world.


Published at DZone with permission of Trisha Gee, author and DZone MVB. (source)

(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)

Comments

Lund Wolfe replied on Sun, 2013/09/29 - 4:01pm

Some kids are probably going to be attracted to programming for the same reason they're attracted to math or puzzles or creative games.  The abstract mental challenge and solution is as satisfying as the power over the physical world.

The potential programmers will probably find meaning and reward in seeing their program solve 2 + 2.

In the real world, we all program at a fairly high level, using a fairly high level API to do real work, like using the API of a device or app to program the device or app.  I don't think we'll have the right foundation, perspective, judgement if we start at that level, but it might be useful to capture their interest in the first place.  Kids may still say programming is hard and boring, but they can't say it's useless.

Daniel P. Warren replied on Sat, 2013/12/07 - 8:24am

Great statement and I believe a truism. Learning must be interactive or it simply does not stick. Nor does non interactive knowledge acquisition teach cognitive skills, too many educators rely on rote or mnemonics to force the young to acquire the basic skills they need to survive in the modern world. I taught both my children to read and write using a phonics program I purchased from http://easylearnreading.com best investment I ever made on their behalf, it not only taught them to read, but it expanded their cognitive abilities well beyond that of their peers.


Regards

Daniel Warren

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.