Often, I wonder about the distribution of the events in my childhood that made me the person I am today – which things played a larger part in shaping who I am? The one thing I always come back to is Lego. I am so glad I played with Lego when I was younger.

There are so many reasons why I think Lego is great, but I think the main one is that Lego is so open-ended. A single Lego base-plate can be entire worlds – one day a town, the next a space station. Then there’s the pieces. With bricks alone, there are millions of things that can be made. Once you start to take into account “special pieces” (they were those cool ones your friend had and you always wanted – stuff like little levers and satellite dishes), the possibilities are endless. With Lego, you can make anything you want – the world is your slightly-pixelated-looking oyster.
Hmmm…open-ended design? The ability to make anything you want? That sounds familiar. Wait… that sounds like someone describing software engineering! I honestly believe that my playing with Lego as a child was the genesis for my interest in software design. The similarities are all there – in Lego, you have small bricks and pieces with which you build things. In software, you use a language to create functions and objects. In Lego, pieces only fit together in certain ways, or else they won’t stay together. In software, if you make an error (syntax or otherwise), the program won’t compile. In Lego, you start out by doing what the manual says and building things you know will work – later, you move onto building your own creations, now that you know how different pieces fit together. In software, you start out by reading a manual and learning the language through copying things from the book – then, you begin to write your own programs.
I was so overjoyed to read that someone else had recognised the parallels between the two. Quoth Abe from Douglas Coupland’s Microserfs (one of my favourite books of all time),
Lego is a potent three-dimensional modeling tool and a language in itself. And prolonged exposure to any language, either visual or verbal, undoubtedly alters the way a child perceives the universe.
Today, I eerily came full-circle. I went and unearthed my Lego for the first time in years, and began construction. On what, you ask?

What else…
It’s fitting that while my Lego experience put me down the path of sofware design, it was my software design skills that I applied today when building my little computer out of Lego.
I could extoll the virtues of Lego for hours, but I’ll simply give you a great resource that you can peruse at your leisure: Brickipedia. It’s exactly what it sounds like – have fun looking up your favourite sets from childhood. Also, I’ll tell you one difference between Lego and software engineering – software engineering doesn’t hurt like hell when you step on it!
One Comment
As usual, really good.