Resistance, Habit Change and the #100DaysOfCode Movement


alex-kallaway  by Alex Kallaway       Last updated Jun. 2, 2017

Short intro by Kyle:

Alex is someone on a mission to help improve the lives of others through coding.

He created the popular #100DaysofCode initiative which is growing every month.

Without further delay, here's Alex:

Before we talk about what the #100DaysOfCode is about specifically, allow me to talk about the "Why" of it, and to give you a wider picture of the considerations behind it.

Why is it so difficult for me to form habits?

What can I do to make myself stick to my decisions and resolutions?

How can I become a person who is able to make positive and lasting changes in life?

The answer to these (and similar) questions is not a simple one-liner recipe, knowing which you can quickly eliminate all your weaknesses and become a bulletproof, unshakeable example of ruthless self-discipline.

In my opinion, the answer is not a couple of sentences, and not even an article or a book.

It's much more complex and the only way to become effective in making habit changes (and, therefore, in changing your life) is to shape and mold yourself into the answer, into someone different from who you are now.

The way most marketing messages work is by making us think that change can be made easy and external to us.

All these endless "lose 30 pounds in a month with no exercise", "learn C in a week", "learn a foreign language in a month with this ultimate lifehack super shortcut wondrous book based on a recently unearthed Ancient Egyptian method", and such — are making us believe that we don't have to do much to create meaningful change in our lives.

These slogans and gimmicks sound absurd when they are seen together and thus their absurdity is amplified. However, the problem is that on their own, one of those can definitely sound appealing.

The next step in the carnival of absurdity would be to outsource changing your life to someone else, so you can live your life and don't worry about such frightening and challenging things at all.

The key to filtering out the signal out of all that noise is to take a different approach, and I believe anyone who'd decided to learn to program has already taken it.

It's to realize that when something is difficult, it's a good thing. It's to keep turning away from anything that has that cheap sugary glow around it — eating junk food, watching endless videos and shows, etc.

There is a force we encounter when we find something that inspires us, and also takes a lot of time, effort and bravery to accomplish.

Steven Pressfield has famously named that force the 'Resistance', and the way I feel and understand it, it's a merge between your highest aspirations and your greatest fears, insecurities and blocks.

You have probably experienced it in your own life — whenever you had a project to complete that you were very excited about, but could never sit down and start working on it. Or you would finish 99% of it, and then walk circles around it not being able to share it with others because of the fear of being laughed at or ridiculed.

Maybe every morning you decide — I will code today, or even more specifically, I will code today after work. Then as the day goes by, you find myriads of other more-or-less important things to do, and never get around to coding even for 20 minutes that day.

You might find yourself watching shows and videos online, and on the back of your mind — there is a thought - I should really start coding now.

Inside, you are very excited to sit down and code and you can imagine yourself doing just that and you can even make yourself feel good about that "imagined you". However, in reality, you are still glued to the screen (plugged into the Matrix, some might say) and you feel that raw pain of not doing what you know you should be doing, of wasting your precious time.

That sticky feeling which you are trying to tear yourself from is the Resistance.

Then it's already too late at night, and you decide that tomorrow, definitely, you will code.

"Yesterday you said tomorrow".

If you've ever felt this (I know I do very often), you are on the right track. You have a bridge to cross, and while others may look in all the wrong directions, you know that you are looking directly along the bridge, at your path.

Our goal with any habit change, or in acquiring new skills, or in general, doing something worthwhile in life — is to continuously work on beating the Resistance (it will not go away).

If you are interested in learning more about Resistance and the way to conquer it — I suggest Steven Pressfield's books: "The War of Art" and "Turning Pro".

In the beginning I said words, articles and books alone will not help, but here is what will. We have to merge Learning and Experimentation.

All the books and such are part of the "learning" part of change. The other part — experimentation — is way more important. I will explain this further as I talk about the #100DaysOfCode.

The #100DaysOfCode Challenge


The #100DaysOfCode challenge was born when I was frustrated with my own struggles to beat the Resistance and code after work.

I would come home thinking that I would focus on my learning, to try to get better faster, but I would then proceed to rationalize and procrastinate my way to the end of the day – watching shows and movies mostly.

I was very unhappy with my inability to "just do it" so after giving it some thought, and using the principles of habit change I've read about before (mostly I recommend Leo Babauta's Zen Habits website, and two books: "Willpower" by John Tierney and Roy Baumeister and "The Power of Habit" by Charles Duhigg) I've come up with a little set of rules for myself.

For the next 100 days I would code at least one hour a day, working only on projects (no tutorials) and sharing my progress on Twitter — for accountability.

When I wrote these rules down, I decided to put them on Medium, so that I increase the negative outcomes of quitting.

"I was already excited and then got even bolder: I decided to submit the article to FreeCodeCamp's Medium publication curated and managed by its creator — Quincy Larson.

I was happy and a bit scared when he approved the article and people all over the world started committing to the challenge.

Since then, we've run two massive campaigns of people committing — one just when the first article came out, and the other — just before the New Year of 2017 and hundreds of people have started their #100DaysOfCode on the 3rd of January.

However, anyone can join the challenge at any time — and people continue to join everyday. The best part is that the challenge is technology-agnostic, so you can as easily do the #100DaysOfCode learning Front End Web Dev, as you can be learning Back End, or Data Visualization, or Robotics, or Raspberry PI/Arduino programming.

For anyone learning web development, I always recommend because of how well its curriculum lands itself to the approach we use for the challenge: hands-on learning.


The Rules and Benefits

The main rules are simple:

  1. For the next 100 days code for 1 hour minimum every day.
  2. Share your progress on Twitter using #100DaysOfCode hashtag and denote the number of the day you are on.

There are also some important additional considerations:

  1. If you can, try not to use tutorials, but build real projects — they can range from simple pages to full-fledged web apps.
  2. Don't skip two days in a row, and try not to skip more than 1 day in 2 weeks.
  3. Encourage at least two people in the challenge daily - on Twitter, by simply liking their tweets, or if you have a moment, looking at their projects and giving them feedback
  4. Keep a log (fork a GitHub repo of #100DaysOfCode and keep your progress there.)

The benefits of the challenge are numerous:

  1. You will meet multiple like-minded friendly people. This community is very friendly and helpful and I am very happy about that :)
  2. You will build real projects, which you can then show to employers. This will not be possible if you only work through tutorials
  3. It will be great to feel that each day you are progressing toward your goal of becoming a better developer.
  4. By the end of the challenge, you will have formed the coding habit, which will be easier to maintain further on than it was to develop it.
  5. If you decide to use #100DaysOfCode GitHub Repo for keeping the log, you will get more comfortable with Git and GitHub by the end of the challenge - which will be very useful at work, especially if your goal is to get your first developer job.

I invite you to start the challenge today, if you are brave and ready! Commit to it on Twitter, using the #100DaysOfCode hashtag.

Additional information and answers to the questions you might have are covered in the FAQ on — the official website of the challenge.

You can also ask me directly on Twitter, my handle is @ka11away.

New in #100DaysOfCode — Rounds

Some people have been together with the challenge since its inception, and have completed the challenge a couple or more times over.

They've found it very beneficial in terms of both having a community around to motivate them in the learning process, and conquering the Resistance and actually coding every day.

If you finish or have already finished the #100DaysOfCode, we welcome you back for another round! I suggest you put the day count in the tweet in this way: "D2–23" — where the first 2 signifies the round number, and the second number is the day (23rd in this case).

Resistance and Experimentation


A lot of the decisions in how the #100DaysOfCode works were dictated by finding actionable ways to fight against the Resistance.

It is very cunning and will try to get you to be complacent and keep you in the land of mediocrity using any way possible. Since you know yourself best, Resistance has in its repertoire all the most effective tools that are fashioned, customized and adjusted to fit your deepest fears and insecurities.

Once you beat it in one thing, it will find another way to get to you, so you will constantly have to experiment to stay on top of things.

However, I want you to remember that the Resistance is not the force of evil. It is more like a sparring partner in boxing.

Through conquering it you grow stronger. For example, in the weightlessness on the International Space Station, there is no effort needed to move heavy objects, and to move around. Hence, it's very difficult for people on board to keep fit (they do have a special gym there to counteract the effects).

We can learn to appreciate Resistance being a constant factor in our lives. Remember also that even though it knows all your moves, it's still a shadow.

You are the real boxer, and you can self-direct your life because you are in control - if you choose to be.

In the rules of #100DaysOfCode, the fact that you have a minimum time period (1 hour) for which you necessarily must code helps drive away the rationalizing brain that is saying "maybe 20 minutes is enough for today".

The accountability part helps ensure that you don't quit even in the end of hard days when the only thing you want is to sleep.

The reason you have to work on projects instead of just following the tutorials is the exact same: to help you learn to withstand the discomfort of not knowing how to do something.

The discomfort of that sort will always be with us, but it's possible to learn to "feel ok" in it. The picture that comes to mind is someone meditating outside during a rain.

However, even though these rules are in place to help ensure we form the coding habit, I can almost guarantee you that it won't be enough.

Here is when the experimentation part comes into play.

If you find that you don't have enough support and still want to quit, ask a family member to keep you accountable, or vow to give your friend a certain sum of money if you quit. Raise the stakes.

If your schedule is such that you can only do 30 minutes a day, you should definitely do that.

30 minutes is better than 0 minutes. You have to stick to the minimum you set yourself. If you have to take a day off each week due to some life circumstances — you can still do the #100DaysOfCode — just modify it a little.

Feel free to bend the rules a bit if you know that you are doing it to stay in the game (to stop yourself from quitting), but remember why you are doing it in the first place — to improve your coding skills.

You will have to experiment and find your own way as you go along. I don't care how fast or slow you will be going, the main thing is never to stop.

Then, extrapolate the lessons in habit formation you learn doing the #100DaysOfCode and keep applying them to all the other parts of your life. This challenge, as anything, will be a representation of you and your life in general, and you will find a lot of metaphor in it for everything else you experience in life.

I wish the best to all of you and I really hope to see you join the #100DaysOfCode! Big thanks to Kyle for the opportunity to talk to all of you!

Additional resources on #100DaysOfCode:

  1. Official website:
  2. GitHub Repo for the #100DaysOfCode to fork and log progress in
  3. Original Article Join the #100DaysOfCode
  4. Follow Up Article: Boot Up 2017 with the #100DaysOfCodeChallenge
  5. Podcast: CodeNewbie - 100 Days Of Code
  6. Podcast: Learn To Code With Me S3E7: Creating the #100DaysOfCode Movement with Alexander Kallaway.

Conclusion by Kyle:

Amazing! Alex covers some realistic barriers I think we all face. Let's act on the solutions together.

Join the 100DaysofCode movement and make sure to follow Alex on Twitter



Free 3 day email course with no fluff to help you get more clients



Free 3 day email course filled with actionable steps to get paid more