Actually Perfect Your Code With The Revolutionary #100DaysOfCode Challenge

The Ultimate Guide To #100DaysOfCode

To help himself and others from around the globe to achieve their programming goals, Alexander Kallaway created the #100DaysOfCode challenge in 2016.

It is centered around building a strong habit to improve every single day, and motivating you to tackle brand new and immersive projects.

Ever since, hundreds of thousands developers have participated in the challenge, but be wary, as not everyone succeeds in completing the challenge. It takes pure determination, perseverance, and sheer will. But you’re a tough nut, aren’t you?

You’ve got what it takes to improve your skills and undertake the mental grind. In fact, everyone does.

In this guide I have compiled a list of essential advice based on my research to help you get the most out of your experience. I will walk you through the rules, reasons to join, and by the end of the guide you should be well on your way to success!

What Is #100DaysOfCode?

The #100DaysOfCode challenge is a commitment made by developers to build a strong and consistent coding habit to improve and perfect their code. Social accountability, transparency and deep reflection are all used to form healthy habits.

The challenge follows two simple rules:

  • Code for a minimum of one hour each day for the next 100 days.
  • Publicly share your progress on Twitter using the #100DaysOfCode hashtag.

Many participants in the challenge also follow a series of other rules to enhance their experience, because although not required, they help build a great sense of community and make you a better programmer in general :

  • Time spent coding at work or school does not count, to encourage working on your own goals and use self-directed improvement to your advantage.
  • Time spent doing tutorials, online courses and other resources does not count towards the challenge in order to write real code and face real challenges.
  • Every day, reach out to at least two people who are also doing the challenge.
  • Push all written code to GitHub or write in a public journal so that anybody can follow and track your progress.

Why You Should Join The #100DaysOfCode Challenge?

The ultimate goal of the #100DaysOfCode challenge is to become a better developer and to build coding as a habit. If you have ever dreamed of becoming a more skilled developer you should definitely consider joining the challenge.

Here are 5 different reasons to join the challenge:

You Will Learn To Learn

The #100DaysOfCode challenge is not only a fantastic opportunity to experiment with and learn new technologies, frameworks and libraries, you will also strengthen your ability to learn them too, as you repeatedly improve your learning efficiency and speed, crafting you into a more versatile developer. If you are comfortable learning new skills and train yourself to be a habitual learner, you will become a more resourceful developer. In the future, you will be able to continually update your developer skill set.

You Will Improve Your Discipline

Stopping procrastination is something everybody struggles with, so making a public commitment to the #100DaysOf Code challenge can increase the likelihood that you will finally stick to your plans and achieve your goals. As many developers know, starting new projects and maintaining motivation can be difficult, so having incentives can greatly help out. A structured, exciting, and time-limited challenge will help you overcome the fear of taking risks and encourage you to put pen to paper and start working.

You Will Build Powerful Coding Habits

Every day that you code, you build momentum and an interday workflow, and help integrate the habit into your day-to-day life.

You Will Create A Strong Portfolio

During the challenge, you are likely going to complete a few projects and upon completion you will build a compelling portfolio of projects. This will demonstrate your knowledge of different technologies, and your curiosity in the tech world, a valuable skill set for many teams. Alongside this, working on daily projects will also add visible activity to your GitHub profile, providing a positive signal for potential employers.

You Will Join A Vibrant And Passionate Community.

Although the #100DaysOfCode challenge is an individual endeavor, you will be joined by hundreds of other developers daily to support you in your journey. By joining discussions on Twitter, Discord, and other platforms, you can make new friends and meet like-minded people.

Tips For The #100DaysOfCode Challenge

Below is a detailed list of actionable best practices to follow if you hope to be successful in the #100DaysOfCode challenge.

1. Make A Public Commitment

Accountability is an important motivator in any challenge. To add accountability to your challenge, your #100DaysOfCode should commence with a public commitment on Twitter using the hashtag #100DaysOfCode, but you could also declare your commitment on GitHub, Facebook, WhatsApp etc. If you are less comfortable doing this on social media, you could tell your family, friends and coworkers about your goals. Knowing that other developers expect to follow your progress on these platforms adds an extra element of accountability to keep you focused on achieving your goals.

2. Plan Your Challenge

You will be more effective in your journey if you create a clear and focused plan prior to taking on the #100DaysOfCode challenge, as instead of wasting time stressing out picking new projects, you can jump straight in and focus on coding during your challenge.

Before you begin coding, decide:

  • What technologies you want to learn
  • What projects you want to complete

Your plan does not need to be overly detailed and can change at any point during the challenge, but it should clearly state your objectives and goals you want to achieve.

For example, your plan could be:

  • Learn how to use the Python module PyGame to make a simple snake game.
  • Build a personal blog using the Python module Django.

The #100DaysOfCode challenge is about coding, so the more planning and research you complete beforehand, the more fulfilling and productive your challenge will be.

3. Pick The Right Projects

Writing real code on real projects should be your goal throughout the challenge. This is because tutorials tend to be too passive and you should try to move from being a consumer to being a creator.

Ideally, you should aim to complete three to five projects during the challenge, depending on how many hours you code per day. This will also help you unlock the novelty effect, making you more productive and engaged by preventing you from stagnating on a simple project for too long.

These projects should also be in the Goldilocks zone: challenging enough that you will stay engaged, yet not so challenging that you quickly descend into a demoralizing state of coding paralysis.

Additionally, the projects that you do take on should be somewhat related to your goals. If you are trying to become a web developer, you shouldn’t suddenly start making mobile applications, and vice versa.

4. Keep A Journal

Start a journal or create an open GitHub repository where other developers can follow your work.

In your journal you should give a brief description of your progress each day, such as a short paragraph or a set of bullet points. Make sure to discuss your successes, as well as your frustrations and failures to foster a stronger sense of community with others who are also working through the challenge.

Your journal can be as formal or as informal as you see fit. If you wish, you could even opt to write lengthy blog posts. An effective method is a combination of both styles: keep most daily updates short, but take time each weekend to write a longer and more thorough analysis. Using this hybrid strategy will ensure you do not feel overwhelmed by your journal, but it will still encourage you to take adequate time to think about your progress.

5. Set A Reasonable Pace

The threat of burnout is usually the reason most people fail and quit the #100DaysOfCode Challenge. After all, trying to sustain a new habit for longer than three consecutive months requires discipline to prevent demotivation.

Your enthusiasm for the challenge will face a lot of fluctuation. At the beginning, your motivation will be sky high, but after two months it will be much harder to focus. As you push through days of low enthusiasm, you will slowly start building momentum. As time goes on, the stakes get higher, too. Breaking a coding streak on Day 99 is more difficult than breaking a streak on Day 25.

As such, you need to be especially deliberate in setting a consistent and reasonable pace. Newcomers to the #100DaysOfCode challenge sometimes experience burnout by coding far more than the minimum during the first weeks.

To avoid burnout, start the challenge by coding for the minimum one hour each day. Stop coding each day with an exciting task planned for tomorrow. Once you have a better understanding of how the challenge is progressing, you can incrementally add more time to code each day if you feel you want to code more.

6. Engage With The Community

Although #100DaysOfCode is an individual challenge, you should view yourself as a member of a larger community.

Your journal could motivate others to learn to code. Your projects could inspire a peer to join the challenge. Your words of encouragement on Twitter could help someone work through a mental rut.

If you are not comfortable interacting with other developers just yet, start by tweeting your progress daily with the #100DaysOfCode hashtag.

Overall, help build a community that you would be proud to be a part of.

7. Reflect

At the end of the challenge, you should take time to fully reflect on your journey. 100 days is an extremely long amount of time, so you will learn many new things and work on many different projects.

You can build a portfolio for people who visit your website as a way to show the skills you have developed, or write an article memorializing your experience in the challenge.

8. Do Multiple Rounds

Once you finish your first #100DaysOf Code challenge, you can start planning your second round of the challenge.

Each new round is an opportunity to learn new technologies, build a portfolio, and tackle new projects. If you need to, you can even adjust the challenge for the next round to work better for your lifestyle.

While the first round of the #100DaysOfCode sets the foundation for strong developer habits, every round you do next will help you fine tune your habits and unlock your potential.

9. Do Not Be Afraid to Fail

Many developers do not succeed in finishing the #100DaysOfCode challenge. Like any process, the challenge requires an incredible amount of dedication and motivation. With enough practice, however, any coding challenge is doable.

If 100 days seems daunting , know that the process can be broken down a little bit. Some developers do 30 or 50 day challenges instead.

The goal of the #100DaysOfCode challenge is to become a better developer, so learning from failure and taking risks are often vital steps in succeeding.

What Communities Should You Join When Taking Part In The Challenge?

As thousands of developers around the world take the #100DaysOfCode Challenge, many communities have been set up to make the experience memorable. Here are some communities you may wish to join:

Gitter: 100 Days of Code Gitter
Slack: #100DaysOfCode Slack
Discord: #100DaysOfCode Discord
Twitter: 100 Days of Code Twitter

FAQ About #100DaysOfCode

Q: How do I get in touch with the people who are also doing this challenge?
A: You may want to join some of the above communities. There is no invite to join, as everybody can take part!
Q: I am new to coding and can’t build projects yet, what should I do?
A: Although many people discourage using tutorials, you may want to use them for the first few days to build a solid foundation before heading into building some projects.
Q: I’ve missed a day, does it mean I’ve failed the challenge?
A: No. According to Alexander Kallaway, you are allowed to miss one day every two weeks, and then make it up by adding the missing days at the end. You should also never skip 2 days in a row, as it will disrupt the habit making process.
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! In general, the question you should ask yourself is: have you coded for at least an hour before going to sleep that day? If yes, you are on track. We all have different schedules so don’t worry about it. You will not experience what Cinderella experienced once the clock strikes midnight.
Q: Should I keep a journal?
A: It’s optional, but it is a great idea and is highly recommended.
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.
Q: What is the most difficult part of this challenge?
A: According to Alexander Kallaway, “the part where you have to sit down and start coding. Don’t postpone it 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.”
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 an individual endeavor , so when you join you start at day 1.

What Next?

The 100 Days of Code challenge is the first step in becoming a better, more consistent developer.

So what are you waiting for? Make today your Day 1! If you want to, reach out to me on Twitter @StakheySedykh.

NOTE: For more up-to-date information, make sure to visit the official website: https://www.100daysofcode.com/

Programmer, Aspiring Entrepreneur and Student.