This site runs best with JavaScript enabled.

KCD Learning Clubs

I freaking love learning

A KCD Learning Club is a group of up to 10 people who are going through my coursework (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.
  4. You can chat with members of the KCD Community on 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 to ask questions.

Joining or starting a learning club

If you'd like to start a club, then follow along with this video 📺

Here's the gist:

  1. Identify the curriculum you want to go through (, EpicReact.Dev, etc.)
  2. Join the KCD Community on Discord
  3. Check the #📝-open-clubs 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:

NOTE: You might be able to use a schedule template from the 📍 KCD Learning Clubs Curriculum Ideas and Templates repo.

  1. Create your registration form. You can find an example and template to copy in this Google Drive Folder.
  2. In the KCD Community on Discord, go to the #🤖-talk-to-bots channel and say "?clubs create LINK_TO_GOOGLE_FORM". The bot will verify your form has all the right information in it. Please fix anything that's missing or misplaced.
  3. The bot will add your club to the #📝-open-clubs channel.
  4. Wait for the friend invites to come in from people joining your club.
  5. Create a Group DM with the people who filled out your form.
  6. When your group is full or you're ready to start, react to the #📝-open-clubs message with a 🏁 and the bot will delete it (so you don't get additional registrations).

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.

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.

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, 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


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

1Weekly on Mondays at 3:30 PM MST:
31. Sept. 14th: Fundamentals of Testing in JavaScript
42. Sept. 21st: JavaScript Mocking Fundamentals
53. Sept. 28th: Configure Jest for Testing JavaScript Applications
64. Oct. 5th: Test React Components with Jest and React Testing Library
75. Oct. 12th: Install, Configure, and Script Cypress for JavaScript Web Applications
86. Oct. 19th: Use DOM Testing Library to test any JS framework
97. Oct. 26th: Test Node.js Backends

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

1Mondays and Thursdays at 3:30 PM MST:
31. Sept. 14th: Fundamentals of Testing in JavaScript
42. Sept. 17th: JavaScript Mocking Fundamentals
53. Sept. 21st: Configure Jest for Testing JavaScript Applications
64. Sept. 24th: Test React Components with Jest and React Testing Library
75. Sept. 28th: Install, Configure, and Script Cypress for JavaScript Web Applications
86. Oct. 1st: Use DOM Testing Library to test any JS framework
97. 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:

11. Sept. 14th: Finish "Fundamentals of Testing in JavaScript"
22. Sept. 17th: Finish "JavaScript Mocking Fundamentals"
33. Sept. 21st: Finish "Configure Jest for Testing JavaScript Applications"
44. Sept. 24th: Finish "Test React Components with Jest and React Testing Library"
55. Sept. 28th: Finish "Install, Configure, and Script Cypress for JavaScript Web Applications"
66. Oct. 1st: Finish "Use DOM Testing Library to test any JS framework"
77. 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.

Join the Newsletter

Kent C. Dodds