Hi there, if you're reading this, then that means you're one of the hundred people who's looking for motivation right now and you ran into the inspiring image of this article, and as you read the main title, you found yourself wondering what this awesome blog is all about.
Well, before anything else, I just want to point out that this isn't about the thrilling sci-fi series The 100, although I'd suggest that you check it out - you'll definitely get drawn to the the post-apocalyptic vibe, the showcasing of how mankind rebuilds society, and the way they challenge your reasoning on leadership and making choices when you have no options at all. Honestly, I only really enjoyed it on the 4th episode - eventually found myself cheering on the finale of Season 5.
Anyway, where was I again - oh yeah, on what this awesome post is all about. Okay, just a backstory, I started the #100DaysofCode Challenge last 06-Nov-2020 and I'm proud to say that today, I've done it. I've completed the 100 days.
I've been reading various blogs from different developers online and I've seen the #100DaysofCode Challenge being thrown lot. Basically, the premise of this challenge is to code consistently for 100 consecutive days, and then post your progress on Twitter or any social media platform along with the tag #100DaysofCode.
There are no rules on what programming language to use or what projects to work on. You just have to do it every single day for 100 days.
Being the adventurous lad that I am, I gathered and list down all the courses that I'll study for 100 days and started my Day 1 on 06-Nov last year. I've also written a post back then - you can read more about it here
I was full of spirit during the first few weeks. Eagerly following the tutorial videos and following the labs on the Coursera course on Git for Developers using Github, steering towards Todd McLeod's primer on Visual Studio Code, and then working my way towards Al Sweigart's infamous Python course, Automate the Boring Stuff with Python. I was able to avail all these courses for free through the various coupons in Udemy and sponsorships for a Coursera study program provided by the government.
Of course, you enjoy the spikes of satisfaction after finishing quizzes and labs on each checkpoint in the course. But then there's also the other side of things where you just can't get pass a certain lab because it's just too damn hard and you try to sleep it off, only to find yourself still stuck, just on a different day.
Another thing which I find tiring is when I run into impediments, I try to search the problem in Google, check out the first 3-5 links that show up, and then do the suggested solutions. The recommendations do work sometimes, but most of the time, they return a new error message in the code so I try to search the new issue again, read the first few links, watch some youtube videos every now and then. You then find yourself going deep into a rabbit hole - you only want to solve that one issue but instead uncover a lot more along the way.
But you know what, something great did came out this rabbit hole-digging. When I see that the succeeding issues are derailing me from the main issue, I stop myself, and then re-organize my thoughts.
An example of this was when the instructor in the KodeKloud course was installing Docker in his Ubuntu machine and I was using a RHEL8 EC2 instance. I bump into an error when I was running the convenience scripts form the Docker site (can't remember what the exact error message was). I had a feeling that it might have something to do with the version 8 of RHEL, though I never figured out if that's really the case since I didn't googled it and instead check if AWS has a RHEL7 AMI. Unfortunately they don't so I settled for CentOS, and what do you know, everything went well.
So yeah, I guess you somehow develop this superhuman sense of detecting if problems might lead you on an endless rabbit hole of error messages and you decide whether it's worth googling or you just find an alternative way that could save you time.
By the way, I just learned that there is a term for this - technical debt, although I wouldn't say that this always applies to every situation. I also learned that you must not let technical debt accumulate because it will bite you in the bum.
I guess I might do some light searching on why the convenience script did not work for RHEL8 after all.
Weeks passed and I encountered my first downtime. I was still doing the labs but I managed to finish just a few. I had lots of stuff going on at work that time and the additional mental strain of working on labs on the side were slowly taking a toll on me.
So I reduce the activities on the side for a few days. As much as I wanted to just rest, that little f*cker within me just wouldn't let me.
I also was not able to fully follow the plans I laid out last time - I didn't take Angela Yu's Web Development Course since I focused on automation. The rest of the second and third month was a rollercoaster - had three downtimes total.
I have to admit that there were a lot of doubts during the 100 days. There were actually instances when I was struck by the fear that nothing great will come out of all these efforts, that I might just be wasting my time, and that things may not pan out well in the end,
I wanted to entertain these thoughts. In fact, I welcomed these in my head. But somehow this stubborn version of me just wouldn't throw the towel.
And you know what? He manage to beat those fears every single time.
Now that the 100 days are finally over, I went back to all my tweets from the start and relaxed for a bit. I knew I haven't produced lot of projects, but I did gained a lot of learnings about Linux, python, and git.
I also felt the 100 days was too short, which is why I decided to go on a new quest - Round 2 of the #100Days Challenge. But this time I'm embarking on two #100Days challenge:
The 100DaysofCode is simply a continuation of the first round, but I'm limiting myself to these topics since these are the current requirements in my work right now:
- Apache Kafka
- Docker and Kubernetes
- Using Python for Automation
- AWS SysOps (this is more of a personal one)
The 100DaysofFit is really two endeavors which I just merged into a single quest.
- 100 Days of Fasting - consistently fast for 16 hours
- 100 Days of Run - run for at least 30 minutes (outdoor or treadmill)
Again, I won't expect things will go smoothly for the next 100 days. It'll be hard and it can get overwhelming especially when life tries to step in from time to time. I'll probably get stuck on some problem every now and then, and I might spend some days reading some documentation or watching Youtube videos on days I'm too lazy to read.
There will be a lot of questions as I begin anew, but I know there'll also be lesser what-ifs at the end.
"You can. You should. And if you are brave enough to start, you will."
— Stephen King