How Legos Taught Me Web Development
I spent the first five years of my life traveling the world with my family. Flying from place to place, the only toy I had was a big box of Legos. I absolutely loved them because they allowed me to build, destroy, and rebuild – each time making a more impressive structure. The following shows how the skills I learned as a kid influence my approach to web design and development.
1. If you can dream it, you can build it
Picture this – you’re five years old and you’ve just been given a huge bucket of Legos. At first, you just sit there staring with a confused look on your face. There are so many pieces with no rhyme or reason. But then something magical happens. You grab two pieces and realize they can stack. You proceed to add another piece. And another.
I like to think of the internet as a big bucket of Legos. There are billions of tiny disconnected pieces that don’t make much sense independently, but if you’re able to make the connections, things get a lot more interesting. Great developers have the ability to look at all the separate pieces and envision a way that they can work together.
2. Build for the purpose of building
I like to build things. Sometimes for clients, sometimes for others, but I’m also my own client. Working for yourself is the most rewarding experience. You can take your time or stay up all night; use a completely crazy color palette or go super-simple; completely ignore IE6 or support every browser known to man. When there are no rules or expectations, you get the rare opportunity to experiment without worrying about timing or perfection. That’s a recipe for innovation. Why wait for an assignment when you can create you own? If you follow the instructions word-for-word your Lego creation will only match the picture on the box. Anyone can do that.
3. Constraint is good
When I was around 10 years old, I went to a Lego competition where contestants were given a small bag of assorted pieces and were told to build something. I was expecting a huge bucket of bricks and only got a few odds and ends. That day I learned how to work with what I’m given and still create something great. Screen size, loading time, browser support, and mobile devices are just a sampling of constraints that determine how to best approach a dev project.
4. Complicated means many simple tasks
If you’ve ever built something with Legos you’ll know that the instructions included in kits are generally easy to follow. They break down highly complex projects into a series of simple graphic steps. They literally show you what to do instead of tell you. Legos taught me that anything is possible if you take a step-by-step approach to problems. Having trouble learning CSS? Google a new technique each day for a year and you’ll be a master.
5. Have a vision, not a plan
As a kid, I never began a Lego project with an exact end product in mind. I always had a general idea, but I stayed open to discovery along the way. If I wanted to build an airplane, I would find a photo for reference, but I wouldn’t sketch it out and estimate the number of bricks. There’s a distinct difference between a vision and a plan. A vision helps guide a project. A plan just guarantees you’ll get frustrated when you can’t find the perfect brick. I’ve never had a web project go exactly as planned. They always evolve – almost always for the better.
6. Buy the Star Wars kit because it has cool parts
I’ve never been a big fan of Star Wars or sci-fi in general. So naturally, when I got a Starfighter Lego kit as a birthday present, I was thankful but I also kinda wished it was a train set. I never actually built the Starfighter, but I did harvest it for parts. Turns out, it had really unique parts that I later used to build the train of my dreams.
Web developers need to be resourceful and approach everything asking the question “what does this do well.” It’s rarely a good idea to reinvent the wheel, so I often scour the web for open-source code that can be repurposed. Rarely do I find exactly what I’m looking for. I often assemble many small chunks of code to get things up and running.
7. Choose your bricks wisely
There are only so many bricks in the bucket, so you have to choose the right brick for the job. Sure, the web has infinite possibilities, but that doesn’t mean you should go crazy. Legos come in many shapes and sizes for a reason, just as some web technologies are better suited for certain tasks. If you’ve ever visited a website where all of the text is embedded in one huge JPEG, you’ll know what I mean. There is never one answer to an internet problem. Today its Flash versus Javascript; WordPress versus Drupal. Tomorrow it will be something different – the key is picking the best technology for the job.
8. When you build something great, tear it down and build something better
A box full of bricks is a lot more fun than a shelf full of completed Lego sets. Every time I built a Lego set, I’d play with it twice and that was it. At that point you (a) let the Lego set collect dust forever or (b) tear apart your work and start over. I advocate the latter.
The web is a living, breathing, fast-moving creature. Those who develop and design for the web need to be constantly evolving. When you do you best work, take what you learn and build something even better.