What I learned in #100DaysOfCode
Tags: 100daysofcode, beginners, codenewbie, career
Published: 2020-06-13 15:19:50

# What is #100DaysOfCode?

'#100DaysOfCode' is a challenge where you have to write code or learn how to code for at least 1 hour a day for 100 days consistently. You have to tweet about your progress daily using the hashtag and commit the details of the progress on a Github log. You can find more details about the challenge at [100daysofcode.com](https://www.100daysofcode.com/)

# How I started it?

I was casually browsing twitter and as I had followed some developers, I found some people talking about it. I clicked the hashtag and eventually landed on the site mentioned earlier.
At first, I was a bit hesitant to start it because I knew I was very inconsistent and I loved to procrastinate but I thought to myself: "You are a computer science student and it would be a shame if you don't do this challenge." So after some contemplation, I convinced myself to start this challenge. This journey began on February 13, 2020.

# FreeCodeCamp

Most of the people start this challenge by signing up on [freeCodeCamp](https://www.freecodecamp.org/) because it is very beginner-friendly and teaches tons of stuff, so I did the same.
I started the Responsive Web Design Certification and completed it by making 5 projects. Then I started the JavaScript Algorithms and Data Structures Certification. I finished up to Functional Programming but I wasn't understanding the JavaScript language. So I started [Web Developer Bootcamp by Colt Steele](https://www.udemy.com/course/the-web-developer-bootcamp) on Udemy, where I learned to make small projects in JavaScript and Bootstrap 4 (A framework of CSS). I got bored with this course because it's designed to just teach the basics of Web Dev.

# Getting intimate with JavaScript

I wanted to get my hands dirty with some real JavaScript so I started [The Modern JavaScript Bootcamp](https://www.udemy.com/course/modern-javascript) by Andrew Mead. I highly recommend this course to all the JS beginners because the teaching style of Andrew is great and he makes you do little challenges at the end of every video, so you don't just watch the videos, you're are completely engaged in the course.
Here I learned advanced DOM manipulation, complex array methods, data storage, object-oriented programming, asynchronous JavaScript, Babel, and Webpack. Don't worry if these terms sound cryptic to you because I didn't know them either when I started this challenge.

# Building Projects

During this course, I built two projects: Notes App by coding along with Andrew and Todos App as a challenge. But after the course ended, I made a [recipe app](https://app.recipe.hassansuhaib.com/) to practice the skills that I had learned.

# CS50

Meanwhile, I also continued Harvard's CS50: Introduction to Computer Science taught by David Malan in which I learned C, Python, and SQL. I solved all the problem sets which gave me a really hard time. This course made me understand coding on a deeper level. I will tell you all about this course in detail in an upcoming article.

# Skills Learned

Following are the skills that I learned during my journey

* HTML/CSS
* Bootstrap 4
* Git/GitHub
* Working with the Terminal/CLI
* JavaScript
* DOM Manipulation with JS
* Fetch API in JS
* ES6
* Babel/Webpack
* Python
* SQL
* & other miscellaneous stuff.

# Visual Representation of the code I wrote

This amazing site [sourcerer.io](https://sourcerer.io/hassansuhaib) gives an idea about the code that I committed to GitHub after starting my journey to this day.

# Advice for beginners

Beginners and Code Newbies, if you want to stop getting intimidated by the fear of learning how to code or if you want to tackle procrastination and become consistent, then my advice to you is to just do this challenge. The future is uncertain but the decision that you make today is going to decide what's going to happen next, so make that decision now! I guarantee that by the end of the course you will have learned a lot of things.

# Some resources for online free learning

* [freeCodeCamp](https://www.freecodecamp.org)
* [Codecademy](https://www.codecademy.com/)
* [Code.org](https://code.org/)
* [SoloLearn](https://www.sololearn.com/)
* I will recommend [CS50](https://www.edx.org/course/cs50s-introduction-to-computer-science) if you quickly want to take it to the next level.
* There are some awesome YouTubers that teach coding, you can check them out! My favourites are [Tech with Tim](https://www.youtube.com/channel/UC4JX40jDee_tINbkjycV4Sg/featured) and [Traversy Media](https://www.youtube.com/user/TechGuyWeb).

# My tips

* In addition to the tutorial's code, write your own code. You'll understand things better this way.
* Define your own pace, don't compare yourself with others!
* Even though the challenge allows a little bit flexibility, try to stay consistent.
* Don't rush! Make sure you completely understand the current topic and then move on to the next one.
* Instead of sticking to tutorials, complete one and start building your own stuff.

# Conclusion

* This challenge made me not just a better coder but a better human being.
* It taught me how to stay consistent and get over procrastination.
* I have learned skills that are very important to excel in my career.
* I learned some stuff that isn't even covered in tutorials.

You can achieve it too! You're just one decision away.