What Does It Take To Create Real Programmers?

With CS Education Week 2014 in full swing, everyone from Barack Obama on down is talking about the need to create more programmers.  But is teaching kids how to move a bird using loops and conditionals really enough? My son did five such tutorials before he turned six years old, but still doesn’t have the confidence or skills to create his own programs.
For that matter, does the traditional Computer Science curriculum do any better? Why are so many graduates trapped in dead-end jobs doing testing, documentation, and IT support instead of filling our nation’s crying need for more programmers?
At The Swan Factory, we are committed to creating a “full stack” experience of programming.  Our measure of success is not getting kids to solve a puzzle, but to actually learn enough about programming, tools, and culture that they can submit a pull request to the Hour of Node project on GitHub:
The Hour of Node app is built like an onion (hat tip to Larry Wall).  Eventually, we want high school programming classes to be able to walk through:
  • Playing the game via the GUI (now)
  • Editing and sharing game levels via the GUI (v1.0)
  • Creating and sharing complete games via the GUI (v2.0, 2015)
After they master the semantics, we will teach them the mechanics of Open Source participation
  • Cloning the project on GitHub
  • Creating complete games as CoffeeScript dictionaries
  • Pushing their changes into the repository
Then — and only then, after they’ve learned event-driven semantics, self-expression, and community participation — we can start teaching them syntax and tedium:
  • Editing full-blown CoffeScript programs
  • Hacking the SwanKit runtime
  • Filing and fixing bugs
To get them there, we have adopted a Fully Open approach.  All my daytime coding (and most planning) sessions are live on the Internet.  Instead of a polished Disney-esque experience — which most kids could never imagine creating — they get to see the messiness of real software development, and be inspired to do the same themselves.
It is an audacious vision, and we are at the very early stages of turning it into reality.  But we hope our small contribution will help reframe the terms of the debate, and inspire others to join us in tackling the hard problem of making programming more accessible to everyone.

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: