It’s me, the author of the 20 post series on leveling up. That series focused on leveling up as an individual.
I also love to level up with others. I develop a broader set of skills much faster by talking to folks with greater (or complementary) skill to mine.

So I have run several learning circles: groups of folks in my field that meet regularly to learn. This post shares what I have learned about organizing a successful learning circle.
WARNING: I have a specific goal that dictates learning circle “success”. What follows might not apply to your situation depending on what success looks like to you. That brings me to the first thing I’ve learned:
1. Be ultra clear about the goal—and the anti-goals.
In a learning circle, I want to learn. I want to come out with a broader and deeper set of skills than I had going in. I want to think about old problems in a new way; I want new tools and patterns for addressing technical limitations. I want other people to challenge me and help me get better.
By choosing that goal, I relegate everything else to an anti-goal: something that the goal could be, but isn’t. I’m optimizing for learning. I am not optimizing for:
- comfort (in fact, learning is often uncomfortable).
- networking (though that might be a side effect, this is not the time and place for talking about working together on something else).
- validation (in fact, in the course of learning, I often discover that I am wrong).
- commiseration (while cathartic and often true, commiseration constitutes a form of complaining not conducive to learning in my experience).
I will do anything—ask questions that make me look ridiculous, admit my insecurities, wade through code for three hours—to learn something. I don’t mind the discomfort because I know what I want.
I do not want to sit there and talk about not-code. There is absolutely a place for that, but not this place. I do not want to sit there and complain about our jobs or the industry. Again, valid thing to do. Not what I’m here for. If I’m telling someone that I do not have a sufficient grasp on topic X, I do not want the person to reflexively tell me it’s imposter syndrome and I’m amazing. That doesn’t help me learn.
If I’m in a group with people who don’t share my goal, neither of us leave happy.
I have learned that, if I’m not ultra clear on the goal, most people will not have the same goal as me, and that’s not their fault because I was not clear.
All the other things I know about learning circles, I filter through my goal of learning.
2. Keep it small.
I like to go with 5-6 people. Larger than that, and I find that the conversation degenerates into multiple smaller conversations. Smaller than that, and having more than one person miss a session makes the session feel below quorum, which kills the urgency.
3. Hand-select people.
I find that, no matter how clearly I try to describe the learning circle, I have trouble bringing in people to whom I have no connection and maintaining a focus on the goal. I think this might be because some of the things you have to do to focus on learning (like expose your own weaknesses) require trust. Without trust, people don’t know that you’ll treat their weaknesses with care. So they deflect, which stalls the learning.
I have also found that the number of people who will actually sit down and prepare in advance of a learning circle is a fraction of the number of people who theoretically like the idea of being in a learning circle. I need the former in my learning circle.
4. Choose a specific topic.
I find the urgency easier to generate when we have a specific skill in mind.
Topics that have worked for me:
- mobile deployment strategies: mobile app deployment is a pain in the neck. So a bunch of mobile devs got together and talked about everything we used, learned, and studied to try to reduce the pain. It rocked.
- testing strategies: we covered when to use a unit test, when to use a system test, and how to make decisions that affect our ability to test API vs. implementation.
- functional and object-oriented paradigms: but in a nuanced, when-to-use-which type of way, not a which-one-is-objectively-universally-better way. There were whiteboard charts and excited yelling. We learned a ton.
I would love to try a learning circle on debugging techniques: cause isolation, logging vs. printing vs. exception messages, edge free programming, etc.
I have also seen a couple of other recipes work, with some caveats:
-
- Have each person bring something they’re struggling with at work to one session, and everyone will talk about it. Doctors sometimes have similar circles for medical mistakes. This is an effective group learning tactics if, and only if, folks will deliberately show other people what they suck at. That’s rare; out of several attempts, I have had this recipe work just one time.
- The group operates like a book club, choosing a book and reading an agreed upon set of chapters in advance of each meeting. I have had great fun in a learning circle that covered Practical Object-Oriented Design in Ruby by Sandi Metz. I want to do one on Beautiful Code.
- Everyone picks a video of a talk they like, or learned from, or disagree with. Each session focuses on one of the chosen talks.
5. Give the learning circle a limited run.
The knowledge that something will end gives people a sense of urgency.
I like to do a run of 6 events. As folks are choosing whether or not to join the circle, I tell them that if they have to miss one it’s probably still worth it to join, but if they have to miss more than one it’s probably not. Folks don’t take this news so hard because they figure there will be another circle in 6 weeks, which is not so far away.
6. Don’t have everyone present something at each meeting.
If enough of the discussions run long, then we’re there for 6 hours. I love people, but my brain does not have 6 hours of engagement at the end of any of the days of my life. Instead, I choose 2 or 3 chapters/videos/problems to discuss.
7. Choose a location that is conducive to learning.
I prefer to hold the circle at someone’s home or office rather than a cafe or restaurant. I don’t want to deal with the noise, the distractions, limited room on the table, limited outlets, nowhere to project/present, dealing with the check, pausing to eat, or pausing the discussion each time the server needs to check on us. This is a private event, and it should be held in a private location conducive to learning.
7. Definitely include food, but not alcohol.
Food, in my humble view, makes it easier to think. I have seen cheese trays, charcuterie trays, and fruit trays work perfectly for this.
No alcohol. This is a professional skill share; we don’t need alcohol to do that. Not having it will signal that your event is safe to folks from marginalized groups, especially ones who do not know you.
Anecdotally: I do not go to public professional events where alcohol is served. I used to, but I had a lot of run-ins with casual misogyny (or just plain nastiness) as folks discussed people who weren’t present who they either lusted after or hated. That does nothing for me learning-wise (and also is gross), so I stopped putting myself in those situations.
8. Include mixed company.
Make a diverse group of people feel invited, wanted, and welcome in the learning circle. You’re not just doing this to be nice, look “woke,” or keep up appearances. Rather, the learning part is vastly more effective, for you, with this configuration versus a homogeneous one.
Let me give you some examples of why.
Example 1: Limitations of Suboptimal Defaults by Analogy
I’m a gay woman, but I get read as straight a lot. This happens because straight people associate adherence to gender presentation expectations with straightness until otherwise corrected (which is, by the way, why we are forced to “shove it in people’s faces,” which we then get chastised for. But that’s a rant for another post).
Do you have any idea how much heteronormativity pervades a group of people that presumes everyone is straight? You’d think it wouldn’t matter in a learning circle about code. But when you’re talking about code, you’re talking about communication. About responsibilities. About boundaries.
So people make analogies that have to do with relationships, which also have communication, responsibilities, and boundaries. Here’s the thing: a lot of our relationship “rules” are actually bad proxies for communication, made with straight relationships in mind. And they’re kind of bad.
It’s hard to speak up in these circumstances if you’re the only queer person there, but frankly a reality check about the diversity of ways relationships can work would make a lot of relationships—and software—better.
Example 2: Limitations of the Dominant Ideology
If you’re in a learning circle that’s all white people, you’re at risk to default to white sensibilities without realizing it. It is super common for white culture to masquerade as “professional culture” or “tech culture.” Here’s an example wherein it’s not considered professional to be angry or sad at work. It comes straight from a white supremacist understanding of “acceptable” behavior. Over time, it forces people to cope by learning not to care about their work. It’s directly antithetical to producing great work, and we should turn to black and indigenous communities to learn better ways to work together.
You don’t want your learning circle to close you off to opportunities to improve your leadership style and the way you work with others.
It’s time to ask: “What does our all-white learning circle say about the lopsided nature of our networks? What can we do about that? When we reach out to folks to join our group, can we make the changes they’ll ask us to make to demonstrate that it would be a safe and productive experience for them?”
Example 3: Limitations of Homogeneity in Marginalized Perspectives
I’m going to get yelled at for saying this, but this is my experience. In most of the all women learning circles I have attended, we spent a lot of our time talking about misogyny at work and its effects on us as individuals. I understand why; it impacts us deeply, personally, and daily, and there are crucial conversations to be had on this topic. But I also understand that a critical function of misogyny is to distract women from our work. Toni Morrison explains this effect with respect to racism.
I desperately want the opportunity to temporarily escape those concerns and busy myself with improving at my craft. That is not a universal want—women are not a monolith—but I am allowed to want that. This demonstrates the fundamental importance of deciding, agreeing on, and communicating about the goals and the anti-goals of a learning circle.
Conclusion
My primary motivation at a learning circle is to learn, and I have identified a number of ways to maximize the probability that that happens.
These may or may not apply to your situation. So my number one piece of advice is this: determine what your goal is. Then spend some time thinking about what that means for what your goal is not. And be prepared to allow those anti-goals to fall by the wayside—or even eschew them. You’re not saying they’re not important. You’re saying that you’d like to see them addressed in spaces and times other than this one. You’re creating focus, so you can learn.
If you liked this piece, you might also like:
The remote work series (warning: if this post was too salty for you, don’t read that)
The listening series (another thing not to read without a cup of…tea)
The RAFT distributed consensus algorithm Series (completely unrelated, but this is my blog and I get to plug my esoteric programming endeavors if I want to)
And if you found this piece helpful…
You can help me keep writing by tossing a coin at this Patreon 🙂