A while back, I decided to take on the challenge of starting the #100DaysOfCode challenge on the 2nd week of August in 2018. I felt excited at the time, but at the same time, it was very educational, yet challenging.
Now, I won't sugarcoat anything, and will be blunt about it. This is basically my honest reflection on my experience of what I learned from the #100DaysOfCode challenge.
My main focus for this challenge was to focus on improving upon my web development skills.
Today, December 4, 2018, I finally finished the #100DaysOfCode challenge.
What is the #100DaysOfCode Challenge?
The #100DaysOfCode challenge is a challenge where you code for 100 days straight for at least an hour daily. You don't have to be a beginner programmer, nor do you have to be an experienced one. You can focus on any type of programming: web development, mobile app development, desktop applications, etc.
I wrote a blog post introducing this topic in which you can find here: What Is The 100 Days of Code Challenge And How To Get Started
First, A Little Bit About Me
Because the #100DaysOfCode challenge is open to anyone, it is important that you learn a little about where I am, and what my level is.
Again, I mainly focused on web development for this challenge. I am a self-taught web developer, and I've learned the basics way back when I was in high school on my own time (since my school didn't offer any programming classes at the time). Oh yeah, I also learned C++ on my own time during my last 2 years of high school up to functions and enumerations. During my university years, I learned about object oriented programming and C#, as well as some basic self-taught Android App Development along with playing around with some MVC web development frameworks.
I didn't believe in open source coding at the time, so you won't find any evidence online of my self-claimed activities. Nowadays, I do upload to Github, but not my best projects.
The main priority for me for the challenge was to build my portfolio, practice creating simple full stack applications, as well as learning and using SPA frameworks (e.g. React.js and Vue.js).
Overall, I found the #100DaysOfCode challenge to be fun, educational, yet challenging at the same time. I like how it kept me accountable for the most part, and it gave me a good reason to execute and take action towards creating projects to add to my portfolio.
Languages, Libraries, Frameworks, and Applications
- React.js (only main concepts, no Redux)
- Vue.js (specifically Nuxt.js)
- Chrome Extension
When it comes to projects, I tried my best to avoid re-creating another common web application idea that others have done (e.g. blog, to do list, clone of a website, etc.) After all, what makes a person's portfolio shine is what makes them stand out as well as the quality of the code, etc. Not just another "me too" project.
Most of the projects I worked on can be found on my GitHub at https://www.github.com/ewliang. Some stuff are not on my Github since they were most likely projects I ended up deleting or they were my freelance projects for my clients.
In no particular order, here is a list of what I've made during the #100DaysOfCode challenge:
- Brevis URL Shortener - A full stack URL shortener webapp created using Nuxt.js and Node.js.
- SnapshotJS - A full stack webpage screencapture webapp created using Nuxt.js, Node.js, and Puppeteer.
- HackerNews Clone - A React.js based HackerNews website clone.
- Bookmark AI - (ongoing) A webapp that utilizes the Brain.js to automatically organize (or label) my bookmarks so I don't have to categorize them.
- WSJ Web Scraper
- CNBC Stock Prediction Web Scraper
- Freelance Client Gigs (made a website for 2 freelance clients)
- A simple Vuepress website with NetlifyCMS.
As much of the accomplishments were, not everything went according to plan. There were 2 main cons or "challenges" you can say that I faced during the #100DaysOfCode challenge.
1. The Challenge of Coding for 100 Days Straight
First off, it wasn't easy to code for 100 days straight, back-to-back. I did have some moments of downtime. Some were inexcusable, while a few were.
Sometimes I would skip a day, and others several days (like around Thanksgiving).
Maybe if I plan to do the 100DaysOfCode challenge again in the near future, instead of just shouting out my status updates on Twitter like everyone does and keeping a log, I guess one way to hold myself even more accountable is to vlog about it on my YouTube channel.
2. The Challenge of Not Knowing What To Make
At the beginning of the challenge, before it even started, I had a few ideas in mind of what projects I wanted to work on. Some I made, and the rest I dropped since it was no longer interesting to me.
One of the main struggles that I found myself facing was coming up with a interesting and hopefully useful project idea that I could work on. Now that was tough. Again, I didn't want to make something that many others who came before me have made already. That's just boring and I won't feel truly satisfied with such an accomplishment.
This is also one of the main reasons why I would have blanks and skips on my #100DaysOfCode challenge.
So in the future, if I were to participate in the challenge again, I would probably try to triple my list of project ideas before starting the challenge to guarantee a higher chance of success or consider open sourcing my more startup-potential ideas (which is unlikely).
The One Thing That Helped Me Accomplish the #100DaysOfCode Challenge Successfully
Now, being committed to something for a hundred days straight is tough. I had my own instances of gaps in the schedule, but I still kept on going despite that imperfection.
Many would try, and some would give up part way without even seeing Day 50.
There were a lot of factors that contributed to my success of seeing Day 100 of the #100DaysOfCode challenge.
If I were to exclude the obvious factors such as motivation, passion, self-discipline, etc., the one factor that stood out the most is that I had a plan made before going into the challenge. I created a list of project ideas I wanted to work on. I set a goal of what I wanted to learn and accomplish. I did some rough calculations of how much time each project might take and to see if it will be enough to fill up a hundred days' worth of time.
Conclusion - Do I Recommend The #100DaysOfCode Challenge?
If you are someone who just found out about the #100DaysOfCode challenge, and are thinking about giving it a shot, I highly recommend that you go for it. What I found out was most of the participants in the #100DaysOfCode consisted mainly of beginners who have little to no programming experience. The #100DaysOfCode is a great challenge to put yourself accountable to finally cross off learning how to program on your to do list. Don't worry too much about whether or not you will successfully make it to Day 100, because the important lesson is that as long as you gave it your absolute best effort, and learned something during the challenge, all is well. At the same time, you'll learn whether or not you truly like programming! Plus, it could be a way to connect with new people or perhaps, even landing a job (rare case in my opinion).