Ever heard the old saying, "Sometimes the hardest thing is the simplest one?" Well, I'm here to tell you that updating FreeCodeCamp's curriculum is like trying to untangle headphones seemingly easy yet hard.
So, grab your favorite snack and beverage, and join me in reminiscing on the hurdles, moments where I questioned my life choices and sanity, and cheering the ultimate victory, making my first pull request to FreeCodeCamp's curriculum.
I was casually scrolling through the Issues tab when I stumbled upon this gem:
I couldn't help but think, "Adding a new lesson? Well, that seems as easy as pie!" Little did I know that I was going in for a bumpy ride.
At first, I just made a tiny edit to a lessoneasy, right? But then, one of the maintainers politely commented, "Hey, you need to insert a whole new lesson for the box-sizing project" "Oh, no big deal", I thought. I cracked open the Contributing Guide, ready to conquer the world... or so I thought. Turns out, I couldn't find the right spot to add my brilliant revision. So, like a lost explorer with a faulty map, I fumbled with the step tools. Heck, I fumbled so much that I had to call it quits, close that pull request and start fresh.
In Round 2, I decided to spice things up by getting my colleague, Toby, on board to help with the box-sizing property madness. Things were looking rosygreen checks were popping up, and I was celebrating each one like it was New Year's Eve. But then, my moment of triumph came crashing down when I spotted not one, but two angry red checks, glaring at me like disapproving traffic lights.
Heartbreakingly, I had to start all over again. Round 3 saw me adding even more zest to the box-sizing property lesson and tweaking a few steps. Once again, I pushed those commits, crossed my fingers, and waited for the test results. I practically jumped for joy when I saw the browser test pass, but just as I was about to break out the confetti, a red check spoiled the partythis time on the translation test.
My heart sank, and I was all out of ideas. Just when I was about to throw in the towel, an angel appeared in the form of a comment.
Remember when I mentioned that an angel came to my rescue in the form of a comment? Well, feast your eyes on this beauty:
Changing JSON files. Easy peasy, right? With the help of my trusty friend, Moshe, from the FreeCodeCamp Discord community, we tackled the task like pros. Pushed those commits, and boom, the web browser test waved the green flag. I thought I had this curriculum update thing in the bag, but a new challenge emerged. The new lesson needs to be translated into Spanish and Chinese. Now, my knowledge of Chinese is "你好" (Nǐ hǎo = Hello), and in Spanish, I was limited to "¿Qué lo que mi gente?" (What's up, my people?) or just plain "Hola." Not exactly translation material. So, I made a bold move of going to FreeCodeCamp's Spanish and Chinese Discord channels and unleashed my secret weapon: Google Translate. I begged for help in translating my lesson into their languages. Luckily, I met Germán from the Spanish channel and miyaliu from the Chinese channel. They graciously submitted their translations of my lesson, but here's the kicker, I got another red X after these commits were pushed. Why? The translations were added right into instead of the designated translation tool, Crowdin.
But hey, here's the bright side, the maintainers decided to keep it anyway. Victory was almost mine, but alas, there was one more twist in this comedy of errors I had to conquer.
A maintainer dropped a bombshell: I had to revert some commits. Panic mode activated! I never reverted a commit in my life, so I'm not wrong for feeling nervous doing the commit-reverting spell, right? So there I was, embracing my inner nerd, scouring the depths of GitKraken's magic book, and learning the revered art of the revert command. It was time for my commit-reverting debut! Or so I thought...
Turns out that I performed the spectacular revert-the-wrong-commits dance SMH! 🤦🏾 After I'd finished playing musical commits, I gave the real errors the boot, pushed my shiny new commits, and glued my eyes to the screen, watching the coding tests load in anticipation.
Like a plot twist in a sitcom, it happened! More green checks flashed on my screen. Everything fell into place. The maintainers gave their stamp of approval, and just like that, my PR was officially merged! 🥳
It was a long battle, but all of the struggles were worth it. Now before I end my epic tale of triumph, tears (mostly from laughter), and a whole lot of green and red checks, let me share a few golden pieces of wisdom that I've learned:
Always Test your commits before pushing them
Collaborate with others
Now, my friend, why not take a plunge into the world of contributing to FreeCodeCamps curriculum? You'll never know, might just become the hilarious, challenging, and incredibly rewarding adventure you never knew you needed and inspire others to join you! 😁
Cowgirl Taming a Horse by deskridge
Fingers Crossed GIF by GIPHY Studios 2021
Happy Season 3 GIF by The Simpsons
Lets Go Adventure GIF by HARIBO
Oh Brother No GIF by Preity G Zinta
Struggling Season 9 GIF by The Simpsons
Terry Crews Nbc GIF by America's Got Talent