My First #100DaysOfCode Experience
I completed my #100DaysOfCode challenge on 20th April 2018. In case you are wondering what it is, I wrote an article when I started the challenge. The whole idea of the challenge is that you publicly commit to coding every day for 100 days. During this period, my experience has both been overwhelming and underwhelming. In this article, I hope to highlight my experience and also to offer advice to others doing it to make it more effective and gain the best out of it.
My Journey
A little about my history. I started out programming in November 2016 but didn’t really get serious until a year later when I decided to really get serious with coding. Setting goals are mainly about the processes, not the end result. I knew it would be hard for me. So I started the #100DaysOfCode challenge to have a process to help me with my goals and as a way to code daily and do projects. At this time, I had no project on my GitHub that I made.
Fast forward to January 10th, I decided to commit myself and start the challenge
Going into the challenge, my goals were:
Improve my JavaScript skills
Improve my CSS skills (Flexbox, CSS Grid, Animations, transitions, transforms, etc.)
Getting comfortable using Sass
Start #30Days30Sites
Learn Vue
Learn new tips and tricks.
Finish at Least five online courses (preferably Udemy)
Write technical blog posts.
Build stuff. Lots of them!!!
Looking back, I achieved all my goals except the blogging part and Udemy Videos.
Challenges Encountered
I discovered a lot of people don’t usually talk about this and are quick to list out their achievements but I’m gonna be honest and state the challenges I faced:
My lack of Internet was a constant issue throughout this period. While this may not totally affect my learning, it slowed me down and sometimes left me frustrated. This may not be the case for others but living in a third world country has its own issues and this is definitely one of them.
Okay, maybe this shouldn’t a challenge but I noticed some people actually restart or even quit the challenge because they weren’t tweeting daily or stopped at some point. This also holds true for updating logs and keeping progress on GitHub as I had to delete mine because I left it for too long and it became a burden for me.
During this period I felt a huge bolt of impostor syndrome because I felt I needed to have projects to show off, I discovered that the times I feel it the most is when I want to begin a new project and I’m stranded not because I don’t know what to do but because I doubted myself if I can pull it off. Also, if I download someone’s code from GitHub and look at the code (yes, I do that!), I feel hopeless sometimes because I begin to feel I can’t write code like that, but it’s important to know there are different ways to achieving the same result.
Some days I feel weak and tired and unable to even put on my computer. Even if I do, I’m out of ideas of what to do. Sometimes, after work, I’m tired, I sleep and wake up in the night, and struggle to get up, when I eventually do, I will have to surf the Internet or go through Twitter first to arouse myself because if I open my editor immediately, I will definitely doze off.
Projects Completed
Like I said earlier, I haven’t completed any project prior to when I started the challenge, so my focus was on this and in the end, I was able to complete the following projects:
Number Facts Machine:  This is a Number fact Machine that shows a fact base on a value inputted by the user. It could be a number (integer), a year or a date. The data is gotten from the Numbers API (GitHub repo)
Quizzit:  A simple app that asks a series of question and outputs your score and a gif base on your score (GitHub repo)
Currency Converter — An app that converts Euros to Dollars, made with the Fixer.io API (GitHub repo)
Todometer :  A todo task manager made with Vue (GitHub repo)
30 Days, 30 Sites — A challenge where you receive daily prompts to build 30 simple web pages in 30 days (It doesn’t have to be)
Day 2 (Events web page) — GitHub repo
Day 3 (Tourism web page) — GitHub repo
Key Takeaways
- Community is great :  When the going gets tough, the community is always there to support and encourage you. Also, if you are are not feeling like it, you can be sure to get inspiration from amazing people.
- Consistency Amplifies Skill level :  If you can learn to do something consistently, you’ll tap into a much greater superpower than the habit itself: the belief that you’re completely capable of changing your behavior. Once you’re capable of changing your behavior, you’ll be capable of making massive changes because little things done repeatedly lead to big changes in our lives. The result is a significant increase in your skill level.
With consistency, you move from a place of conscious incompetence to unconscious competence.
- Not giving up is the best way to go: Programming is hard and you are bound to struggle. There will be plenty of moments you will be like “To hell with this, I give up”. I had those moments too, everyone does. But I bet you, if you don’t give up, it will begin to make sense, those concepts that seem impossible to understand will suddenly make sense you begin to wonder how you didn’t get it the first time, bugs you couldn’t fix will become easy, it’s just like magic. Life might get in the way and you might miss some days, but as long as you get back on track, it doesn’t matter. I’d recommend you continue rather than starting all over again, besides you can bend the rules to suit your schedule so you get to achieve optimal results at the end.
- Enjoy the journey: Programming is a journey, somehow it never ends as technology always continues to evolve. As Greg Anderson said:
“Focus on the journey, not the destination. Joy is found not in finishing an activity but in doing it”. Eventually, you will have the desire to keep going and make it a habit to code It does not matter how slowly you go as long as you do not stop.
- Set meaningful, small and measurable goals: Trying to do 100 days of coding is kind of insane. The key is just setting reasonable goals and leaving in some time to rest and unwind.
- Share your struggles and success: This one is so important. It could be through blogging or simply tweeting about it. You never know who is watching. Your tweets might be the reason someone kept going. Also, it is important to share your struggles and mistakes as this will help someone to avoid repeating the same things. Small acts such as liking someone else’s tweet can go a long way in encouraging the person.
- Celebrate Small wins: Don’t be too hard on yourself. Most times, it is easy to get stuck in the moment especially when we are battling a bug or not feeling motivated and we forget how far we have come. Pretty sure if you look back, you’d be proud of how far you have come and things you have achieved.
What did I gain?
I built my first ever complete project during this period, the feeling was sequential to having your first ever orgasm, okay maybe the comparison was too much but you get what I mean.
I certainly improved my JavaScript skills, most notably ES6+. This has led me to write more simple, elegant and easy to read code. Also, I learnt how to make use of the XMLHttpRequest API and the much better Fetch API.
I got feedback on my projects and got a lot of my questions answered quickly. This was one of the best parts of the challenge. To ensure you receive replies quickly, always ensure you use hashtag #100DaysOfCode
I started learning Vue. This is something I’m proud of as I was always feeling scared to learn a framework. I decided to learn Vue mainly because I read a lot of articles that suggested it was easier to learn compare to react. I started on day 50 and devoted the rest of the challenge it.
I met awesome people who are always ready to give advice or offer help to my code challenges. I also gained followers on Twitter, this may not sound relevant but having a social audience is good as a way to showcase your skills and to network, You just never know.
Finally, during the challenge, I applied for an Internship. Towards, the end of the challenge, I received a call that I was accepted. Although this affected my productivity in the final days of the challenge as I had to do a lot of travelling and preparations for the Internship, it capped off a great period for me.
Will I do the challenge again? Hell Yeah! In my next challenge, I hope to tackle the blog aspect and work on the FreeCodeCamp new curriculum. Since I have started learning React (part of the Internship), I might as well build some of the Frontend projects with it.
Thanks to The Shalvah, Gledsley MĂĽller, Tobi, Kuba Michalski, the #100DaysOfCode Twitter and Slack community and to all the Chingu members who have been of tremendous help during this period.
If you are still unsure whether to start the challenge or not, read this article by Karina Islam. If that hasn’t convinced you yet, search #100DaysOfCode on Twitter and see all the people involved. If you commit to it, I promise you won’t remain the same after 100 days.
“Don’t wait until everything is just right. It will never be perfect. There will always be challenges, obstacles and less than perfect conditions. So what. Get started now. With each step you take, you will grow stronger and stronger, more and more skilled, more and more self-confident and more and more successful.”
— Mark Victor Hansen
Cheers!
If this was helpful, interesting, or caused some other positive emotion, please share!