If you are thinking of attempting the 100 days of code challenge, this article is for you. Having successfully undertaken this challenge, I will share my experiences to help you successfully make it to the end and complete the challenge yourself! If you have never heard of the 100 days of coding challenge, the concept is simple. The rules are simple:

  • Code for a minimum of an hour a day (essential)

  • Tweet your progress daily with the hashtag: #100DaysOfCode (nice-to)

  • Each day, reach out to at least two people on Twitter who are also doing the challenge (nice-to)

I recommend every software developer, no matter their level of experience (green or grizzled), to give this a try. #100DaysOfCode was created by Alexander Kallaway in 2016. Alex explains why he started this challenge on the official #100DaysOfCode website here. The reason why I personally wanted to undertake this challenge was simple, to learn something new and on April 21 2021, I took my first step:

Coding for an hour a day, consecutively for 100 days is not easy. I have a newborn baby, a job, a wife and a life. I had more excuses than most people for "not having the time", however, I committed to getting it done and did! As I am writing this guide, I obviously succeeded, so was it worth it? The quick answer is yes. I learnt a lot undertaking the challenge. I learn some things I never would have otherwise. So what did I learn?

Have a learning goal

Before starting the challenge, I recommend that you set yourself an overall goal of what you want to get out of the challenge. Figure out what you want to learn at the end before starting. This will allow you to focus on what types of projects that you will want to work on. By defining a goal, you set yourself up for maximizing your learnings. When I undertook the challenge I had a few high-level aims I wanted to tick off. these goals were:

Become better at vanilla Javascript: I wanted to internalise more Javascript commands. Before the challenge, I would say I had a solid understanding of what's possible in JavaScript. Over the years I haven't used this knowledge enough on a daily basis to internalise that knowledge. When I came across a problem, I would have to turn to Google to remind me of the command that I wanted to use. Each day I used commands like document.createEventListener(), document.querySlectorAll() and document.getElementById() until I I can now use them without thinking about it

Learn about Javascript game development: I had no idea about game development in JavaScript. I didn't understand how to start it.

Improved CSS: I wanted to improve my understanding of animations and effects!

Think How You Want To Learn

How do you code for one hour? When it comes to spending an hour of your time coding, there are a lot of different approaches you can take. You can learn in either a passive, or, an active approach. You can create something from scratch, or, you can learn something from a tutorial. Challenging yourself to create something from scratch will be harder, however, you will likely absorb knowledge better. Doing a tutorial, or, an online course for an hour a day will likely expose you to a wider range of technologies. If you aim to create one new project per day, without tutorials, you may struggle to scratch some of the deeper concepts within a framework, especially if you need to figure out game logic, design something of creating the styling. If you create something yourself, aim smaller and do larger projects over multiple days. Unfamiliar technologies have hidden learning costs. For example, I created a Slack bot on one day. Just setting up and configuring Slack took 30 minutes before I even got to the code 😢 WHen you think about what you will code, think about how you will do it, sop to re-carp

Active ways of learning:

  • Create something from scratch

  • Contribute to an open-source

Passive ways of learning:

  • Take a course from something like Udemy, or Skillshare

  • Do an online tutorial (youtube)

Plan For The Lows

Finding the motivation to start the challenge on day one is easy. You sit down and code for an hour 💥 Job done! Finding the motivation to code every day for 100 days is not so easy. At around days 30, 50, and 70, there were many days where I couldn't be bothered. I had to force myself to code. This challenge will definitely help you to develop character and discipline. At times the challenge will feel like a slog, this is why you need to set yourself up for success. You need to prepare for these low moments. When you feel that lack of motivation, you want to ensure you make it as easy as possible to coax yourself in taking part in that day's challenge. How?

First, you need a list of projects and ideas. Thinking about what you want to create per day is time-consuming and tough. You do not want to waste 30 minutes every day simply researching what to do. On the low days, you want to have a list of projects, ideas, and tutorials you can simply pick up and start with no conscious or mental effort. I am not going to fib, coming up with ideas can be tough. (if you want some ideas to check out my own 100 days of coding log)

The other way of making it super simple to start each day is to have a base project (see mine here). As I wanted to improve my vanilla Javascript, I created a base HTML project that I could simply copy and paste to get started. My base project had a .gitignore, basic CSS styles, with pre-configured CSS variables, a link to font awesome, a reference to a Google font, a script file which was referenced from index.html, etc... Having a list of projects and a base starter kit made it seem less mentally overwhelming on the low days. When you start out I suggest you do the same, have a list of low day projects and a base solution to make it easy for you 😊

Every Sunday I would sit down and create an upcoming list of projects for the week. Doing this on a Sunday night in one go, when I was usually watching TV was much easier than doing it when I was half asleep each morning!

Have Dedicated Time

I wake up most days at 5 am. This gives me a good 2 hours before my world gets crazy. I make good use of these two hours. I have written books, blog articles (like this one). I created 99% of the projects for the challenge during this period (the 1% difference occurred because of hangovers 🤪)))))))). I personally feel that setting yourself an uninterrupted time each day to code for an hour is key to completing it. This time should be the same for weekdays and weekends 🛈. I recommend setting this time in the morning before you do anything. This way you can get it done without having to mentally worry about it for the day. By 7 am I knew I had the things I wanted to get done for the day nailed, so I could go about my normal life.

One of the things you will learn by completing the challenge is improved self-discipline to become a self-starter. Even though this is a coding challenge, you will need to master your time management skills in order to complete it. Finding an hour every day to code on top of normal life is tough!

Be Public

Many books on goal setting suggest making public commitments to help you achieve things. To give yourself the best chance of success, it's important to Tweet your progress every day with the #100daysofcode hashtag. I recommend pushing all code into GitHub (or whatever you use) and make it all public. The best thing about making your work public is that you will also create a strong portfolio. Future employers will be able to see your passion, your interests and you will stand out from the crowd when you apply for jobs. Who knows the challenge might help you land that dream job! Another good thing about using GitHub is that you can see the little activity chart on your GitHub profile. Keeping the daily activity streak going can help you to stay motivated! If you want a free and easy way to publish your web projects so the world can see them I suggest you use Netlify. A tutorial why can be found here

With enough determination and grit, you should be able to complete the challenge and move one step closer to becoming a coding legend! I learnt a lot from taking this challenge and found it very beneficial, although I was pretty happy when it was over 😉If you follow the tips in the article you should definitely be able to complete it yourself. Good luck! Happy Coding 🤘