The 100: Days Later
Hi there. If you're reading this, then that probably means you're one of the hundred people looking for some motivation right now, and somehow you ran into the inspiring image of this article.
Then you read the title and 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 still suggest checking it out. You'll definitely get drawn into the post-apocalyptic vibe, how mankind tries to rebuild society, and the way the series challenges your reasoning about leadership and making choices when there are barely any good options left.
Honestly, I only really started enjoying it around the fourth episode.
Then somehow I found myself cheering by the finale of Season 5.
Fun fact: Episode 1 of Season 5 is titled "Eden".

Anyway, where was I again?
Oh yeah. What this awesome post is actually about.
Okay, quick backstory.
I started the #100DaysOfCode Challenge last November 6, 2020, and I'm proud to say that today, I've done it.
I've completed the 100 days.
So what the heck is this really about?
I've been reading different blogs from developers online, and I've seen the #100DaysOfCode Challenge being mentioned a lot.
The idea is actually pretty simple.
You code consistently for 100 consecutive days and post your progress on Twitter or whatever social media platform you're using, together with the tag #100DaysOfCode.
There aren't really any strict rules about which programming language you should use or what kind of projects you should build.
You just have to keep doing something every day for 100 days.
Being the adventurous lad that I am, I gathered all the courses I wanted to study, made a list of everything I wanted to accomplish, and started Day 1 on November 6 last year.
I even wrote a post about it back then, which you can read here.

I was full of spirit during the first few weeks.
I eagerly followed tutorial videos and worked through the labs in Coursera's Git for Developers using Github, moved on to Todd McLeod's primer on Visual Studio Code, and then started working my way through Al Sweigart's popular Python course, Automate the Boring Stuff with Python.
I was actually able to get access to all these courses for free through various Udemy coupons and a government-sponsored Coursera study program.
So yeah, that definitely helped.
The uphill
Of course, there's that nice spike of satisfaction whenever you finish a quiz, lab, or checkpoint in a course.
You finally get the answer right.
You finish the exercise.
You see that little green checkmark.
Life is good.
Then there's the other side of it.
You reach one particular lab that you just can't get past because it's too damn hard.
You spend hours trying to figure it out, decide to sleep it off, wake up the next morning, open the exact same lab...
And you're still stuck.
Just on a different day.

You also get to see the rabbit hole, but you never really reach the end of it
Another thing I found tiring was dealing with unexpected problems.
Whenever I ran into something that didn't work, I'd search the error on Google, open the first three to five links, and start trying the suggested solutions.
Sometimes one of them worked.
Most of the time, one solution would just give me a completely different error message.
So naturally, I'd search for that new error too.
Then I'd read another few links.
Watch a YouTube video.
Try another command.
Get another error.
Search again.
And before you know it, you've gone deep into a rabbit hole.
You originally wanted to solve one tiny problem, but somehow you've uncovered five other problems along the way.

But you know what?
Something good actually came out of all that rabbit hole-digging.
I started noticing when the new problems I encountered were slowly pulling me away from the actual problem I was trying to solve.
And when that happened, I learned to stop, reorganize my thoughts, and ask myself whether I really needed to keep digging.
One example was when an instructor in a KodeKloud course was installing Docker on his Ubuntu machine while I was using a RHEL 8 EC2 instance.
I ran into an error while using one of the convenience scripts from Docker's website.
I honestly can't remember the exact error anymore.
But I had a feeling that it might have something to do with RHEL 8.
I never actually confirmed whether that was the reason because, instead of continuing to Google the error, I decided to check if AWS had a RHEL 7 AMI available.
Unfortunately, it didn't.
So I tried CentOS instead.
And what do you know?
Everything worked.
So yeah, I guess after a while you somehow develop this weird superhuman sense for detecting when a problem is about to lead you into an endless rabbit hole of error messages.
Then you decide whether it's worth continuing down that path or if there's another way to get where you need to go without wasting another three hours.
By the way, somewhere along the way I also learned about the term technical debt.
Although I wouldn't really say it applies to every situation like this.
What I did learn is that technical debt is something you shouldn't just allow to pile up forever because eventually it'll come back and bite you in the bum.
I might still do some light searching someday to figure out why that Docker convenience script didn't work on RHEL 8 after all.
You know.
For closure.
Reality setting in
A few weeks passed, and eventually I hit my first downtime.
I was still doing the labs, but I wasn't finishing nearly as many as before.
There was a lot going on at work at the time, and the additional mental strain of doing labs and studying on the side was slowly starting to take its toll.
So I reduced my activities for a few days.
As much as I wanted to just stop and rest completely, that little f*cker inside my head simply wouldn't let me abandon the challenge.
I also wasn't able to follow the original plan I made during Day 1.
For example, I never ended up taking another Web Development Course because I decided to focus more on automation instead.
The second and third months became a bit of a rollercoaster.
In total, I had around three periods where I really slowed down.
And I have to admit, there were plenty of doubts throughout those 100 days.
There were moments when I genuinely wondered whether anything meaningful would come out of all the effort I was putting in.
Maybe I was wasting my time.
Maybe none of this would actually help me.
Maybe things wouldn't pan out the way I hoped.
And weirdly enough, I didn't try to completely shut those thoughts out.
I entertained them.
I let them sit in my head.
But somehow, there was this stubborn version of me that simply refused to throw in the towel.
And you know what?
He managed to beat those fears every single time.

To close this chapter
Now that the 100 days are finally over, I went back through all my tweets from the beginning and allowed myself to relax for a bit.
I know I didn't produce a huge number of projects.
But looking back, I did learn a lot about Linux, Python, Git, automation, and even just how I approach problems in general.
And weirdly enough, after everything, the 100 days actually felt too short.
Which is why I've decided to go on another quest.
Round 2 of the #100Days Challenge.
Except this time, I'm taking on two challenges at once:
- #100DaysOfCode
- #100DaysOfFit
The #100DaysOfCode will basically continue where the first round left off, but this time I'm limiting myself to topics that are more relevant to what I'm currently doing at work:
- Apache Kafka
- Docker and Kubernetes
- Using Python for automation
- AWS SysOps, although this one's more of a personal goal
Then there's #100DaysOfFit, which is actually two smaller challenges that I decided to merge into one quest:
- 100 Days of Fasting: consistently fast for 16 hours
- 100 Days of Running: run for at least 30 minutes, either outdoors or on a treadmill
Again, I'm not expecting everything to go smoothly for the next 100 days.
It'll be difficult.
It'll probably get overwhelming every now and then, especially when life decides to step in.
I'll probably get stuck on another problem.
I'll probably spend entire evenings buried in documentation.
And there will definitely be days when I'm too lazy to read and decide to watch YouTube videos instead.
There will probably be a lot of questions as I start again.
But hopefully, there'll also be fewer what-ifs waiting for me at the end.
"You can. You should. And if you are brave enough to start, you will."
- Stephen King