Tag Archives: LEGO

Building a LEGO model is like learning programming

Last night, I finally started putting together my LEGO birds set. I mentioned this in a Recurse Center post recently, and now I have put together the robin (a proper one, as one finds in Europe, not the North American one, which Nathan taught me was so named because of its superficially similar appearance, and it turns out the similarities end there). Two more birds to go.

Also, it’s awesome. Check it out! You can also enjoyed horse-tailed desert-ponytail mustachioed person, who is hanging out on the robin’s tail! (What’s the fun of awesome minifigures if you don’t mix them up in ways not originally intended?)

And then I opened my mouth and said this:

And it turned out that people were curious about this thing I find fascinating.

So.

As I was putting together this first model last night, the first of my adult life, but also the first LEGO kit I have ever built in my whole life (although we had a big bucket of LEGO as kids; my brother and I fought over them regularly), the following kinds of thoughts kept occurring to me:

  • I should be learning more about how these pieces fit together. There are techniques I could use later.
  • Something isn’t quite right. Oh crap; did I just forget a piece? I did. Time to take another look and check my work.
  • I’m just copying what someone else has already made, but it feels like I am building something myself?
  • I can’t possibly learn all of these methods tonight. I don’t even remember what I did two pages ago.
  • I am definitely missing a necessary piece. I’m completely blocked. Oh no, wait, it’s right there.
  • I don’t know how to make a bird. I only know how to snap two pieces together at once.
  • Holy crap; I built a bird?

All of the italicized ones above are thoughts I have had while learning to program, too (especially at the Recurse Center, where it is cool to understand why and how things work, not just that they work). Some of them are a little more metaphorical when we bring them back to programming (I have yet to build a literal bird in code), but they’re still true, and this occurred to me by the time I was building the bird’s invisible innards.

What’s interesting is I felt very sure about the fact that I was building something myself, and that when it was done, I would feel confident saying, “hey, yeah, I made this thing!”

I often don’t have this feeling with programming (at least, not yet). When I build something, it’s because I’ve taken someone else’s instructions and made more or less the same thing (lately).

I’ve done a bunch of awesome tutorials lately (I built a Pebble Time watchface that tells the weather! I set up a Twilio number that I can text! I set up a Heroku app, and now the Twilio number talks to it!). But I still have this nagging suspicion that I’m cheating somehow, because I didn’t greenfield them.

The analogy is easy, though: this is essentially the same experience with a LEGO kit.

I’ve been ruminating on why it’s so hard to take the LEGO lessons and let myself feel more accomplished with what I’ve built in Python (and C/JavaScript) so far. Perhaps because it’s not a physical thing, because it feels like something that I could have sloppily copied without any input of my own, it’s hard to take ownership.

But LEGO? I touched every one of those pieces, and I made them work together, and it did not end in a maelstrom of suffering.

And I know that I made something.

Now to figure out how to replicate that feeling with computers.