by Alexander Kallaway

Join the #100DaysOfCode


I will code for at least an hour every day for the next 100 days.

I’ve decided to make this a public commitment.

And you should join me.

To track your progress, fork this repo:

NOTE: For the most updated information on the challenge visit:
The 100DaysOfCode Official Website

Here are some reasons why

I really want to become a better developer. But I find that after work, I always find other things to do rather than code.

Nothing can beat self-directed effort toward learning or accomplishing something, and it is something that I value highly. But looking back at the past few months, I see a lot of good intention to sit down and code every evening, but also way to much rationalization. This leads to me allowing my resistance take the best of me.

That’s why I want to make sure that I commit to a challenge that will keep me accountable to anyone who follows me or sees my updates.

Sticking to something like this can be difficult, which you’ve probably felt already — be it trying to follow courses online, or working your way through a curriculum that you’ve chosen.

Making a public commitment has proven to improve people’s ability to stick to changes and new habits. So let’s do this together!

I’ve noticed that my time after work always follows a pattern of me watching something on Netflix or elsewhere, rather than coding. Like all of us, I have some things that I need to do: housekeeping, administrative tasks, washing the dishes, etc. All of that will still be there. What I plan to do less of is what I would call “passive relaxation time.” This is when I sit down to watch something, and my time each evening is eaten, episode by episode.

It’s easy to start watching something, but difficult to stop. With things that are worthwhile, I find that the opposite is true: it’s hard to start, but very easy to continue. So with this challenge, I will make sure that I start (sit down to code) every day no matter what.

Some additional rules:

  1. I will tweet about my progress every day -> ka11away using the hashtag #100DaysOfCode
  2. I code at work, but I want to be able to work on my projects as well. That’s why I won’t count the time I spend coding at work towards this challenge.
  3. I will push code to GitHub every day so that anyone can see my progress. If you want, you can follow me here.
  4. I will mostly be working through Free Code Camp’s Front End Certification Projects.
  5. The time spent doing tutorials, online courses and other similar resources will NOT count towards this challenge. I want to write real code and work on real projects, facing real challenges. Here is the article where I’ve summed up my thoughts on projects and my experience building them: How to Get a Developer Job in Less Than a Year.

Update — I’ve added an FAQ:


  1. Q: How do I get in touch with the people who are also doing this challenge?
    A: Search for #100DaysOfCode on Twitter, or join the 100DaysOfCode room on Gitter — you don’t need an invite, it’s open for anyone to join.
  2. Q: I am new to coding (or just deciding to learn to code) and can’t build projects yet, what should I do?
    A: The best way to start would be to follow the FreeCodeCamp’s Front End Curriculum from the very beginning. The further you get during the 100 days, the better.
  3. Q: I’ve missed a day, does it mean I’ve failed the challenge?
    A (UPDATED): Absolutely not. You are allowed to miss one day in two weeks. (then make it up by adding one more day to the end of the 100) Never miss two days in a row (so you can’t skip the 14th day of one week period and the 1st day of another). This is a great piece of advice on habit formation that I got from Leo Babauta at zen habits.
  4. Q: I come home late, and by the time I am finished with my hour, it’s past midnight, does it count?
    A: Of course it counts! The rule of thumb is: have you coded for at least an hour before going to sleep that day? If yes, you are on track.
    The reason for this is that we all have different schedules and different life periods (kids, school, work, and what have you) so don’t hold yourself to some arbitrary time standard. You will not experience what Cinderella experienced once the clock strikes midnight.
    I am actually in the same situation most of the time — I come home late on certain days (work, French courses, life getting in the way, etc.) and I’ve decided not to worry about things like that, or whether I get a point on GitHub on that particular day. Yes, it’s nice to have them in a streak one by one, but don’t do yourself a disservice by measuring your efforts to a clock.
  5. Q: Should I keep a journal?
    A: That’s optional, but it’s a great idea. It can be a GitHub repo, where you store all the links and/or projects completed, or a text file where you jot down the highlights of what you’ve done that day.
    It’s helpful in two major ways: you will be able to look at the progress each day and see how far you’ve already come and it will be easier to find the motivation to continue, and the second one is that after you’ve done your 100 days, you will be able to analyze your experience better and see what worked and what didn’t.
  6. Q: Should I put my projects online?
    A: Definitely. It’s great for accountability and motivation to know that the stuff you’ve worked on is accessible online to anyone who may wish to look at it. It will make you care about the end product more, and will make the results of the challenge more impressive when you look back at them on Day 100.
  7. Q: Should I worry about streaks?
    A: Streaks are nice and helpful, but as I mentioned above — don’t worry about them too much and don’t criticize yourself over missing a day. Instead, make sure you do everything to not let that happen again, and know that worrying and scolding yourself will not give you any results. (Ok, It will give you results, but only negative. I would call them consequences, not results) The best way to get out of that negative emotional state is to sit down and code.
  8. Q: What is the most difficult part of this challenge?
    A: The part where you have to sit down and start coding. Don’t postpone that or think about it at all, because you will rationalize yourself out of it. Approach it mechanically: sit down, open your laptop, launch your coding editor, and start typing. After 5 minutes, you will not feel any problems/procrastination/desire to stop.
  9. Q: If everyone started on a certain day, should I join them on the day they are? For example, from Day 12?
    A: This challenge is individual, so when you join you start at day 1. Whenever you’ll be posting an update on Twitter or elsewhere, make sure to mention which day you are on and use the hashtag so that people can find and support you!

Can I join the challenge?

If you want to join me in this challenge, I welcome you to do so. Just use the hashtag #100DaysOfCode or join the 100DaysOfCode Gitter Room.

If you decide to do this, please reach out to me and we can help and encourage each other! If you like this idea, please click the ❤ to recommend it here on Medium. It would mean the world to me! :)