No Computers

Wednesday 22 November 2017 at 08:00 GMT

On Saturday, I helped run the Cambridge instance of Coderetreat, 2017 edition as part of the Cambridge Software Crafters.

It was a really fun day, and I enjoyed it thoroughly. Today, though, I'm not going to talk about the whole day. (If you want to read about what it's like, I wrote a post about it five years ago.) This time, I want to concentrate on just the first session.

This one was new to me, but Amelie and Alastair been doing it in Cambridge for a long time. The task is the same as always: implement Conway's Game of Life. The constraint, however, made a lot of people uncomfortable.

Pen and paper. No computers.

This initially stumped a lot of people. It was really interesting to see people struggle with the idea of writing a test using paper, not a computer. After all, it's just a manual test at that point, right? It's not like you can automate it.

So how do you get around this? Well, you make your tests very easy to implement and run.

Conway's Game of Life tests on paper

Reproduced because I forgot to take photos.

Paper opens up avenues that are typically very difficult in code; in this case, it lets us draw inputs and outputs that we can parse really easily without having to engage the analytical portion of our brain. In my experience, allowing myself to use the intuitive part of my brain means I can do things like run a bunch of scenarios in parallel instead of having to evaluate each one separately. It also uses way less energy. (Way more on this topic in Thinking, Fast and Slow.)

By avoiding the computer, we can skip the translation step and go straight to the heart of the problem.

As developers, engineers, coders, programmers, or whatever you want to call yourself, we're often really bad at going to the whiteboard or the sticky notes and drawing things out. We don't just need this for high-level design, but low-level exploration too.

I'm gonna be doing a lot more of this.

Conway's Game of Life on paper

And eventually, they figured out how to have fun.

If you enjoyed this post, you can subscribe to this blog using Atom.

Maybe you have something to say. You can email me or toot at me. I love feedback. I also love gigantic compliments, so please send those too.

Please feel free to share this on any and all good social networks.

This article is licensed under the Creative Commons Attribution 4.0 International Public License (CC-BY-4.0).