freeCodeCamp always gets a huge rush of ambitious learners on New Year's Day. And each year, I try to create challenge that will help people stick with their learning.

In the past, we've had cloud certification challenges, gamedev challenges, and back end development challenges.

This year, we're going back to basics, with the popular #100DaysOfCode challenge.

This challenge was created in 2015 by freeCodeCamp alumni Alexander Kallaway. (I've written a detailed history of #100DaysOfCode if you're curious.)

“Every day you code is the day you’ve won.” — Alexander Kallaway

Here's how the challenge works. There are just 2 simple rules:

  1. You commit to coding for at least 1 hour each day – and then posting about it – for 100 consecutive days.
  2. You also commit to encouraging at least 2 people each day by replying to their posts.

This second rule is important, because it ensures that everyone feels supported.

The hardest thing about learning to code is sticking with it. I've said this many times and I'll say it again: learning to code is not a technical challenge – it is a motivational challenge.

If you get enough practice expanding your coding skills, you will eventually become a decent developer. And that's what #100DaysOfCode is all about: getting 100 days worth of practice.

Discord is the new Twitter

Social media has kind of been on the decline for a while. Nowadays, many people prefer group chats, forums, Discord servers, and other smaller communities that are based around shared interests.

You could argue that Twitter always was a bunch of separate communities spread across one giant, general purpose platform. You had tech twitter, learn-to-code twitter, Nigerian Dev Twitter, and so many other cohorts of developers.

I am still optimistic about Twitter, and I'm not leaving the platform. But these days I spend a LOT more time on Discord.

So I wanted to formally expand the #100DaysOfCode rules to also include posting on Discord for everyone who prefers it over Twitter.

freeCodeCamp has a #100DaysOfCode chat room on our community Discord server where we're going to be posting our daily updates. You can join freeCodeCamp's Discord.

How do I commit to the #100DaysOfCode Challenge?

Simple. Just post: "I'm committing to the #100DaysOfCode Challenge starting today" on either Twitter, LinkedIn, or in the freeCodeCamp Discord #100DaysOfCode chatroom.

Then start posting each day after you finish your coding, like this:

"#100DaysOfCode Day 1: I completed the freeCodeCamp JavaScript Role Playing Game project, and watched part of a Phaser.js tutorial."

Or whatever it is you did that day.

Then be sure to interact with at least two other people who posted.

That's it. Rinse and repeat for 99 more days.

What do I learn each day?

If you haven't already, I recommend just going through the freeCodeCamp Core Curriculum from top to bottom. This represents a shortest path from beginner to intermediate, and you'll get tons of practice building projects.

Note that freeCodeCamp also has more than 1,000 free full length courses on our community YouTube Channel. And dozens of free books on freecodecamp.org/news.

This said, I strongly recommend focusing your time on our interactive curriculum, so you can get hands-on experience coding with tests to guide you.

Remember: practice makes perfect. Above all else, the freeCodeCamp curriculum is there to give you thousands of hours of coding practice. And for the #100DaysOfCode challenge, you'll get at least 100 hours.

Learning to code properly will take a lot of time. The way the human brain works, you want to code just a little every day (1 hour is fine) consistently for several years to really become intermediate and then advanced.

It is usually a mistake to try and learn "intensively" by coding all day every day. There are diminishing returns to how much you can learn in a single day.

This is where the true genius of #100DaysOfCode comes in: it helps you get into the rhythm of coding a little each day. And it provides peers who can support you, and keep you motivated to stay consistent.

Here's hoping that you can finish the challenge, take a day or two off, then get right back into the rhythm of coding a little every day.

Well, what are you waiting for? Commit to the #100DaysOfCode challenge. I'll see you on Discord, LinkedIn, and Twitter. Happy coding. 🏕️