RC Week 11: Learning is best when multiplayer

Saturday, December 3, 2022

As I come up on the end of my batch at Recurse Center, I've been doing some reflecting on my time here. One of the standout themes is how much I've learned through struggling with other people. In particular, this learning together has make some difficult topics approachable, where I may have given up or gotten stuck on my own.

This week, we were working through a couple of chapters of Logical Foundations, a book which teaches Coq and its related concepts. The earlier chapters were for the most part smooth. I could probably have gotten through them on my own1. But chapter 5 (and to some extent, 4) was where we hit an absolute wall.

Some of the proofs in chapter 5 were just absolute beasts to get through until we figured out the particular techniques we needed. In particular, we had to remember to always include eqn:E (or similar) for every destruct tactic; it doesn't hurt (just adds more into the context, which can be overwhelming), but if you don't do this you sometimes get into a situation where you lack what you need in the context, so the goal is not provable! Getting to this technique required a lot of back and forth between a couple of us.

I think there are a few things going on which make learning so much more effective with a peer group:

  • You have someone else to explain things to. Just by trying to explain something, your own understanding will get better2. I first realized the power of this when I was a math tutor and found myself getting better at math by explaining material to other people. It shored up my knowledge of the foundational material, and also gave me insights into multiple ways to explain things, which aids understanding.

  • Talking through problems helps you get unstuck. Sometimes, your learning partners will see the problem and be able to nudge you in the right direction! Even if your partner doesn't have a solution, though, you can get unstuck just from talking. This is like rubber-duck debugging, where by saying something out loud you often get insights into the solution.

  • You see other approaches. There is rarely only one right way to do things. By working through problems with other people, you get to see multiple approaches and get a richer understanding of the problem and solutions.

  • You have accountability. This one is big for me. If you know that on Thursday, you and your "axiom amigos" are going to meet to discuss the chapter, it lights a fire to actually get through the reading and the problems. When doing things on your own, it's a bit harder to keep momentum.

This doesn't work for everything. Sometimes I'm going to have to just chug through material on my own. But I can get a lot of these benefits without having a formal group that's going through the same material:

  • I can write on my blog to explain things to other people
  • I can talk through problems with other Recursers and friends when I get stuck
  • I can read other people's blog posts or texts to see other approaches

Accountability is the big one that's lacking when learning entirely on my own. One way I try to keep that is with a schedule for when I put up new blog posts. This motivates me to learn something, so I always keep forward momentum in some direction.

I think this multiplayer learning is one of the best parts of Recurse Center, and one of the hardest things to get outside of it. But I can run book clubs at work, join some groups of future RC batches, and keep learning with friends (at a lower intensity) post-batch.


Even if possible, it would have been less fun and less effective. Reviewing the chapters with others has always helped me enhance my understanding (by explaining) and learn new things that I was missing (from other people pointing out things).


This is a large part of why I write on this blog, too. Writing is thinking (for me, at least), and is a vital part of how I learn and understand.

If this post was enjoyable or useful for you, please share it! If you have comments, questions, or feedback, you can email my personal email. To get new posts and support my work, subscribe to the newsletter. There is also an RSS feed.

Want to become a better programmer? Join the Recurse Center!
Want to hire great programmers? Hire via Recurse Center!