Play is a validated activity for learning

Play is a validated activity through which learning occurs. I’ve noticed in my own journey that I’ve learnt things I couldn’t have learnt in any other way than by simply having the curiosity and drive to try and “figure things out”.

Life isn’t about being efficient

At a braai, Paul - a former developer friend of mine who is now a sound engineer - once asked me something along the lines of: “You’re a developer… when you’re cooking, do you also obsess about how efficiently you can execute the recipe?”. To be honest, I wasn’t really listening;I was thinking about how efficiently I could be using my time instead of standing here at a braai, talking rubbish. However, on reflection, I realized he was spot on. You see, I absolutely love cooking food for people to enjoy. I find it super relaxing and quite a nerdy, creative experience but I never realised that all too often, that time I spend cooking for the people I love, is spent trying to make the entire experience go by as quickly and efficiently as possible.

I explained to Paul that I cook exactly in the manner he had suggested but I tried to make it sound like it was a game; which it sometimes is. But mostly not. I realized from that experience that life isn’t about being productive in every waking moment. In my quest for efficient living, I had stopped enjoying life. Hmmm.

Play is a validated activity for learning

That interaction with Paul has really stuck with me but it wasn’t until I watched an absolutely brilliant talk by Godfrey Chan on Harnessing the raw power of your machine with JavaScript in Ruby, that I realized that one can learn something new even if one’s intention is not specifically to learn. Furthermore, during play, one learns things one would never have learnt in any other way. His talk was - of course - satirical but in it he explained how to use some special features of Ruby that allow one to fake a JavaScript-like syntax, in Ruby code, that actually runs. It’s quite hilarious.

require "javascript"
puts "This is totally Ruby"

javascript {
  console.log("ZOMG JavaScript");
  var a = 1;

  var b = function(x) {
    console.log(x + 1);

  function inspectArguments() {
    var args =, ", ");
    console.log("Arguments: " + args);
  inspectArguments("a", "b", "c");
  inspectArguments(1, 2, 3, 4, 5);

puts "This is Ruby again"

For some reason when we grow up, we are told that play is not useful but the truth is precisely the opposite. Play is a validated activity through which learning occurs, even in adults [1,2,3]. Although, my O.T. wife tells me, adults don’t ‘play’, they have ‘leisure time’.

Curiosity is at play here (see what I did there) and is a huge contributing factor to my desire to figure out how and why something works. It’s through curiosity that I have developed many an idea halfway to completion. At this halfway point, however, I usually start feeling guilty, but I don’t need to feel bad about this “playing”, do I? In these instances, I’m playing around and, as a result, not developing robust production code. There’s absolutely no reason this should not be OKAY. In fact, fruitful ideas are often generated in these moments of freedom.

Your side project is not a solopreneur product

I’ve started many side projects with the intention to launch a product to market and become a coveted solopreneur. In hindsight those projects were born out of fun, or as my wife, Jen, refers to it, “leisure programming”. She often asks me if I’m “work programming” or “leisure programming” - a subtle distinction between working on work, and working on fun. I really enjoy programming but, more so, I love learning something new and discovering what is possible with code. SPOILER ALERT: you can do literally anything with code.

The point is that play in and of itself is a real learning activity, validated by science, and developers do it often. One can learn and have fun at the same time - evidence shows this is not only possible, but is a cornerstone to how children learn. Why is it not the same for adults?

A friend of mine, John Benn, is so passionate about this that he got on a flight to Germany to certify himself in the Lego SeriousPlay Methodology. Lego believes this skill of play is transferable and valuable to adults.

Have fun with your craft

The truth is there are some things you will never learn if you don’t play. Constructive play is learning. Don’t be afraid to program without purpose. Life isn’t only about being efficient.


  1. Stuart Brown on TED
  2. Jill Vialet on TEDMED
  3. Lego SeriousPlay

Questions? I’d be humbled and happy to help.