by Alexander Kallaway
Improve with the #100DaysOfCode Movement: Rounds, Resistance, and Adaptation
Since our last update on #100DaysOfCode challenge back in January, hundreds of people have taken the plunge. They’ve completed the challenge, built amazing projects, and found tech jobs.
We’ve learned a lot of lessons along the way, and I’m going to summarize them here in this article.
First, I’ll give you some basic information about the challenge itself. Then we’ll explore the new concept of Rounds — taking the challenge multiple times. We’ll talk about the Resistance, and its connection with the rules of the #100DaysOfCode challenge. Finally we’ll talk about Adaptation, and how important it is to your success with the challenge.
The brilliant #100DaysOfCode community grew out of the initial challenge we launched more than a year ago, here on freeCodeCamp’s Medium publication.
Now #100DaysOfCode has become a full-blown, self-propelling movement, acting as a force for good in many people’s lives — helping them improve their skills one day of coding at a time.
A little about the challenge
#100DaysOfCode is a challenge specifically designed to help you beat procrastination and fear when it comes to learning to code. It helps you turn coding into a daily habit.
The main two rules are:
- You commit to coding for a minimum of one hour each day for the next 100 days
- You commit to encouraging at least 2 people who are also doing the challenge each day.
That’s the gist of it, and to learn more, read the in-depth rules and FAQ’s on the official site of the challenge: www.100DaysOfCode.com. There’s a resources section there as well, where you can find additional articles, podcasts, and more.
To give you some more perspective, here are some things people from the #100DaysOfCode are saying:
“I completed 100 days of code. Also, after completion my title changed and I do half coding and half testing now instead of full testing. Each month more testing responsibilities will go spread through the team and I will get more coding responsibilities. I am thinking of starting 100 days of code again.” — Robert Jorgensen
“I completed the #100DaysOfCode and it was one of the things that helped me get a job.” — Christina Gorton
“I’ve completed 100 Days of Code once. Going to start again in September. I haven’t looked for a job, but it’s helped me do my job better and got me involved in open source projects.” — Amy Carney
If you’re considering whether you should learn to code or not — the answer is a total YES!
If you haven’t yet accepted the #100DaysOfCode challenge, let’s start it together on July 17th!
Lessons we’ve learned as the #100DaysOfCode movement has progressed and evolved
The concept of #100DaysOfCode Rounds
A lot of people who have completed the challenge wanted to repeat it, because of the impact it had on their results and how it sped up their learning process.
I believe that retaking the challenge is very valuable, but you need to have a way of measuring and analyzing your progress, to be able to improve your plan and outcomes for the next round.
Let’s say you’re about to finish your first round of the challenge. I suggest that after you’ve completed the 100th day, you take 3–4 days off (you can still code, but not as part of the challenge) to pause and reflect on how the experience was for you.
The best way to do this is to write your thoughts into a blog post, or even in a notebook. The main thing is that you start the process of reflection.
This process will reveal a lot of things you didn’t think about initially, which you can transform into lessons about yourself and about the experience itself by the process of thinking about the journey you’ve just completed.
At the very least, take this time just to celebrate, because you deserve it.
Then, armed with the knowledge you’ve synthesized, plan your next round of #100DaysOfCode.
- What technologies you want to get into?
- What projects you want to build
Don’t make your plan too detailed. You don’t want to stifle your own energy as you go along, and you want to give yourself plenty of room to adapt. Just note the general themes and guidelines you will follow.
With the new system of #100DaysOfCode rounds in mind, I suggest we adopt a new way of noting the day you are on, when you are making your daily update on Twitter. For example, R2D23, where R stands for which round you’re on, and D stands for the day. (This example can be read as: Round 2 Day 23.)
After a few rounds of the challenge, you’ll be able to compare the rounds and gather even more valuable data about how you learn, what works for you, and what doesn’t.
Resistance and the Rules of the Challenge
Resistance is one of my favorite topics to explore, because I am dealing with it on a daily basis.
Resistance is an internal force you feel when you’re inspired to create or accomplish something, yet you can’t force yourself to start working on it.
Resistance is what a writer feels when they have “writer’s block.” The term has been popularized by Steven Pressfield, in his book “The War of Art”, which I highly recommend you read. (Coding is a creative process, not unlike writing.)
Resistance inspired the rules behind #100DaysOfCode.
I was frustrated with my inability to code every day after work. There would always be some excuse not to. So I started searching for ways I could overcome my procrastination.
I read some books on the psychology of habit creation, and I thought I could use some of the concepts outlined there to create a system. This system could help counteract all the excuses I naturally came up with for not doing what I was supposed to do.
This is how the challenge was born — a couple of simple rules, social accountability, and nothing more.
Here is a little breakdown of how the rules of the challenge help you get into the habit of coding, then continue to beat the resistance on a daily basis.
First, knowing that you have a specific minimum that you absolutely have to do — 1 hour of code daily — helps you control the urge to do less than that on a difficult day (and trust me, there will be plenty of those.)
The concept is called “the Bright Line rule.” Compare “I will code for an hour every day” with “I will code for some time every day, whatever time I have I will fill with coding.” The latter seems more promising, but the truth is that consistency will take you further than any exciting plan you might imagine in your head at the moment.
Second, the reason you have to work on projects (as opposed to following tutorials) is that you will be less likely to take the easy path and relax while consuming ready-made content.
This is why working through the content of freeCodeCamp is so great — it forces you to learn interactively, through making mistakes. And it’s been proven that people retain the information learned that way better and longer than if they were just shown the correct solution right away.
Tutorials can be useful in certain cases for beginners, (and also for experienced developers who just need to do something real quick for their job). But don’t be caught in a trap of reading or watching tutorial upon tutorial. I’ve been in that trap and lost quite some time to it.
I believe that freeCodeCamp and #100DaysOfCode make an unbeatable combination for learning to code.
Third, the social aspect: the more connected you are to the other people taking this challenge, the more you’ll get out of it.
Social accountability is one of the main factors for successful long-term habit change. Thus, the rule of encouraging at least two people every day on Twitter.
Just go to the #100DaysOfCode hashtag, and click on “latest” instead of “top” to see all the people that are working through the challenge.
A simple like can go a long way in making someone’s day more positive. Who knows, maybe they were on the verge of quitting, but knowing that there is someone out there who cares helped them soldier on. Often, you are changing the lives of people without even realizing it.
I’ve written some more about the Resistance here, if you are interested in how it affects your life and what you can do about it.
Another little idea on how you can help others: At our freeCodeCamp Toronto meet-up, we always ask the new people how they heard about freeCodeCamp. In 99% of cases, their answer is “a friend told me about it.”
What I always think in those cases is: what about the people who have what it takes, and would love the opportunity to learn to code, but just don’t have the friends who code or are learning to code in their social circles? If they knew that it was possible to learn to code and change their life, and it was possible to do so for free(!), they would definitely do it. But they just don’t know about it yet.
A lot of us who are already learning to code might have been in that situation before, and thought: why didn’t I know about this earlier?
So here is what I’m asking you to do as you go about your daily life: reach out to the people you know who may feel stuck in their careers, or would love to challenge themselves, or want a better life for themselves and their families. Talk to them about the whole “learn to code” movement. Send them a couple of resources.
Then what might happen in a year or two is that you will meet them again, and you will realize that you’ve helped them completely changed their lives, and they will thank you for it.
You might even cry a bit when you realize the magnitude of what you accomplished by just sharing what you know.
Everyone’s life is different, and what works for one person might be unrealistic to another. Don’t give in to the Resistance that might be telling you right now: “Of course you could do it, but too bad you don’t have that hour a day,” or something along these lines.
What I want you to do is to adapt the challenge to yourself as you wish. The main purpose of the challenge is not to follow some rigid preset of rules that are set in stone — it’s to make sure that you keep coding and keep learning and don’t quit when it gets difficult. (And it will.)
So, if you’re at the beginning of your journey, feel free to use tutorials to propel you forward. If you are traveling for 2-3 days and cannot code, take a book on coding with you and read it instead. If you only can afford 20 minutes a day, do that. Make the challenge your own.
The only rule that I want you to keep sacred is that you have to code daily. You can skip a day here and there for unplanned situations, but not more. The goal is to become consistent, no matter what life throws at you.
The thought I want to leave you with is the limitations you think you have are not real. They will expand as you go.
If you think about it, in life, to grow you have to do the opposite of what your brain and body are telling you to do. To become stronger, you have to push your muscles over the limit of what they are used to. To do your best work, you have to learn to fight the natural tendencies of your mind to wander away and seek distractions. To eat better, you have to work against the desire to eat fat and sugary foods, which seem the most appealing to your brain. To use your time better, you have to learn to escape the tyranny of on-demand entertainment, to turn it off and force yourself to choose better activities.
In other words, any progress you make is happening beyond the zone of your comfort, when you are working against Resistance. If there was no Resistance, there would be no progress. So we do need it in our lives.
The most important thing is that we learn to consistently beat the Resistance at its own game. To become a creek that creates the Grand Canyon.
How? By making the decision to do the opposite of what the Resistance wants you to do. The first step you take in this direction might be committing to the #100DaysOfCode.
If you find these topics interesting and would like to read more on them, please let me know :)
*Written, as usual, to the OST to “Tron: Legacy” by Daft Punk.
If you have friends who you think might be interested in taking this challenge, or who are curious about learning to code in general, share this story with them. And you can help more people see this here on Medium by clicking the ❤ below.
If you have questions/comments or ideas, you can reach me on twitter.