Post

Week 8: My Redemption Arc

Week 8: My Redemption Arc

Week 8: My Redemption Arc

Introduction:

Hey there, welcome back to another yap session - where I talk endlessly about CS50.

For those of you who don’t know what CS50 is - it’s a course any noob can take and learn the basics of computer science. But let me be clear: this isn’t just another tutorial-hell YouTube series. This course teaches you how to solve problems, how to think, how to break problems down and crush them. It’s not about learning one language or framework - it’s about shaping how your brain approaches tech.

Now, before I dive into what this week was about, I gotta get something off my chest…

I actually dipped my toes into web development about 2-3 years ago. But let’s just say… I had the wrong people around me. Every time I tried to learn or build something, the vibe was off. People would say stuff like:

“Why are you learning HTML? No one pays for websites anymore.”
“Web dev is dead.”
“This code is trash. You’re not good at this.”

Yeah. That kind of energy. No support, no direction - just noise that made me doubt myself. So I quit. I left the whole web dev scene thinking maybe they were right.

But guess what?

Now I’m back.

And I’m not the same person. My mindset? Unbreakable steel. I don’t care what anyone says anymore - I’m here to build, learn, fail, and come back stronger every damn time.

So with that spirit, I reached Week 8 of CS50. And man, let me tell you - this was the most fun I’ve had so far. It brought me back to what I originally wanted: to build cool stuff, to express myself with code, and to actually see what I create in the browser.

This week was about front-end dev - HTML, CSS, and JavaScript. I got to build my homepage. I learned, I debugged, I rewrote, I raged, and I laughed.

So if you’re ready - let’s dive into what went down in Week 8: The Comeback Arc.

Experience with Lecture Series

Alright, let’s talk about the lecture.

What makes this week actually special is that unlike every other frontend crash course you find online, CS50 didn’t throw me into a never-ending tutorial rabbit hole. You know what I’m talking about - those 4-hour, 6-hour, or even 12-hour “full HTML course” videos that could literally put an AI to sleep. Just one markup language and you’re already stuck in tutorial hell.

But this? This was different.

David didn’t just slap HTML in your face and say “figure it out.” He started from ground zero. Before any code, we learned how the web actually works - like what really happens when you type a URL and hit enter. We’re talking:

  • HTTP & HTTPS protocols
  • DNS and IPs
  • Request-response cycle
  • Error codes (yes, including the glorious 404)
  • How headers work
  • And even some internet history for the nerds

And he explained it all using analogies. Not just definitions. Like real human-style teaching, not robotic textbook stuff.

Now, since I already have some CS background (shoutout to NetworkChuck - the crazy bearded hacker dude), I was already familiar with a lot of this. But still, it didn’t feel boring. It actually felt fun to revisit everything, and this time with a fresh perspective.

Now here’s where things really hit me:
The difference between how CS50 taught frontend vs how my university teacher tortured us with it.

In uni, frontend felt like a punishment. The teacher would literally hand us a printed picture of a webpage and say, “make this using HTML/CSS.” That’s it. No explanation. No guidance. Just build it and don’t even think about Googling stuff.

I didn’t even know what the hell padding was back then. And we weren’t allowed to search it up. How are you supposed to make a webpage if you can’t even learn on your own terms?

But CS50 flipped that mindset.
We weren’t spoon-fed answers either - but we were encouraged to look them up. To explore. To mess around on MDN docs, W3Schools, or any other resource we could find. That’s what made this feel real.

Because in the real world? You learn by doing, searching, testing, and breaking stuff - not by memorizing code

That’s the energy I loved this week. That’s what kept me going.


What I Experienced Throughout The Week

So when this week kicked off, the lecture started off nice and easy - a quick refresher on how the web works.

But then came HTML - and even though it’s technically a “markup language” and not a programming one, things got spicy. For me, it was like a weird flashback.

So yeah, HTML brought back some memories - but this time, I was ready for it.

I crushed through it. Why? Because I already had that foundation. My uni had forced me to go through web dev in a previous semester. I had literally sat for hours prepping for a web exam I didn’t even care about. That pain? Now it paid off. And to my surprise, divs and classes, which used to terrify me - actually felt simple once I got my hands dirty.

Then came CSS, and not gonna lie… that’s where things got overwhelming.
There are so many damn properties, selectors - bruh, it felt like a never-ending dictionary.

I started stressing, like “How the hell am I supposed to remember all this stuff?”

But then I had a brain click.
This is just like C.
You don’t memorize everything in C either - you just look it up. StackOverflow, man pages, AI - whatever works.

So why treat CSS any different?

At that moment, I made a decision:
No more just watching lectures. I’m coding everything.

I built small things from scratch — even a dumb little calculator with plain HTML. Styled it up with whatever CSS I could remember, and every time I didn’t know something, I looked it up.

That’s when it hit me:

You don’t learn programming by watching. You learn it by doing.

But let’s be real- I didn’t figure that out on my own.
I reached out to one of my dev friends. I told him straight up: “I’m overwhelmed. I feel like I’m missing something.”
He gave me the guidance I needed, helped me fix my mental approach. That convo? Changed my week.

Then came JavaScript.

And man, I don’t care what anyone says, this language felt like a headache on purpose.
You wanna make a button do something? You’re suddenly knee-deep in DOM trees, event listeners, query selectors, and some weird anonymous functions.

I’ve written Assembly. I vibe with pointers.
But this? JS made me wanna throw my keyboard sometimes.

Still, I pushed through.

Broke down the logic.
Practiced the syntax.
Googled everything.
And just kept building basic stuff.

I followed David’s examples from the lecture and then went rogue - trying to build my own stuff.
I even watched the shorts for the first time just to make sure I wasn’t missing anything.

And Most importantly: The way I tackled the week wasn’t by rushing it.
I gave every single day some time.
Very little time went to actually watching the lecture.
Most of it? Straight-up hands-on coding.

And the secret weapon? Notes.

I don’t care if I ever use them again - I wrote 4-5K words of notes this week. Just for myself. Not to flex.

Why? Because it helps me absorb everything.
That’s my system. That’s how I make sure the knowledge doesn’t just pass through my brain, it sticks.

Experience with Problem Sets

This week’s problem sets hit different.

Problem Set 1 was pretty chill - they gave us some starter code and guided us step-by-step. It felt more like filling in the blanks while learning how HTML and CSS actually work together.

Problem Set 2, though? A whole other game. No starter code, no training wheels. Just a list of requirements and the freedom to build your own homepage however you wanted. You had to figure things out yourself - layout, design, logic - all of it.

It was overwhelming at times, but also super fun. Let’s talk about it.

Problem Set 1

Let’s talk about the first problem set.

This one was all about implementing buttons that would respond to the user’s choice classic quiz style.

  • You click the right answer? Boom, button goes green and shows “Correct.”
  • Click the wrong one? It goes red and shows “Incorrect.”

Pure JavaScript stuff. The CSS part was already handled for us, so the focus was on HTML and mostly the logic behind the interaction.

Now I won’t lie - this wasn’t a walk in the park for me.

At first, my implementation was buggy as hell. I wrote the logic for both sections, hit the submit button… and both the buttons from both sections started lighting up green or red at the same time. Total chaos.

Turns out the problem was with how I was selecting elements, I was using querySelector without being specific enough. So all the buttons were being triggered at once. Classic mistake.

The fix? Classes and IDs.
I had to assign unique classes or IDs to each section and be super precise with what I was selecting in my JavaScript. Once I did that, everything just worked perfectly.

Honestly, it taught me a really solid lessons about DOM manipulation and how important proper element targeting is when working with JS.


Problem Set 2

Alright, after wrapping up Problem Set 1, it was time for the big boss fight - Problem Set 2: Homepage.

I already knew this one would be different. So, I did what any curious dev would do… I went to the CS50 Discord, searched for “homepage” in the channel, and BAM - saw a bunch of absolutely gorgeous sites. People were using Figma, Photoshop, had slick animations, and these were clearly folks who had done web dev before - classic Harvard kids, y’know?

Me? I was just a noob trying to find my footing.

I asked around for help, hoping someone would drop a magic solution. But nah - everyone said the same thing: “Use MDN Docs, W3Schools, Google it.” Like bruh, that’s what I was already doing.

Truth is: What I really wanted was a way out of the overwhelming feeling, but then I snapped out of it.

I said: Screw it, let’s face the fear.

But then came the next issue - I had no idea what I even wanted to build. I thought about learning Figma and designing something from scratch… opened a tutorial… and boom, entered another episode of tutorial hell.

So I stopped. I told myself:
“Why am I trying to design everything myself when I can just get inspired by something out there?”

And that’s when the big-brain move hit:
Let’s clone a site.

I searched the web and finally found one that clicked with me. I could literally see how I’d recreate it, what I’d tweak, where I’d place stuff. Since I’m a huge fan of DMC5 and basically am Vergil, I decided to make my site fully Vergil-themed.

That’s where my real journey began.


I started simple - the header.
Googled how to make a nav bar, learned about semantic tags, discovered Flexbox (god bless Flexbox), picked a nice background color, and started building.

I found a sick font that fit the whole theme, imported it, applied it, and moved on to the next section.

I added images of Vergil, styled quote boxes next to them with more Flexbox magic, and just kept building one piece at a time. Every single thing I needed - whether it was layout, fonts, colors - I Googled, tweaked, used AI as my partner and tested stuff.

I learned more about HTML and CSS during this problem set than any lecture could’ve taught me.

Every new feature I wanted, I broke it down.
I cloned parts of the site I liked and made them my own.

Discovered cool stuff like gradients.
Used the console like a madman.
And just kept grinding.

It took me around 5-8 days to fully build my homepage.


But one thing was still left… JavaScript.

I wanted to add a quote section with left and right arrows - when clicked, they should cycle through quotes. Easy in theory. Painful in JS.

At first, I was like “bruh wtf is this language.”

C and Assembly never made me feel this confused

But like always, I broke the problem down. I asked myself:

  • What am I trying to do?
  • What’s the logic behind it?
  • What tools (functions, methods, loops) do I need?

And once I had clarity, I started coding.

Used arrays to store quotes,
Queried DOM elements using querySelector,
Wrote arrow functions,
Discovered setTimeout,
And most importantly - handled the loop logic.

Like if I reached the end of the array, it should go back to the start.
If I went before the first element, it should go to the end.
That looping part messed me up a little, but I got it working.

After the JS logic was solid, I moved on to polishing the UI.

Centering things, tweaking background, improving quote transitions - all those tiny things that make a site feel nice.
And yeah… all this? It took me 1–2 hours easy. So many trips to the console trying to figure out why the hell something wasn’t working.


But in the end?

I built my homepage.
My own personal corner of the web - themed, styled, and coded by me.

This problem set didn’t just teach me HTML, CSS, or JS - it taught me how to push through fear, take action, break problems down, and learn by doing.

And that? That’s what makes CS50 special.

Following are the screenshots of my homepage that I built

Alt text Alt text Alt text

Final Advice & Reflections

After all this - all the hours I spent building, learning, fixing bugs, failing, retrying - I felt good. Like I was actually getting somewhere. But then something strange hit me…

I had finished my homepage. It was done.

But I felt… empty.

That’s when I realized something deep:
Those moments where I was stuck, confused, overwhelmed. When I was sitting there banging my head trying to figure out a layout or why JS wouldn’t behave. That was the best part.

A lot of you reading this might hate the process.
Whether you’re building a tool, studying a language, or trying to make a project work - you get frustrated, you pick up a concept, you lose it again, and the loop repeats.

But that’s the point, my friend.

Stop chasing the destination.
Start loving the process.

That’s what I’ve learned.


And one more thing Fear? All of it is fake.
None of it is real. Your brain’s just playing tricks on you.

We’re not built to naturally step out of our comfort zone. You gotta force it.
Face it head-on.
Push through like a damn warrior.

And lastly - to anyone reading this:

Whether you’re on the same journey as me, grinding through CS50, learning to code, chasing greatness, or you’re walking a completely different path…

I’m rooting for you.
Keep pushing. Keep growing.
Be relentless.

Until next time…

This post is licensed under CC BY 4.0 by the author.