What I Learned From Doing The 100 Days of Code Challenge
Tags: programming, python, codenewbie, 100daysofcode
Published: 2022-09-26 12:21:52

- [Introduction](#introduction)
- [Lessons Learned](#lessons-learned)
  - [Create A Schedule](#create-a-schedule)
  - [You Don't Need To Spend A Fortune To Learn](#you-dont-need-to-spend-a-fortune-to-learn)
  - [Learn In Public](#learn-in-public)
  - [Go Off-Piste](#go-off-piste)
  - [Build Projects](#build-projects)
  - [Master How To Search With Google](#master-how-to-search-with-google)
  - [Don't Be Afraid To Ask For Help](#dont-be-afraid-to-ask-for-help)
  - [Learn To Write Documentation](#learn-to-write-documentation)
  - [Don't Rush Yourself](#dont-rush-yourself)
  - [Don't Compare Yourself To Others](#dont-compare-yourself-to-others)
  - [Take Breaks](#take-breaks)
  - [Completing The Challenge Is Not The End](#completing-the-challenge-is-not-the-end)
- [Conclusion](#conclusion)

## Introduction

A few months ago, I completed my first 100 days of code challenge, which was based around learning Python. It was a challenge to say the least but it was fun and I learned a lot from it so I figured I would write about what I learned from it but not from a technical perspective, more the non-technical aspect of what I learned.

## Lessons Learned

### Create A Schedule

For each day, set aside some time to study. This can be any time you want but make sure that it doesn't interfere with anything else, be that work or personal / family related.

If you are living with someone, make them aware that the time you have set aside for learning is for that purpose and ask them to not disturb you during that time.

Finding a place to study in your place of residence that you can use to be on your own will also be very beneficial.

### You Don't Need To Spend A Fortune To Learn

There is an abundance of resources that you can use to learn to code / program. Some are free and others are paid for.

For my journey, I used a mixture of both paid and free online resources with the paid course I did not costing me an arm, a leg and maybe a kidney!

How you learn best is up to you but for me, I like video-based courses and reading books.

I think in total for the Python course I used (Angela Yu's 100 Days of Python on Udemy), I got it on sale for around £12 - £15. It is a good course but some of it uses methods that have been updated with newer versions of Python but the fundamentals are all there and those methods still work so it wasn't a waste of time.

The main places I have found useful for free material include:

- edX
- FreeCodeCamp
- The Odin Project
- YouTube

For paid online course sites, which can offer a more structured approach than some free materials include:

- Codecademy
- Coursera
- Udemy

My advice if you want to get a paid course for your learning is prior to buying any of them, watch some of the free previews (not just the intro). I got stung a few times by either poor audio quality or the material was not shown in a way I felt was understandable or interesting enough to keep my attention.

Also, check the release date and if the course has been updated recently. Again, I got stung by this in the past.

Oh and lastly, no you don't need a Mac to learn to code. Unless what you are learning requires one (Swift for example), nearly all programming languages (with some exceptions) work on nearly all platforms, be that Windows, Mac, Linux, BSD or UNIX.

### Learn In Public

One of the main points of doing the 100 days of code challenge is to blog your progress from day one to day one hundred. This can be on whatever blogging or social media platform you like to use. For me, I started a new account on Twitter as it was recommended by a number of people.

This can help you to join like-minded communities that are interested in whatever programming language(s) you are learning and can be a valuable source of information and help if you get stuck.

### Go Off-Piste

One thing you can do as part of whatever course / plan you are following is to (slightly) deviate from it.

What I mean by that is on a number of occasions I would finish one of the projects / tasks on the course and think to myself "I can make this better" or "I could add xyz to this" and then give it a go.

You should encourage yourself to do this as you will learn more and maybe help you come up with some side projects to build, which leads us to...

### Build Projects

This is a big one as it will help you learn more. Spend some time working on some side projects that you might be interested in doing.

If you don't have any in mind, which was a situation I was in when I started, ideas will eventually come. When they do, just make a quick note of what the idea is so you can look into it.

As you do your projects, put them on GitHub (or another git repository site) in public repositories to show off your work. These repositories can then be used as a basis for a portfolio that you can use to demonstrate your work to potential employers. It will also be good practice for using GitHub.

### Master How To Search With Google

I think it's safe to say that a lot of people use Google to find things and for developers it is an essential resource to use when you get stuck with a problem.

Master how to find solutions to problems you encounter by trying certain keywords from error messages, such as error codes or words that stand out. You will learn what words to use over time but as a good start, don't search with variable names that you chose to use in your code.

### Don't Be Afraid To Ask For Help

If after spending some time on Google or somewhere like Stackoverflow you can't find an answer to your particular problem, don't be afraid to ask for help.

You can post your problem on a forum, such as Stackoverflow or ask a community on Slack, Discord or Twitter for advice on how to solve the problem.

### Learn To Write Documentation

I don't think it was covered on the course I did but learn how to write markdown documents for your work.

Github (and others) uses markdown for repository documentation files (readme.md for example). Clear documentation helps users / developers a lot and will demonstrate that you can explain what your project does and how to use it.

Remember, being able to clearly communicate to people is a very important soft-skill, not only for developers but for everyone!

### Don't Rush Yourself

This is not a race! The only person that determines the pace you go at is you. If you are learning and are happy with your pace, fantastic! Stick to that pace but also don't be afraid to slow down or speed up if you feel like it.

There will be times when you will encounter a subject or a challenge that may take longer. That is fine, it happened frequently to me. How I worked through them is to:

- Go over the video / material again.
- Change your learning material to something else. Perhaps the way it is being taught isn't working for you and another way might be better. I did this a few times with some of the topics I was having difficulty with.

Also, as you progress further, the topics will get more difficult and will take longer to learn and use in practice.

### Don't Compare Yourself To Others

This ties in with the previous point. Comparing your progress to others can hinder your progress.

Do not allow yourself to be driven to beat someone to the finish line. There is no finish line!

It is pointless and you risk learning less just to get bragging rights. If you find that people are influencing you to race, don't follow them or unfollow them if you are already following them.

### Take Breaks

Remember to take regular breaks while you are studying. Getting away from your screen for five minutes every hour (or less) and doing some form of light exercise will help you both physically and mentally as being glued to a screen for hours on end is not healthy.

Also, if you start feeling burnt out, take a day or two off from learning. A lot of people I have seen doing 100 Days of Code take the weekend off so don't be afraid to do so. After all, it isn't a race.

### Completing The Challenge Is Not The End

Upon completing the 100 days of code challenge, I got a certificate to denote I had completed it. But, it wasn't the end, more it was just the beginning.

Although I have finished it, there is still a lot more to learn and I plan on doing so. In fact, I decided to another 100 days of code challenge which is based on machine learning with Python, which I'm about half way through.

The main point is that this is just the start and you will be learning new things as you continue with a career as a developer. I have been in different roles in I.T for many years and the learning never stops so be prepared to carry on learning for as log as you want to stay in the industry.

Lastly and most importantly, have fun learning, try new things and enjoy the journey!

## Conclusion

I hope you found this informative and of use. Feel free to share your own experiences of doing the 100 days of code challenge in the comments.

Thank you for reading and have a nice day!