---
title: KCD Learning Clubs
description: Join a KCD Learning Club and learn software together.
bannerCloudinaryId: kentcdodds.com/learning_v19ylq
bannerAlt:
  'A boy with an enthusiastic face working in a classroom with the words "I
  freaking love learning"'
---

A **KCD Learning Club** is a group of up to 10 people who are going through
[my coursework](/courses) (or anything else) together. Research suggests that we
learn better when we learn together, so that's the goal of a KCD Learning Club:
it's a place for a group of people who want to learn the same thing to do so
together.

## Why join a learning club?

1. You'll learn what you want to learn better than if you try on your own.
2. Develop friendships with other nice learners.
3. You'll get a special place to meet virtually (both async text and sync video)
   in a
   [Discord Group DM](https://support.discord.com/hc/en-us/articles/223657667-Group-Chat-and-Calls).
4. You can chat with members of the [Epic Web Community on Discord](/discord),
   some of whom may also be part of learning clubs similar to your own!
5. You have access to me (Kent) during twice-weekly
   [office hours](/office-hours) to ask questions.

## Joining or starting a learning club

If you'd like to start a club, then here's what you need to do:

1. Identify the curriculum you want to go through
   ([EpicWeb.dev](https://www.epicweb.dev),
   [TestingJavaScript.com](https://testingjavascript.com),
   [EpicReact.Dev](https://epicreact.dev), etc.)
2. Join the [Epic Web Community on Discord](/discord)
3. Check the
   [`#📝-open-clubs`](https://discord.com/channels/715220730605731931/1015456027807850537)
   channel to see whether there's a club accepting new members that:
   - is going through the material you want to learn
   - is meeting at a time that works for your schedule

If there is a club available, then join that one by filling out the registration
form for the club. Otherwise, you can make your own by following these steps:

<callout-info>
	NOTE: You might be able to use a schedule template from the [📍 KCD Learning
	Clubs Curriculum Ideas and
	Templates](https://github.com/kentcdodds/kcd-learning-clubs-ideas) repo.
</callout-info>

1. Create your registration form. You can find an example and template to copy
   in [this Google Drive Folder](https://kcd.im/kcd-learning-club-docs).
2. Post your registration form in
   [`#📝-open-clubs`](https://discord.com/channels/715220730605731931/1015456027807850537)
3. Wait for the friend invites to come in from people joining your club.
4. [Create a Group DM](https://support.discord.com/hc/en-us/articles/223657667-Group-Chat-and-Calls)
   with the people who filled out your form.
5. When your group is full or you're ready to start, let people know in your
   [`#📝-open-clubs`](https://discord.com/channels/715220730605731931/1015456027807850537)
   post.

## Learning Club Captain

The person who creates the group is the Learning Club Captain. They are
responsible for putting together a schedule for when and how the club will
interact and what activities they will participate in to learn together. They're
responsible for leading the club meetings and ensuring the club is accomplishing
its learning goals.

This role _can_ rotate among the members if that's what you all want to do.

## Learning Club Meetings

Here's an example meeting agenda:

1. Greetings
2. Review deliverables from the previous meeting
3. Discuss any relevant learnings since the last meeting
4. Participate in a "learning activity"
5. Discuss any learnings and ask/answer questions
6. Determine the deliverables for the next meeting

Someone should make notes of any group questions to take to the next KCD Office
Hours.

<callout-info class="aside">
	While meeting synchronously over video is preferred, it's not always possible
	for everyone to meet synchronously due to timezone differences. A club can
	agree to conduct all meetings asynchronously in the text chat if they must.
</callout-info>

### Learning Activities

The learning activity can happen as an activity you do together during the
meeting, or as something that everyone is expected to do before the meeting.

Examples of activities:

- Watch a video
- Read a blog post
- Build a demo

These should expose people to new ideas or think critically about concepts their
already familiar with.

### Learning Discussion

The core of the club meeting is discussion of the learning activity. This is the
opportunity for everyone to ask questions and provide answers about the new
ideas and concepts. It will allow people the opportunity to think critically
about their understanding of the material.

## Learning Club Schedule

The schedule is a simple list of the order of concepts you'll be learning. If
you're planning to go through [one of my courses](/courses), then it can simply
be a list of the videos with a date associated. It could also be a series of
blog posts you want to read and discuss together. In that case it would be a
list of the posts you want to discuss.

The schedule doesn't have to be set in stone (it can be flexible and change over
time based on the needs of the club). It's important that it's scheduled ahead
of time so people signing up know when the meetings will be.

### Example Schedules

#### Meeting

For meetings, please specify the time (with the timezone 🕰) for the meeting as
well as the topic:

```
Weekly on Mondays at 3:30 PM MST:

1. Sept. 14th: Fundamentals of Testing in JavaScript
2. Sept. 21st: JavaScript Mocking Fundamentals
3. Sept. 28th: Configure Jest for Testing JavaScript Applications
4. Oct. 5th: Test React Components with Jest and React Testing Library
5. Oct. 12th: Install, Configure, and Script Cypress for JavaScript Web Applications
6. Oct. 19th: Use DOM Testing Library to test any JS framework
7. Oct. 26th: Test Node.js Backends
```

These can also be more flexible. You don't have to do weekly meetings:

```
Mondays and Thursdays at 3:30 PM MST:

1. Sept. 14th: Fundamentals of Testing in JavaScript
2. Sept. 17th: JavaScript Mocking Fundamentals
3. Sept. 21st: Configure Jest for Testing JavaScript Applications
4. Sept. 24th: Test React Components with Jest and React Testing Library
5. Sept. 28th: Install, Configure, and Script Cypress for JavaScript Web Applications
6. Oct. 1st: Use DOM Testing Library to test any JS framework
7. Oct. 5th: Test Node.js Backends
```

Or it could be totally random. It's entirely up to you as the club captain.

#### Async Learning

If you'd rather just keep the discussion asynchronous (via the text chat in your
group DM), then that's awesome too, the schedule could be something more like
this:

```
1. Sept. 14th: Finish "Fundamentals of Testing in JavaScript"
2. Sept. 17th: Finish "JavaScript Mocking Fundamentals"
3. Sept. 21st: Finish "Configure Jest for Testing JavaScript Applications"
4. Sept. 24th: Finish "Test React Components with Jest and React Testing Library"
5. Sept. 28th: Finish "Install, Configure, and Script Cypress for JavaScript Web Applications"
6. Oct. 1st: Finish "Use DOM Testing Library to test any JS framework"
7. Oct. 5th: Finish "Test Node.js Backends"
```

In this case the schedule is to help keep everyone accountable and on the same
page, but you don't need to specify an actual time or timezone because there's
no actual meeting time. Everyone just knows they need to have that part of the
curriculum done by that day so they can participate in the same async discussion
about the same material with everyone else.
