11 Things I Learnt from my #100DaysOfCode Challenge, and why you should take the challenge.
So I recently(7th of August, 2020 to be precise) just completed my #100DaysOfCode Challenge. π
(find more about the challenge here), so I thought I'd share some of the benefits I gained from the experience, that may motivate you to take the challenge if you haven't already, especially if you are just starting out, or if you want to level up your developer skills.
Backstory
I have been wanting to take the challenge for a while before, but I always found an excuse as to why I couldn't be able to see it through. This would however change with the Covid-19 pandemic outbreak, that forced parts of the country to be put on lockdown. With a lot of time on my hands, I finally decided to take the challenge because, what's there to lose?π€·πΌββοΈ Little did I know that I did have a lot to gain.
Inspired by a close friend, on May 1st 2020, I made a commitment to start the #100DaysOfCode Challenge, and these have been some of the benefits that came along with that decision.
1. I gathered a lot of knowledge. π§
Being an autodidact, the process of learning new things almost every single day is always an exceptional experience for me. I started from the very basics of Web Development (HTML, CSS and Javascript), to learning a modern Front-End framework (VueJS) and a backend framework (ExpressJs). It was also a good refresher as I also got into the nitty gritty of how the web works and how all these web technologies come together to power up the web as we know it.
One thing I love most about tech is that there's always something new to learn everyday.
2. I discovered my preferred learning style and pace. π
Committing to putting in a minimum of 1 hour of coding everyday for a 100 days wasn't a walk in the park as I thought it would beπ. It brought with it a lot of changes to my daily lifestyle.
First, it meant that I had to find the time to code each day, have an efficient learning path plan, had to determine what works for me and what doesn't, and how to fit it into my daily schedule. As a result, I had to try out every possible time and task combinations that would work in my favor.
I found out that at night I'm always weary, my concentration is usually very poor, and I usually just want to relax my mind and do light tasks. I discovered I'm more suited to coding during the morning hours, preferably from around 10am to around midday. Now I had to take care of high priority tasks very early in the morning first, then settle to code, and finally taking the rest of the day off to tackle other things.
3. I got better at time management and goal setting. β²
This has been among the major benefits that came along with the challenge. This is because I had to plan out my days in advance every night before retiring to bed. This not only enabled me to prioritize important tasks, but it also gave me a sense of being in control of my time, where previously I would find myself wasting huge amounts of time mindlessly scrolling through my social media feeds soon as I woke up, and/or at random times of the day.
I still use these time management and goal setting strategies to plan out my days in advance and to get things done.
It takes a lot of determination, thoughtful planning, perseverance, and grit to crush your goals.
4. I picked up other habits. βπΌ
I found myself reading a lot during this period. I'd read anything interesting I came across, from blogs, articles, old newspapers, to random materials that caught my eyes on the internet.
I also picked up journaling and writing, that came as a result of planning out my days in advance, setting goals, and documenting my 100 Days Of Code Challenge.
Fun fact : This is what also inspired me to take the initiative to start writing, for my blog and am loving it!
5. It gave me a sense of progress. β
Tracking your progress as a developer can be quite challenging. At one point you may find yourself being overwhelmed by the vast amount of technologies and frameworks available at your disposal, and you may feel like you're not really making any progress in your learning that may come as a result of trying to learn all these things.
The 100 Days of code challenge enabled me to structure my learning into small chunks that I tackled progressively, while documenting about it as the challenge recommends you to do. I found FreeCodeCamp's structure for learning to be very efficient ( If you are feeling confused about where to start, this might be a good starting point). They teach you the core concepts that you need in a language or framework, and then they challenge you to build a project incorporating all the concepts together to create a fully working system. As I look back and reflect, I am able to clearly see the progress I have made since day one.
6. It gave me the motivation to commit to other things. π
As awful as I am at fully committing to something, deciding to commit to this challenge was an eye opener as it made me realize that I can achieve anything I set my mind to, as long as I put in the effort. At first I was not sure I'd complete the challenge, but I constantly had to inspire and motivate myself to continue through the challenge no matter what, and how my day was. This has motivated me to challenge myself beyond my limits and do the things that are way beyond my comfort zone.
Also, Being a designer, and because the same rules apply, I am also considering to taking the 100 Days of Design Challenge.
Because of this I also decided to commit to keeping a blog. π
Now to more tech related gains
7. I became better at problem solving. π¨πΌβπ¬
This is one of the most important skills you need as a developer. Using acquired knowledge to build up a working project has enabled me to be able to visualize a problem, analyze it, and be able to break it down into smaller pieces that can be solved individually and gradually. This method has proven to be effective when am trying to build a project and am not sure where to start.
Being able to break a problem into smaller problems will enable you to figure out the tools and methods, and all the steps that you will use to solve these problems.
8. I got better at dealing with Imposter syndrome. ππΌββοΈ
We've all been here right? The feeling that you're not good enough compared to someone else, software development isn't for you, maybe you're using the wrong framework, all these negative thoughts we get whenever we stumble upon some difficulty in whatever we are trying to achieve.
Having these thoughts is normal. As I came to figure out my preferred learning methods, I came to understand that the journey won't always be the same for everyone, some people sail fast while others take a little more time, effort and practice to get good. Just be patient and keep practicing.
Do not compare yourself to anyone, always strive to be better than who you were yesterday.
There will be days when you will feel unmotivated or wont feel like doing anything, or you might encounter a persistent bug. I personally found that taking breaks, or engaging in other activities does help to clear my mind. I've had those moments when I am doing something, and a random idea strikes, and when I try to implement it in my code, it just works!π
Also, asking for help from your peers when you cant seem to find the solution on forums and the internet in general also helps. Remember, in the software development world, there are no stupid questions.
9. I discovered a lot of great learning materials and resources. π
To be able to complete the challenge successfully, you have to have a solid goal on what you want to achieve by the end of the challenge. For me I, wanted to improve on my skills, to learn a modern Front-End framework, and also learn a Backend framework, to make coding a habit and to master the JavaScript programming language π.
This means I had to gather all the resources and materials I needed beforehand. You don't want to be sitting in front of the computer and start figuring out what you want to learn at that particular moment, because it will kill the drive for learning that you have. I had to constantly search the internet and gathered a good number of materials, resources, websites, forums, YouTube channels, and tutorials for learning different technology stacks, which I may write about in another article in the future.
However, a good place to start would be the 100 Days Of Code Discord Channel.
10. I became a better developer overall. π¨πΌβπ»
By far this has been my biggest gain from the challenge. I have made a very big improvement as a developer. I greatly improved my problem solving skills by learning the correct methods of approaching and tackling problems.
I now know about good coding practices, design patterns and writing clean code. I am now way better at data structures and algorithms, at debugging code, I became better at using Google (yes it's a skill!π ), asking effective questions when describing a problem, using documentation, I now also use Github more effectively, and I am more confident as a developer.
11. I gained self-discipline from the consistency. π₯
This has also been one of my biggest takeaways from the challenge. Previously I'd procrastinate about coding. I always found it really hard to sit in front of the computer and just start coding. I'd find myself watching all these tutorials without actually putting to practice what I'm learning. I finally escaped the so called Tutorial Hell.
Since the main rule of the 100 Days of code is to spend a minimum of 1 hour of practical coding each day, I had to force myself to adapt to this. I opted to practicing and learning from written media, such as websites and blogs as opposed to videos, which forced me become more hands on. Getting used to this was a challenge, but with consistency it got easier with time. Now I find myself even coding for more than 2 or 3 hours without even realizing!
I can now proudly say I have made coding an everyday habit, and that for me is a very big win. πͺπΌ
Conclusion
TLDR:
Taking the 100DaysOfCode challenge has been one of the best decisions I've made. From making a couple of friends along the way, to working on a lot of projects that I am able to add to my portfolio(and keeps my Github looking prettyπ), I fell in love with the process.
If you are a beginner developer or looking to ramp up your developer skills, or you have been dreading to take the challenge, I strongly advise you to take the challenge! You will discover a whole new world, full of community support and people who will motivate you, and your skills will improve greatly as a developer!
If you are not a developer but want to take the skills you have a notch higher, if you are trying to form a habit, or trying to get rid of one, be sure to check #100DaysOfX Challenges Website to find out more available challenges that may make you a master in your field.
Thanks for the read!π
Feel free to share it and impact someone's life.
If you have taken the challenge, what motivated you to do so? what did you gain from the experience?